-from re import compile
-from serial import Serial
+from re import compile
+from serial import Serial
+from datetime import datetime
class State:
acc = [None]*3
touch = [None]*2
light = [None]*1
a2d = [None]*6
+ time = None
def __init__(self):
- pass
+ self.time = datetime.utcnow()
class Device:
# Attributes
bytesize = self.config.databits, \
stopbits = self.config.stopbits, \
timeout = 0)
+ self.serial.flushInput()
except Exception as ex:
return str(ex)
def process(self):
items = []
+ count = 0
+ limit = 100
+ if not self.running():
+ return items
while self.serial.readable():
try:
- char = self.serial.read()
+ char = self.serial.read().decode()
except Exception as ex:
char = ''
- if char == '':
+ if len(char) == 0:
break
if char == '\r' or char == '\n':
if len(self.inbuf) == 0:
self.inbuf = []
else:
self.inbuf.append(char)
+ if count > limit:
+ print("Error: exceeded read limit")
+ break
+ count += 1
return items
# Private methods