tao_z
2022-08-23 989919a73c5ebd46368991b6c3ff6959e32490b6
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])
@@ -418,7 +420,7 @@
        USBCAN_DLL.VCI_Transmit(self.device, self.device_index, self.channel,
                                byref(raw_message), 1)
    def Receive(self, len=10, timeout=None):
    def Receive(self, len=1, timeout=None):
        raw_message = (VCI_CAN_OBJ * len)()
        timeout = -1 if timeout is None else c_int(timeout * 1000)
@@ -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,