From a1a1c89b91fc9476c51981699aaa7c2bccdd8570 Mon Sep 17 00:00:00 2001
From: tao_z <tzj0429@163.com>
Date: Sun, 07 Aug 2022 14:19:02 +0800
Subject: [PATCH] SX7H初步完成

---
 USBCAN.py |   28 ++++++++++++++++++----------
 1 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/USBCAN.py b/USBCAN.py
index 751c3e0..42ee2d2 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])
@@ -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