Index: leahi_dialin/common/msg_ids.py =================================================================== diff -u -r6e8e07edb4bb3f5bb387a88c37610722ff692b90 -r56ef7c146cfc502992a01f639cc9bfa0b002623a --- leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 6e8e07edb4bb3f5bb387a88c37610722ff692b90) +++ leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 56ef7c146cfc502992a01f639cc9bfa0b002623a) @@ -129,6 +129,11 @@ MSG_ID_TD_PRESSURE_LIMITS_CHANGE_RESPONSE = 0x79 MSG_ID_UI_BOLUS_VOLUME_CHANGE_REQUEST = 0x81 MSG_ID_TD_BOLUS_VOLUME_CHANGE_RESPONSE = 0x82 + MSG_ID_UI_DURATION_VALIDATE_REQUEST = 0x83 + MSG_ID_TD_DURATION_VALIDATE_RESPONSE = 0x84 + MSG_ID_UI_DURATION_CONFIRM_REQUEST = 0x85 + MSG_ID_TD_DURATION_CONFIRM_RESPONSE = 0x86 + MSG_ID_DD_PISTON_PUMP_CONTROL_DATA = 0xF0 MSG_ID_TD_TESTER_LOGIN_REQUEST = 0x8000 Index: leahi_dialin/ui/td_messaging.py =================================================================== diff -u -r6e8e07edb4bb3f5bb387a88c37610722ff692b90 -r56ef7c146cfc502992a01f639cc9bfa0b002623a --- leahi_dialin/ui/td_messaging.py (.../td_messaging.py) (revision 6e8e07edb4bb3f5bb387a88c37610722ff692b90) +++ leahi_dialin/ui/td_messaging.py (.../td_messaging.py) (revision 56ef7c146cfc502992a01f639cc9bfa0b002623a) @@ -650,7 +650,7 @@ def td_bolus_volume_adjustment_response(self, vRejectionReason: int, vBolusVolume: int,): """ - the pressure limits adjustment response message method(Msg ID: 0x81, 123) + the pressure limits adjustment response message method(Msg ID: 0x82, 124) Args: @param vRejectionReason (int) : response rejection reason, if rejection reason is 0, then accepted (0) will be sent, @@ -669,6 +669,56 @@ self.can_interface.send(message, 0) + def td_duration_validate_response(self, vRejectionReason: int, vDuration: int, vUFVolumeGoal: float, vUFRate: float): + """ + the duration validate response message method(Msg ID: 0x84, 126) + Args: + @param vRejectionReason (int) : response rejection reason, + if rejection reason is 0, then accepted (0) will be sent, + otherwise rejected (1) + @param vDuration (int) : treatment duration (min) + @param vUFVolumeGoal (float) : UF volume goal (mL) + @param vUFRate (float) : UF rate (L/hr) + @return: None + """ + payload = conversions.integer_to_bytearray(1 if vRejectionReason == 0 else 0 ) + payload += conversions.integer_to_bytearray(vRejectionReason ) + payload += conversions.integer_to_bytearray(vDuration ) + payload += conversions.float_to_bytearray(vUFVolumeGoal ) + payload += conversions.float_to_bytearray(vUFRate ) + + message = CAN.DenaliMessage.build_message( + channel_id=CAN.DenaliChannels.td_to_ui_ch_id, + message_id=msg_ids.MsgIds.MSG_ID_TD_DURATION_VALIDATE_RESPONSE .value, + payload=payload) + self.can_interface.send(message, 0) + + + def td_duration_confirm_response(self, vRejectionReason: int, vDuration: int, vUFVolumeGoal: float, vUFRate: float): + """ + the duration confirm response message method(Msg ID: 0x86, 128) + Args: + @param vRejectionReason (int) : response rejection reason, + if rejection reason is 0, then accepted (0) will be sent, + otherwise rejected (1) + @param vDuration (int) : treatment duration (min) + @param vUFVolumeGoal (float) : UF volume goal (mL) + @param vUFRate (float) : UF rate (L/hr) + @return: None + """ + payload = conversions.integer_to_bytearray(1 if vRejectionReason == 0 else 0 ) + payload += conversions.integer_to_bytearray(vRejectionReason ) + payload += conversions.integer_to_bytearray(vDuration ) + payload += conversions.float_to_bytearray(vUFVolumeGoal ) + payload += conversions.float_to_bytearray(vUFRate ) + + message = CAN.DenaliMessage.build_message( + channel_id=CAN.DenaliChannels.td_to_ui_ch_id, + message_id=msg_ids.MsgIds.MSG_ID_TD_DURATION_CONFIRM_RESPONSE .value, + payload=payload) + self.can_interface.send(message, 0) + + def td_pressure_limits_adjustment_response(self, vRejectionReason: int, vArterialWindow: int, vVenousWindow: int, vVenousAsymmetricWindow: int, vTmpWindow: int): """