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]) Index: DialysateGenerator.py =================================================================== diff -u -r342921a02e3ecd79431da50ca8adecac150a74fc -r64f191141f9df20af78d559dc654ec0ad2aeda43 --- DialysateGenerator.py (.../DialysateGenerator.py) (revision 342921a02e3ecd79431da50ca8adecac150a74fc) +++ DialysateGenerator.py (.../DialysateGenerator.py) (revision 64f191141f9df20af78d559dc654ec0ad2aeda43) @@ -83,18 +83,7 @@ return returnValue - def __del__(self): - """ - Destructor method when "del" function is used. e.g. - dg = DG() - - del dg - """ - - self.__can_interface.stop() - - def test_fill_print(msg): if msg is not None: print("f", end='', flush=True) @@ -113,7 +102,7 @@ test_packet = test_dg.fill('stop') test_fill_print(test_packet) - del test_dg +# del test_dg # sleep(1) # test_packet = test_dg.fill('start')