comparison service/garageArduino/garageArduino.py @ 849:67c03a3104f2

opening usb apparently causes an arduino restart now, so i have to wait for that to pass before beginning communications Ignore-this: 9f34e8914c6bbe3fb54b2c8f5ed01804 darcs-hash:20121229125454-312f9-694b7893f6f25e2f6a99aefd27be3ac552e40747
author drewp <drewp@bigasterisk.com>
date Sat, 29 Dec 2012 04:54:54 -0800
parents edd2486d6e2c
children 69b214997213
comparison
equal deleted inserted replaced
848:54f29f298513 849:67c03a3104f2
33 DEV = Namespace("http://projects.bigasterisk.com/device/") 33 DEV = Namespace("http://projects.bigasterisk.com/device/")
34 34
35 class ArduinoGarage(object): 35 class ArduinoGarage(object):
36 def __init__(self, port='/dev/ttyACM0'): 36 def __init__(self, port='/dev/ttyACM0'):
37 self.ser = LoggingSerial(port=port, baudrate=115200, timeout=1) 37 self.ser = LoggingSerial(port=port, baudrate=115200, timeout=1)
38 time.sleep(2) # wait for a arduino reset to pass
38 self.ser.flush() 39 self.ser.flush()
40 self.ping()
39 41
40 def ping(self): 42 def ping(self):
41 self.ser.write("\x60\x00\x00") 43 self.ser.write("\x60\x00\x00")
42 msg = self.ser.readJson() 44 msg = self.ser.readJson()
43 assert msg == {"ok":True}, msg 45 assert msg == {"ok":True}, msg
221 try: 223 try:
222 try: 224 try:
223 newData = ard.poll() 225 newData = ard.poll()
224 except ValueError, e: 226 except ValueError, e:
225 print e 227 print e
228 os.abort()
226 else: 229 else:
227 self.lastPollTime = now 230 self.lastPollTime = now
228 self.lastValues = newData # for other data besides the blinks 231 self.lastValues = newData # for other data besides the blinks
229 self.processBlinks(now, newData['newBlinks']) 232 self.processBlinks(now, newData['newBlinks'])
230 self.processMotion(newData['motion']) 233 self.processMotion(newData['motion'])