Je suis coincé en train de lire un fichier dans/sys/qui contient l'intensité lumineuse en Lux du capteur de lumière ambiante sur mon téléphone Nokia N900.Comment interroger un fichier dans/sys
See thread on talk.maemo.org here
J'ai essayé d'utiliser pyinotify pour interroger le fichier, mais cela semble une sorte de mal pour moi car le fichier est alway « process_IN_OPEN », « process_IN_ACCESS » et « process_IN_CLOSE_NOWRITE »
Je veux essentiellement pour obtenir les changements le plus tôt possible et si quelque chose a changé déclencher un événement, exécutez une classe ...
Voici le code que j'ai essayé, ce qui fonctionne, mais pas comme je m'y attendais (j'espérais process_IN_MODIFY à déclencher):
#!/usr/bin/env python
import os, time, pyinotify
import pyinotify
ambient_sensor = '/sys/class/i2c-adapter/i2c-2/2-0029/lux'
wm = pyinotify.WatchManager() # Watch Manager
mask = pyinotify.ALL_EVENTS
def action(self, the_event):
value = open(the_event.pathname, 'r').read().strip()
return value
class EventHandler(pyinotify.ProcessEvent):
...
def process_IN_MODIFY(self, event):
print "MODIFY event:", action(self, event)
...
#log.setLevel(10)
notifier = pyinotify.ThreadedNotifier(wm, EventHandler())
notifier.start()
wdd = wm.add_watch(ambient_sensor, mask)
wdd
time.sleep(5)
notifier.stop()
Mise à jour 1:
Mmmh, je suis venu sans avoir la moindre idée s'il existe un mécanisme spécial est le suivant:
f = open('/sys/class/i2c-adapter/i2c-2/2-0029/lux')
while True:
value = f.read()
print value
f.seek(0)
Ceci, enveloppé dans un propre fil, pourrait à l'astuce, mais est-ce que quelqu'un a un moyen plus intelligent, moins encombrant CPU et plus rapide pour obtenir la dernière valeur?