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

Source Code for Module UltrasonicSensor

 1  # UltrasonicSensor.py 
 2  # Remote mode 
 3   
 4  from RobotInstance import RobotInstance 
 5  from Tools import Tools 
 6   
7 -class UltrasonicSensor():
8 ''' 9 Class that represents an ultrasonic sensor. 10 ''' 11
12 - def __init__(self, **kwargs):
13 ''' 14 Creates a ultrasonic sensor. 15 ''' 16 self.device = "uss" 17 self.sensorState = "FAR" 18 self.sensorType = "UltrasonicSensor" 19 self.triggerLevel = 20.0 20 self.nearCallback = None 21 self.farCallback = None 22 for key in kwargs: 23 if key == "near": 24 self.nearCallback = kwargs[key] 25 elif key == "far": 26 self.farCallback = kwargs[key] 27 robot = RobotInstance.getRobot() 28 if robot == None: # deferred registering, because Robot not yet created 29 RobotInstance._partsToRegister.append(self) 30 else: 31 self._setup(robot)
32
33 - def _setup(self, robot):
34 robot.sendCommand("uss.create") 35 if self.nearCallback != None or self.farCallback != None: 36 robot.registerSensor(self)
37
38 - def getValue(self):
39 ''' 40 Returns the current distance (in cm). 41 @rtype: float 42 ''' 43 self._checkRobot() 44 return float(RobotInstance.getRobot().sendCommand(self.device + ".getValue"))
45
46 - def getTriggerLevel(self):
47 return self.triggerLevel
48
49 - def setTriggerLevel(self, level):
50 self.triggerLevel = level
51
52 - def getSensorState(self):
53 return self.sensorState
54
55 - def setSensorState(self, state):
56 self.sensorState = state
57
58 - def getSensorType(self):
59 return self.sensorType
60
61 - def onNear(self, v):
62 if self.nearCallback != None: 63 self.nearCallback(v)
64
65 - def onFar(self, v):
66 if self.farCallback != None: 67 self.farCallback(v)
68
69 - def _checkRobot(self):
70 if RobotInstance.getRobot() == None: 71 raise Exception("Create Robot instance first")
72