| | |
| | | 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) |
| | |
| | | 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] |
| | | |
| | |
| | | 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]) |
| | |
| | | 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) |
| | |
| | | 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, |