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 |   32 ++++++++++++++++++++------------
 1 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/USBCAN.py b/USBCAN.py
index 32adf03..45bfe07 100644
--- a/USBCAN.py
+++ b/USBCAN.py
@@ -293,7 +293,7 @@
         fileHandler = logging.FileHandler('./log/USBCAN.log',
                                           mode='a',
                                           encoding='UTF-8')
-        fileHandler.setLevel(logging.NOTSET)
+        fileHandler.setLevel(logging.DEBUG)
 
         consoleHandler.setFormatter(formatter)
         fileHandler.setFormatter(formatter)
@@ -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