TYP_U8: 'B', TYP_U16: 'H', TYP_U32: 'I',
TYP_F32: 'f', TYP_F64: 'd'}
+ sampleNum= {SNS_ACC: 0,
+ SNS_MAG: 0,
+ SNS_LGT: 0,
+ SNS_TCH: 0,
+ SNS_A2D: 0}
+
# Parser data
index = 0 # read index
count = 0 # number of items in frame
fmt = Frame.fmtMap[self.bits_typ] * self.count
sns = Frame.snsMap[self.bits_sns]
self.values = unpack('<'+fmt, self.binary)
- print('convert: %3s = \'%3s\'%%[%s] -> [%s]' %
- (sns, fmt, hexDump(self.binary), fltDump(self.values)))
+
+ # Print debug output
+ self.sampleNum[self.bits_sns] += 1
+ #if self.sampleNum[self.bits_sns] == 1000:
+ if self.sampleNum[self.bits_sns] == 1000:
+ print('convert: %3s = \'%3s\'%%[%s] -> [%s]' %
+ (sns, fmt, hexDump(self.binary), fltDump(self.values)))
+ self.sampleNum[self.bits_sns] = 0
# Create state
state = State()
self._write_binary('B', bits)
def process(self):
- items = []
- count = 0
- limit = 1000
-
if not self.running():
- return items
-
- while self.serial.readable():
- try:
- byte = self.serial.read()
- except Exception as ex:
- # Not sure why this is excepting
- # if it says it's readable
- break
- if len(byte) == 0:
- break
+ return []
+ items = []
+ while self.serial.inWaiting():
+ byte = self.serial.read()
state = self.frame.parse(byte)
if state:
items.append(state)
- if count > limit:
- print('[ERROR] Exceeded Read Limit')
- break
-
- count += 1
-
return items