Index: dialin/dg/dialysate_generator.py =================================================================== diff -u -r05353eded4d42bb6db53eb398486254af20f7cf0 -rf1ac0e8ba99d1ddb0138918e408dffc0f5eba3c5 --- dialin/dg/dialysate_generator.py (.../dialysate_generator.py) (revision 05353eded4d42bb6db53eb398486254af20f7cf0) +++ dialin/dg/dialysate_generator.py (.../dialysate_generator.py) (revision f1ac0e8ba99d1ddb0138918e408dffc0f5eba3c5) @@ -14,12 +14,12 @@ # ############################################################################ import struct -from time import sleep from .drain_pump import DGDrainPump from .hd_proxy import DGHDProxy from .load_cells import DGLoadCells from .pressures import DGPressures from .reservoirs import DGReservoirs +from .valves import DGValves from .ro_pump import DGROPump from ..protocols.CAN import (DenaliCanMessenger, DenaliMessage, @@ -38,15 +38,17 @@ MSG_ID_DG_OPERATION_MODE_BROADCAST = 0x0027 MSG_ID_LOGIN_TO_DG = 0xA000 MSG_ID_DG_MSG = 0xA001 - MSG_ID_DG_REQUEST_DG_VERSION = 0xA002 - MSG_ID_DG_DG_VERSION_RESPONSE = 0xA003 + MSG_ID_DG_REQUEST_DG_VERSION = 0x001C + MSG_ID_DG_DG_VERSION_RESPONSE = 0x001E # HD login password DG_LOGIN_PASSWORD = '123' # broadcast message field positions START_POS_DG_OP_MODE = DenaliMessage.PAYLOAD_START_INDEX END_POS_DG_OP_MODE = START_POS_DG_OP_MODE + 4 + START_POS_DG_SUB_MODE = END_POS_DG_OP_MODE + END_POS_DG_SUB_MODE = START_POS_DG_SUB_MODE + 4 # DG version message field positions START_POS_MAJOR = DenaliMessage.PAYLOAD_START_INDEX @@ -94,19 +96,22 @@ msg_id = self.MSG_ID_DG_OPERATION_MODE_BROADCAST self.can_interface.register_receiving_publication_function(channel_id, msg_id, self.handler_dg_op_mode_sync) - self.can_interface.register_receiving_publication_function(DenaliChannels.dg_to_dialin_ch_id, self.MSG_ID_DG_DG_VERSION_RESPONSE, - self.handler_dg_version) + self.can_interface.register_receiving_publication_function(DenaliChannels.dg_to_dialin_ch_id, + self.MSG_ID_DG_DG_VERSION_RESPONSE, + self.handler_dg_version) # initialize variables that will be populated by DG version response self.dg_version = None # create properties self.dg_operation_mode = self.DG_OP_MODE_INIT_POST + self.dg_operation_sub_mode = 0 # Create command groups self.hd_proxy = DGHDProxy(self.can_interface) self.load_cells = DGLoadCells(self.can_interface) self.pressures = DGPressures(self.can_interface) self.reservoirs = DGReservoirs(self.can_interface) + self.valves = DGValves(self.can_interface) self.ro_pump = DGROPump(self.can_interface) self.drain_pump = DGDrainPump(self.can_interface) @@ -120,7 +125,7 @@ U08 Micro \n U16 Build \n - \returns none + \returns None if unsuccessful, the version string if unpacked successfully """ major = struct.unpack('B', bytearray( message['message'][self.START_POS_MAJOR:self.END_POS_MAJOR])) @@ -133,6 +138,8 @@ if len(major) > 0 and len(minor) > 0 and len(micro) > 0 and len(build) > 0: self.dg_version = f"v{major[0]}.{minor[0]}.{micro[0]}-{build[0]}" + print(self.dg_version) + return self.dg_version def handler_dg_op_mode_sync(self, message): """ @@ -145,8 +152,11 @@ mode = struct.unpack('i', bytearray( message['message'][self.START_POS_DG_OP_MODE:self.END_POS_DG_OP_MODE])) + smode = struct.unpack('i', bytearray( + message['message'][self.START_POS_DG_SUB_MODE:self.END_POS_DG_SUB_MODE])) self.dg_operation_mode = mode[0] + self.dg_operation_sub_mode = smode[0] def cmd_log_in_to_dg(self): """ @@ -215,4 +225,3 @@ print("Sending Dialin request for version to DG") self.can_interface.send(message, 0) - Index: dialin/hd/ui_proxy.py =================================================================== diff -u -r05353eded4d42bb6db53eb398486254af20f7cf0 -rf1ac0e8ba99d1ddb0138918e408dffc0f5eba3c5 --- dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision 05353eded4d42bb6db53eb398486254af20f7cf0) +++ dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision f1ac0e8ba99d1ddb0138918e408dffc0f5eba3c5) @@ -171,7 +171,7 @@ U08 Micro \n U16 Build \n - \returns none + \returns None if not successful, the version string if unpacked successfully """ major = struct.unpack('B', bytearray( message['message'][self.START_POS_MAJOR:self.END_POS_MAJOR])) @@ -184,6 +184,7 @@ if len(major) > 0 and len(minor) > 0 and len(micro) > 0 and len(build) > 0: self.hd_version = f"v{major[0]}.{minor[0]}.{micro[0]}-{build[0]}" + print(self.hd_version) return self.hd_version def handler_treatment_param_ranges(self, message):