def log(self):
# keep reading until we get a log_trigger
timeout = 1
start_time = datetime.now()
fms_ccvs = 'FMS_CRUISE_CONTROL_VEHICLE_SPEED (km/h)'
while 1:
if (datetime.now() - start_time).total_seconds() > timeout:
return self.buff
msg = self.bus.recv(0.5)
if msg is None:
continue
pid, obd_data = self.separate_can_msg(msg)
if pid in self.pids2log:
parsed = self.pids[pid]['parse'](obd_data)
self.buff.update(parsed)
if fms_ccvs in self.buff and self.buff[fms_ccvs] > 200:
del self.buff[fms_ccvs]
# don't trigger a log if we get an invalid value
continue
if pid == self.trigger:
return self.buff
评论列表
文章目录