Module SensorThread
[hide private]
[frames] | no frames]

Source Code for Module SensorThread

 1  # SensorThread.py 
 2   
 3  from threading import Thread 
 4  from Tools import * 
 5  import SharedConstants 
 6   
7 -class SensorThread(Thread):
8 - def __init__(self):
9 Thread.__init__(self) 10 self.sensors = [] 11 self.isSensorThreadRunning = True
12
13 - def run(self):
14 while self.isSensorThreadRunning: 15 for sensor in self.sensors: 16 if sensor.getSensorType() == "LightSensor": 17 v = sensor.getValue() 18 if v > sensor.getTriggerLevel() and sensor.getSensorState() == "DARK": 19 sensor.setSensorState("BRIGHT") 20 sensor.onBright(v) 21 if v <= sensor.getTriggerLevel() and sensor.getSensorState() == "BRIGHT": 22 sensor.setSensorState("DARK") 23 sensor.onDark(v) 24 if sensor.getSensorType() == "InfraredSensor": 25 v = sensor.getValue() 26 if v == 1 and sensor.getSensorState() == "PASSIVATED": 27 sensor.setSensorState("ACTIVATED") 28 sensor.onActivated() 29 if v == 0 and sensor.getSensorState() == "ACTIVATED": 30 sensor.setSensorState("PASSIVATED") 31 sensor.onPassivated() 32 if sensor.getSensorType() == "UltrasonicSensor": 33 v = sensor.getValue() 34 if v > sensor.getTriggerLevel() and sensor.getSensorState() == "NEAR": 35 sensor.setSensorState("FAR") 36 sensor.onFar(v) 37 if v <= sensor.getTriggerLevel() and sensor.getSensorState() == "FAR": 38 sensor.setSensorState("NEAR") 39 sensor.onNear(v) 40 Tools.delay(SharedConstants.POLL_DELAY)
41
42 - def stop(self):
43 self.isSensorThreadRunning = False
44
45 - def add(self, sensor):
46 self.sensors.append(sensor)
47