From dd84d3ff28816a22a911bb26b435026b728676db Mon Sep 17 00:00:00 2001 From: tao_z <tzj0429@163.com> Date: Sun, 07 Aug 2022 21:42:44 +0800 Subject: [PATCH] 针对B41V修改 --- USBCAN.py | 30 +++++++++++++++++++----------- 1 files changed, 19 insertions(+), 11 deletions(-) diff --git a/USBCAN.py b/USBCAN.py index 751c3e0..45bfe07 100644 --- a/USBCAN.py +++ b/USBCAN.py @@ -304,6 +304,8 @@ self.device = device_type self.device_index = device_index self.channel = can_index + self.timestamp_start = None + self.laststamp = None Timing0, Timing1 = TIMING_DICT[bitrate] @@ -407,7 +409,7 @@ raw_message.TimeStamp = (c_uint)(0) raw_message.TimeFlag = (c_ubyte)(0) raw_message.SendType = (c_ubyte)(1) - raw_message.RemoteFlag = (c_ubyte)(msg.is_remote_frame) + raw_message.RemoteFlag = False raw_message.ExternFlag = (c_ubyte)(msg.is_extended_id) raw_message.DataLen = (c_ubyte)(msg.dlc) raw_message.Data = (c_ubyte * 8)(*[c_ubyte(c) for c in msg.data]) @@ -421,7 +423,7 @@ def Receive(self, len=10, timeout=None): raw_message = (VCI_CAN_OBJ * len)() - timeout = -1 if timeout is None else c_int(timeout * 1000) + timeout = -1 if timeout is None else c_int(timeout) msg = list() rtn = USBCAN_DLL.VCI_Receive(self.device, self.device_index, self.channel, @@ -429,17 +431,23 @@ if rtn == 0xFFFFFFFF or rtn == 0: return None, False else: + if self.timestamp_start == None: + self.laststamp = raw_message[0].TimeStamp + self.timestamp_start = self.laststamp for i in range(rtn): msg.append( - Message( - timestamp=raw_message[i].TimeStamp - if raw_message[i].TimeFlag else 0.0, - arbitration_id=raw_message[i].ID, - is_remote_frame=raw_message[i].RemoteFlag, - channel=0, - extended_id=raw_message[i].ExternFlag, - data=raw_message[i].Data, - )) + Message(timestamp=( + (raw_message[i].TimeStamp - self.timestamp_start) / + 1000000) if raw_message[i].TimeFlag else 0.0, + arbitration_id=raw_message[i].ID, + is_remote_frame=raw_message[i].RemoteFlag, + channel=0, + extended_id=raw_message[i].ExternFlag, + data=raw_message[i].Data, + is_error_frame=False)) + # timestamp = raw_message[i].TimeStamp if raw_message[ + # i].TimeFlag else 0.0, + # print(timestamp) return (msg, rtn) def ListeningMsg(self, connectRet, needClose, msgQueue: Queue, -- Gitblit v1.8.0