Index: DialityCoreCanProtocol.py =================================================================== diff -u -r6f07015d84f80bbaca2960ea8e5ef8dd4b4541c6 -r64f191141f9df20af78d559dc654ec0ad2aeda43 --- DialityCoreCanProtocol.py (.../DialityCoreCanProtocol.py) (revision 6f07015d84f80bbaca2960ea8e5ef8dd4b4541c6) +++ DialityCoreCanProtocol.py (.../DialityCoreCanProtocol.py) (revision 64f191141f9df20af78d559dc654ec0ad2aeda43) @@ -33,6 +33,7 @@ hd_sync_broadcast_ch_id = 0x040 dg_sync_broadcast_ch_id = 0x080 ui_to_hd_ch_id = 0x100 + ui_sync_broadcast_ch_id = 0x200 dialin_to_hd_ch_id = 0x400 hd_to_dialin_ch_id = 0x401 dialin_to_dg_ch_id = 0x402 @@ -103,7 +104,9 @@ :returns DialityCanMessenger object """ - self.__canConnection = can.interface.Bus(channel=can_interface, bustype='socketcan') + self.__bus = can.interfaces.socketcan.SocketcanBus(channel=can_interface) + self.__listener_buffer = can.BufferedReader() + self.__notifier = can.Notifier(self.__bus, [self.__listener_buffer]) self.__sendPacketRequestID = -1 self.__sendEvent = threading.Event() @@ -119,8 +122,8 @@ self.__sync_response_dictionary = {} - if self.__canConnection is not None: - self.__serialListenerThread = threading.Thread(target=self.__listener) + if self.__bus is not None: + self.__serialListenerThread = threading.Thread(target=self.__listener, daemon=True) else: self.__serialListenerThread = None print("Can connection is not valid") @@ -131,7 +134,7 @@ """ - if self.__canConnection is None: + if self.__bus is None: print("Cannot start can listener.") return else: @@ -155,7 +158,8 @@ while self.__run: - message = self.__canConnection.recv(0.0) + # message = self.__canConnection.recv(0.0) + message = self.__listener_buffer.get_message(0.0) if message is not None and message.dlc == 8: @@ -279,7 +283,7 @@ data=packet, is_extended_id=False) - self.__canConnection.send(pckt) + self.__bus.send(pckt) # Sending self.__dialinCommandResponseMessage = None @@ -478,7 +482,6 @@ test_messenger.start() - # test_packet = DialityPacket.buildPacket(0x01, [1]) test_msg = DenaliMessage.buildMessage(channel_id=1000, message_id=0x01, payload=[1])