Index: leahi_dialin/common/msg_ids.py =================================================================== diff -u -rb1d5000c05fd2944b45af0dbda919bb1c92dd364 -r923a6cf4205ed94ae793899f3d3d2dd26b87a8f5 --- leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision b1d5000c05fd2944b45af0dbda919bb1c92dd364) +++ leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 923a6cf4205ed94ae793899f3d3d2dd26b87a8f5) @@ -120,6 +120,10 @@ MSG_ID_USER_CONFIRM_UF_SETTINGS_CHANGE_REQUEST = 0x66 MSG_ID_USER_UF_SETTINGS_CHANGE_CONFIRMATION_RESPONSE = 0x67 + MSG_ID_UI_BLOOD_PRESSURE_REQUEST = 0x63 + MSG_ID_TD_BLOOD_PRESSURE_RESPONSE = 0x64 + MSG_ID_TD_BLOOD_PRESSURE_DATA = 0x65 + MSG_ID_DD_PISTON_PUMP_CONTROL_DATA = 0xF0 @@ -184,6 +188,9 @@ MSG_ID_TD_SET_TEST_CONFIGURATION = 0x803A MSG_ID_TD_GET_TEST_CONFIGURATION = 0x803B MSG_ID_TD_RESET_ALL_TEST_CONFIGURATIONS = 0x803C + MSG_ID_TD_AIR_PUMP_POWER_RAISE_OVERRIDE_REQUEST = 0x803D + MSG_ID_TD_AIR_PUMP_POWER_LOWER_OVERRIDE_REQUEST = 0x803E + MSG_ID_TD_HARD_STOP_BLOOD_PUMP = 0x803F MSG_ID_DD_TESTER_LOGIN_REQUEST = 0xA000 MSG_ID_DD_SOFTWARE_RESET_REQUEST = 0xA001 Index: leahi_dialin/ui/td_messaging.py =================================================================== diff -u -ra18704a9e0461edca538e449d33b9ea286385961 -r923a6cf4205ed94ae793899f3d3d2dd26b87a8f5 --- leahi_dialin/ui/td_messaging.py (.../td_messaging.py) (revision a18704a9e0461edca538e449d33b9ea286385961) +++ leahi_dialin/ui/td_messaging.py (.../td_messaging.py) (revision 923a6cf4205ed94ae793899f3d3d2dd26b87a8f5) @@ -514,7 +514,44 @@ payload=payload) self.can_interface.send(message, 0) - + + def td_param_ranges(self, + min_tx_time_s : int, + max_tx_time_s : int, + min_uf_volume_mL : float, + max_uf_volume_mL : float, + min_dial_rate_mLH : int, + max_dial_rate_mLH : int): + """ + Broadcasts the current TD Param Ranges Data (Msg ID: 0x43, 67) + Args: + @param min_tx_time_s : Minimum treatement time in secs. + @param max_tx_time_s : Maximum treatement time in secs. + @param min_uf_volume_mL : Minimum UF volume in mL. + @param max_uf_volume_mL : Maximum UF volume in mL. + @param min_dial_rate_mLH : Minimum dial rate in mL/H. + @param max_dial_rate_mLH : Maximum dial rate in mL/H. + @return: None + """ + + if not self.can_enabled: + raise ValueError("CAN Interface is not enabled") + + + payload = conversions.unsigned_integer_to_bytearray (min_tx_time_s ) + payload += conversions.unsigned_integer_to_bytearray (max_tx_time_s ) + payload += conversions.float_to_bytearray (min_uf_volume_mL ) + payload += conversions.float_to_bytearray (max_uf_volume_mL ) + payload += conversions.unsigned_integer_to_bytearray (min_dial_rate_mLH ) + payload += conversions.unsigned_integer_to_bytearray (max_dial_rate_mLH ) + + message = CAN.DenaliMessage.build_message( + channel_id=CAN.DenaliChannels.td_sync_broadcast_ch_id, + message_id=msg_ids.MsgIds.MSG_ID_TD_TREATMENT_PARAM_RANGES.value, + payload=payload) + + self.can_interface.send(message, 0) + def td_treatment_set_points(self, blood_flow : int , dialysate_flow : int ,