Index: DialityCoreCanProtocol.py =================================================================== diff -u -rf17430dfbc5d84d588dca5d5a35457aea061617f -r02d0551b15b9bd9824b83041d2d8ce11367872c8 --- DialityCoreCanProtocol.py (.../DialityCoreCanProtocol.py) (revision f17430dfbc5d84d588dca5d5a35457aea061617f) +++ DialityCoreCanProtocol.py (.../DialityCoreCanProtocol.py) (revision 02d0551b15b9bd9824b83041d2d8ce11367872c8) @@ -21,7 +21,7 @@ from time import sleep -class DialinChannels: +class DenaliChannels: # This are all the channels available hd_alarm_broadcast_ch_id = 0x001 @@ -41,7 +41,7 @@ ui_to_dialin_ch_id = 0x405 -class LongDialityMessageBuilder: +class LongDenaliMessageBuilder: def __init__(self, can_message): """ @@ -91,12 +91,12 @@ return None -class DialinCanMessenger: +class DenaliCanMessenger: START_BYTE = 0xA5 def __init__(self, can_interface='can0'): """ - DialityCanMessenger constructor + DenaliCanMessenger constructor :param can_interface - string containing the can interface, e.g., 'can0" @@ -183,7 +183,7 @@ if channel_id not in self.__longMessageBuilders.keys(): # if we don't have a builder. Create it! - self.__longMessageBuilders[channel_id] = LongDialityMessageBuilder(can_data) + self.__longMessageBuilders[channel_id] = LongDenaliMessageBuilder(can_data) self.__dialinMessage = None else: # if we do have a builder. This is the first time @@ -194,10 +194,10 @@ if self.__dialinMessage is not None: - completeDialinMessage = DialinMessage.buildBasicMessage(channel_id=channel_id, - message=self.__dialinMessage) - dialin_msg_id = DialinMessage.getMessageID(completeDialinMessage) - dialin_ch_id = DialinMessage.getChannelID(completeDialinMessage) + completeDialinMessage = DenaliMessage.buildBasicMessage(channel_id=channel_id, + message=self.__dialinMessage) + dialin_msg_id = DenaliMessage.getMessageID(completeDialinMessage) + dialin_ch_id = DenaliMessage.getChannelID(completeDialinMessage) if dialin_ch_id in self.__longMsgChannelIDSet: # We need to remove channel ID from the long message set @@ -254,16 +254,16 @@ :param built_message: message built using DialinMessage class :param time_out: time it will wait for a response in seconds - :return: Diality Packet, it it times out it returns None + :returns: Diality Packet, it it times out it returns None """ - channel_id = DialinMessage.getChannelID(built_message) + channel_id = DenaliMessage.getChannelID(built_message) padded_can_message_array = built_message['message'] padded_can_message_length = padded_can_message_array[3] - self.__sendPacketRequestID = DialinMessage.getMessageID(built_message) + self.__sendPacketRequestID = DenaliMessage.getMessageID(built_message) # A message can be longer than 8 bytes, so we need to split it # into 8 bytes packets. @@ -298,7 +298,7 @@ return self.__dialinCommandResponseMessage -class DialinMessage: +class DenaliMessage: BYTE_ORDER = 'little' @staticmethod @@ -327,11 +327,11 @@ if payload is None: payload = [] - message = [DialinCanMessenger.START_BYTE] + message = [DenaliCanMessenger.START_BYTE] if 0 <= message_id <= (2 ** 16 - 1): # Make sure an int was passed - message_id_in_bytes = message_id.to_bytes(2, byteorder=DialinMessage.BYTE_ORDER) + message_id_in_bytes = message_id.to_bytes(2, byteorder=DenaliMessage.BYTE_ORDER) message += [message_id_in_bytes[0]] message += [message_id_in_bytes[1]] @@ -352,9 +352,9 @@ message += payload - message = DialinMessage.__padMessageWithZeros(message) + message = DenaliMessage.__padMessageWithZeros(message) - return DialinMessage.buildBasicMessage(channel_id=channel_id, message=message) + return DenaliMessage.buildBasicMessage(channel_id=channel_id, message=message) @staticmethod def __padMessageWithZeros(message): @@ -400,7 +400,7 @@ """ msg_id_array = message['message'][1:3] - return int.from_bytes(msg_id_array, byteorder=DialinMessage.BYTE_ORDER) + return int.from_bytes(msg_id_array, byteorder=DenaliMessage.BYTE_ORDER) @staticmethod def getPayloadLength(message): @@ -420,7 +420,7 @@ :return: a payload array if exist """ - payload_length = DialinMessage.getPayloadLength(message) + payload_length = DenaliMessage.getPayloadLength(message) if payload_length == 0: return None @@ -451,25 +451,25 @@ test_print_received_packet(message, sync=True) -def test_print_sending_dg_board(channel_id, message): - print("Sending to board: ", message, " in channel: ", channel_id) +def test_print_sending_dg_board(message): + print("Sending to board: ", message['message'], " in channel: ", message['channel_id']) -def test_print_sending_dg_sim(channel_id, messsage): - print("Sending to DG simulator: ", messsage, " in channel", channel_id, end=" ---> ") +def test_print_sending_dg_sim(message): + print("Sending to DG simulator: ", message['message'], " in channel", message['channel_id'], end=" ---> ") if __name__ == "__main__": - test_messenger = DialinCanMessenger() - test_channel_id = DialinChannels.ui_to_hd_ch_id + test_messenger = DenaliCanMessenger() + test_channel_id = DenaliChannels.ui_to_hd_ch_id - test_received_channel_id = DialinMessage.hd_to_ui_ch_id + test_received_channel_id = DenaliChannels.hd_to_ui_ch_id test_received_message_id = 0x100 test_messenger.registerReceivingPublicationFunction(test_received_channel_id, test_received_message_id, test_function_for_sync) - test_dg_simulator_received_channel_id = DialinMessage.dialin_to_dg_ch_id + test_dg_simulator_received_channel_id = DenaliChannels.dialin_to_dg_ch_id test_dg_simulator_sync_msg_id = 0x05 test_dg_simulator_msg_id = 0x03 @@ -480,25 +480,29 @@ test_messenger.start() # test_packet = DialityPacket.buildPacket(0x01, [1]) - test_packet = DialinMessage.buildMessage(channel_id=1000, message_id=0x01, payload=[1]) - test_dg_packet = DialinMessage.buildMessage(test_dg_simulator_msg_id, []) + test_msg = DenaliMessage.buildMessage(channel_id=1000, + message_id=0x01, + payload=[1]) + test_dg_msg = DenaliMessage.buildMessage(channel_id=test_dg_simulator_received_channel_id, + message_id=test_dg_simulator_msg_id, + payload=[]) sleep(3.0) - test_print_sending_dg_board(test_channel_id, test_packet) - test_response = test_messenger.send(test_channel_id, test_packet) + test_print_sending_dg_board(test_msg) + test_response = test_messenger.send(test_msg) test_print_to_screen(test_response) sleep(3.0) - test_print_sending_dg_board(test_channel_id, test_packet) - test_response = test_messenger.send(test_channel_id, test_packet) + test_print_sending_dg_board(test_msg) + test_response = test_messenger.send(test_msg) test_print_to_screen(test_response) sleep(3.0) - test_print_sending_dg_sim(test_dg_simulator_received_channel_id, test_dg_packet) - test_response = test_messenger.send(test_dg_simulator_received_channel_id, test_dg_packet) + test_print_sending_dg_sim(test_dg_msg) + test_response = test_messenger.send(test_dg_msg) test_print_to_screen(test_response) sleep(3.0) - test_print_sending_dg_sim(test_dg_simulator_received_channel_id, test_dg_packet) - test_response = test_messenger.send(test_dg_simulator_received_channel_id, test_dg_packet) + test_print_sending_dg_sim(test_dg_msg) + test_response = test_messenger.send(test_dg_msg) test_print_to_screen(test_response) Index: DialysateGenerator.py =================================================================== diff -u -rf17430dfbc5d84d588dca5d5a35457aea061617f -r02d0551b15b9bd9824b83041d2d8ce11367872c8 --- DialysateGenerator.py (.../DialysateGenerator.py) (revision f17430dfbc5d84d588dca5d5a35457aea061617f) +++ DialysateGenerator.py (.../DialysateGenerator.py) (revision 02d0551b15b9bd9824b83041d2d8ce11367872c8) @@ -53,8 +53,8 @@ dg_object = DG('can0') """ # Create listener - self.__can_interface = DialinCanMessenger(can_interface=can__interface) - self.__can_interface.registerReceivingPublicationFunction(channel_id=DialinChannels.dg_sync_broadcast_ch_id, + self.__can_interface = DenaliCanMessenger(can_interface=can__interface) + self.__can_interface.registerReceivingPublicationFunction(channel_id=DenaliChannels.dg_sync_broadcast_ch_id, message_id=0x7100, function=PublicationReceiverHandler) self.__can_interface.start() @@ -68,7 +68,7 @@ payload = [1] if start_or_stop == 'start' else [0] - msg = DialinMessage.buildMessage(channel_id=DialinChannels.ui_to_hd_ch_id, + msg = DenaliMessage.buildMessage(channel_id=DenaliChannels.ui_to_hd_ch_id, message_id=1000, payload=payload) @@ -77,7 +77,7 @@ returnValue = None if received_msg is not None: - returnValue = True if DialinMessage.getPayload(received_msg)[0] == 1 else False + returnValue = True if DenaliMessage.getPayload(received_msg)[0] == 1 else False return returnValue Index: HD_TestScript.py =================================================================== diff -u -rf2b88894a458d9e03a9cb005af02ef16fd5e6f32 -r02d0551b15b9bd9824b83041d2d8ce11367872c8 --- HD_TestScript.py (.../HD_TestScript.py) (revision f2b88894a458d9e03a9cb005af02ef16fd5e6f32) +++ HD_TestScript.py (.../HD_TestScript.py) (revision 02d0551b15b9bd9824b83041d2d8ce11367872c8) @@ -14,8 +14,8 @@ # ############################################################################ -from DialityCoreCanProtocol import DialinCanMessenger -from DialityCoreCanProtocol import DialinMessage +from DialityCoreCanProtocol import DenaliCanMessenger +from DialityCoreCanProtocol import DenaliMessage from HemodialysisDevice import HD from time import sleep Index: HemodialysisDevice.py =================================================================== diff -u -rf2b88894a458d9e03a9cb005af02ef16fd5e6f32 -r02d0551b15b9bd9824b83041d2d8ce11367872c8 --- HemodialysisDevice.py (.../HemodialysisDevice.py) (revision f2b88894a458d9e03a9cb005af02ef16fd5e6f32) +++ HemodialysisDevice.py (.../HemodialysisDevice.py) (revision 02d0551b15b9bd9824b83041d2d8ce11367872c8) @@ -14,8 +14,8 @@ # ############################################################################ -from DialityCoreCanProtocol import DialinCanMessenger -from DialityCoreCanProtocol import DialinMessage +from DialityCoreCanProtocol import DenaliCanMessenger +from DialityCoreCanProtocol import DenaliMessage from time import sleep from binascii import unhexlify import struct @@ -43,7 +43,7 @@ hd_object = HD('can0') """ # Create listener - self.can_interface = DialinCanMessenger(can_interface=can__interface) + self.can_interface = DenaliCanMessenger(can_interface=can__interface) self.can_interface.start() # Create command groups self._Basics = HD.HD__Basics(self) @@ -86,7 +86,7 @@ request_id = 0x8000 cargo = b'123' - message = DialinMessage.buildMessage(message_id=request_id, payload=cargo) + message = DenaliMessage.buildMessage(message_id=request_id, payload=cargo) print("login") @@ -117,7 +117,7 @@ request_id = 0x8001 cargo = msg - message = DialinMessage.buildMessage(message_id=request_id, payload=cargo) + message = DenaliMessage.buildMessage(message_id=request_id, payload=cargo) print("insert HD message") @@ -172,7 +172,7 @@ sta = self.outer_instance.integer2ByteArray(state) cargo = rst + sta - message = DialinMessage.buildMessage(message_id=request_id, payload=cargo) + message = DenaliMessage.buildMessage(message_id=request_id, payload=cargo) print("override off button") @@ -211,7 +211,7 @@ sta = self.outer_instance.integer2ByteArray(state) cargo = rst + sta - message = DialinMessage.buildMessage(message_id=request_id, payload=cargo) + message = DenaliMessage.buildMessage(message_id=request_id, payload=cargo) print("override stop button") @@ -270,7 +270,7 @@ tsk = self.outer_instance.integer2ByteArray(task) cargo = rst + sta + tsk - message = DialinMessage.buildMessage(message_id=request_id, payload=cargo) + message = DenaliMessage.buildMessage(message_id=request_id, payload=cargo) print("override watchdog task check-in state") @@ -327,7 +327,7 @@ alm = self.outer_instance.integer2ByteArray(alarm) cargo = rst + sta + alm - message = DialinMessage.buildMessage(message_id=request_id, payload=cargo) + message = DenaliMessage.buildMessage(message_id=request_id, payload=cargo) print("override alarm state") @@ -368,7 +368,7 @@ alm = self.outer_instance.integer2ByteArray(alarm) cargo = rst + ms + alm - message = DialinMessage.buildMessage(message_id=request_id, payload=cargo) + message = DenaliMessage.buildMessage(message_id=request_id, payload=cargo) print("override alarm time since activated") @@ -416,7 +416,7 @@ pat = self.__integer2ByteArray(pattern) cargo = rst + pat - message = DialinMessage.buildMessage(message_id=request_id, payload=cargo) + message = DenaliMessage.buildMessage(message_id=request_id, payload=cargo) print("override alarm lamp pattern") @@ -505,7 +505,7 @@ flo = self.outer_instance.integer2ByteArray(flow) cargo = rst + flo - message = DialinMessage.buildMessage(message_id=request_id, payload=cargo) + message = DenaliMessage.buildMessage(message_id=request_id, payload=cargo) print("override blood flow set point") @@ -544,7 +544,7 @@ flo = self.outer_instance.integer2ByteArray(flow) cargo = rst + flo - message = DialinMessage.buildMessage(message_id=request_id, payload=cargo) + message = DenaliMessage.buildMessage(message_id=request_id, payload=cargo) print("override measured blood flow") @@ -587,7 +587,7 @@ spd = self.outer_instance.integer2ByteArray(speed) cargo = rst + spd - message = DialinMessage.buildMessage(message_id=request_id, payload=cargo) + message = DenaliMessage.buildMessage(message_id=request_id, payload=cargo) print("override measured blood pump speed") @@ -626,7 +626,7 @@ cur = self.outer_instance.integer2ByteArray(curr) cargo = rst + cur - message = DialinMessage.buildMessage(message_id=request_id, payload=cargo) + message = DenaliMessage.buildMessage(message_id=request_id, payload=cargo) print("override measured blood pump motor current") @@ -665,7 +665,7 @@ mis = self.outer_instance.integer2ByteArray(ms) cargo = rst + mis - message = DialinMessage.buildMessage(message_id=request_id, payload=cargo) + message = DenaliMessage.buildMessage(message_id=request_id, payload=cargo) print("override blood flow broadcast interval") @@ -712,3 +712,18 @@ # wait 2 seconds and then login to HD as a tester sleep(2) hd._Basics.CmdLogInToHD() + + tgtRate = 0 + hd.BloodFlow.CmdBloodFlowBroadcastIntervalOverride(hd.NO_RESET, 2000) + + while True: + if hd.BloodFlow.TargetBloodFlowRate == 0: + if tgtRate != 0: + hd.BloodFlow.CmdBloodFlowBroadcastIntervalOverride(hd.NO_RESET, 2000) + tgtRate = 0 + else: + if tgtRate == 0: + hd.BloodFlow.CmdBloodFlowBroadcastIntervalOverride(hd.NO_RESET, 200) + tgtRate = hd.BloodFlow.TargetBloodFlowRate + +# hd.BloodFlow.CmdBloodFlowBroadcastIntervalOverride(hd.RESET,0) \ No newline at end of file Index: Miscellaneous/DG_Firmware_Simulator.py =================================================================== diff -u -reeded10f89bd0722474d326a6423c755a11cc988 -r02d0551b15b9bd9824b83041d2d8ce11367872c8 --- Miscellaneous/DG_Firmware_Simulator.py (.../DG_Firmware_Simulator.py) (revision eeded10f89bd0722474d326a6423c755a11cc988) +++ Miscellaneous/DG_Firmware_Simulator.py (.../DG_Firmware_Simulator.py) (revision 02d0551b15b9bd9824b83041d2d8ce11367872c8) @@ -1,16 +1,16 @@ from DialityCoreCanProtocol import * from time import sleep -dialin_messenger = DialinCanMessenger() +dialin_messenger = DenaliCanMessenger() # Building response message -response_msg = DialinMessage.buildMessage(channel_id=DialinChannels.dg_to_hd_ch_id, +response_msg = DenaliMessage.buildMessage(channel_id=DenaliChannels.dg_to_hd_ch_id, message_id=1000, payload=[1]) # Building Publication message -publication_msg = DialinMessage.buildMessage(channel_id=DialinChannels.dg_sync_broadcast_ch_id, +publication_msg = DenaliMessage.buildMessage(channel_id=DenaliChannels.dg_sync_broadcast_ch_id, message_id=0x7100, payload=[1, 2, 3, 4, 5]) @@ -26,7 +26,7 @@ # Register response command for the DG -dialin_messenger.registerReceivingPublicationFunction(channel_id=DialinChannels.ui_to_hd_ch_id, +dialin_messenger.registerReceivingPublicationFunction(channel_id=DenaliChannels.ui_to_hd_ch_id, message_id=1000, function=respondToCommand)