Index: leahi_dialin/ui/td_messaging.py =================================================================== diff -u -r48db76b8d562285e084dec7ef334dce87ef7260f -rbc48fc613a98360e723ed057a23f2635326b5fe2 --- leahi_dialin/ui/td_messaging.py (.../td_messaging.py) (revision 48db76b8d562285e084dec7ef334dce87ef7260f) +++ leahi_dialin/ui/td_messaging.py (.../td_messaging.py) (revision bc48fc613a98360e723ed057a23f2635326b5fe2) @@ -419,6 +419,30 @@ self.can_interface.send(message, 0) + def td_treatment_stop_state( self, + total : int , + countdown : int ): + """ + Broadcasts the current TD Heparin data (Msg ID: 0xXX, XX) + Args: + @param total (int) : Total Timeout of Treatment Blood Stop + @param countdown (int) : Current Timeout count down of Treatment Blood Stop + @return: None + """ + if not self.can_enabled: + raise ValueError("CAN Interface is not enabled") + + + payload = conversions.unsigned_integer_to_bytearray (total ) + payload += conversions.unsigned_integer_to_bytearray (countdown ) + + message = CAN.DenaliMessage.build_message( + channel_id=CAN.DenaliChannels.td_sync_broadcast_ch_id, + message_id=msg_ids.MsgIds.MSG_ID_TD_TREATMENT_PAUSED_TIMER_DATA.value, + payload=payload) + + self.can_interface.send(message, 0) + def td_vitals( self, systolic : int , diastolic : int , @@ -646,6 +670,43 @@ self.can_interface.send(message, 0) + def td_recirculate_progress(self, vTimeout: int, + vCountdown: int): + """ + rinseback progress message (Msg ID: 0x8F, 143) + Args: + @param vTimeout : (int) Total Timeout of Recirculate delivery + @param vCountdown : (int) Current Timeout count down of Recirculate delivery + @return: None + """ + payload = conversions.unsigned_integer_to_bytearray (vTimeout ) + payload += conversions.unsigned_integer_to_bytearray (vCountdown ) + + message = CAN.DenaliMessage.build_message( + channel_id=CAN.DenaliChannels.td_to_ui_ch_id, + message_id=msg_ids.MsgIds.MSG_ID_TD_RECIRCULATE_DATA.value, + payload=payload) + self.can_interface.send(message, 0) + + + def td_recirculate_cmd_response(self, vAccepted: int, vRejectionReason: int): + """ + rinseback command response message (Msg ID: 0x99, 145) + Args: + @param vRejectionReason : (int) rejection reason + @return: None + """ + payload = conversions.integer_to_bytearray(vAccepted) + payload += conversions.integer_to_bytearray(vRejectionReason) + + message = CAN.DenaliMessage.build_message( + channel_id=CAN.DenaliChannels.td_to_ui_ch_id, + message_id=msg_ids.MsgIds.MSG_ID_TD_RECIRCULATE_RESPONSE.value, + payload=payload) + + self.can_interface.send(message, 0) + + def td_isolated_uf( self, duration : int , set_volume : int , @@ -1605,7 +1666,48 @@ payload=payload) self.can_interface.send(message, 0) - + + + def td_treatment_log_alarm(self, alarm_id: int, parameter1: float, parameter2: float) -> None: + """ + send the treatment log data + @param alarm_id: (U32) alarm ID + @param parameter1: (F32) paramter 1 (it's not clear yet how many paramters with what type is required and this is only plceholder) + @param parameter2: (F32) paramter 2 (it's not clear yet how many paramters with what type is required and this is only plceholder) + @return: None + """ + payload = conversions.integer_to_bytearray(alarm_id) + payload += conversions.float_to_bytearray(parameter1) + payload += conversions.float_to_bytearray(parameter2) + + message = CAN.DenaliMessage.build_message( + channel_id=CAN.DenaliChannels.td_to_ui_ch_id, + message_id=msg_ids.MsgIds.MSG_ID_TD_TREATMENT_LOG_ALARM_EVENT.value, + payload=payload) + + self.can_interface.send(message, 0) + + + def td_treatment_log_event(self, event_id: int, old_value: float, new_value: float) -> None: + """ + send the treatment log data + @param event_id: (U32) alarm ID + @param old_value: (F32) the old value + @param new_value: (F32) the new value + @return: none + """ + payload = conversions.integer_to_bytearray(event_id) + payload += conversions.float_to_bytearray(old_value) + payload += conversions.float_to_bytearray(new_value) + + message = CAN.DenaliMessage.build_message( + channel_id=CAN.DenaliChannels.td_to_ui_ch_id, + message_id=msg_ids.MsgIds.MSG_ID_TD_TREATMENT_LOG_EVENT.value, + payload=payload) + + self.can_interface.send(message, 0) + + def cmd_send_general_response(self, message_id: int, accepted: int, reason: int, is_pure_data: bool = False, has_parameters: bool = False,