Index: leahi_dialin/common/msg_ids.py =================================================================== diff -u -r01af2d84b2cb4aa87c58f10eb8af669820e71f49 -r39755dffc6faeacd116ffb695f1ae3699126f38c --- leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 01af2d84b2cb4aa87c58f10eb8af669820e71f49) +++ leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 39755dffc6faeacd116ffb695f1ae3699126f38c) @@ -208,13 +208,13 @@ MSG_ID_TD_VITALS_ADJUSTMENT_RESPONSE = 0xB9 MSG_ID_UI_DD_NVM_GET_RECORD_REQUEST = 0xBA MSG_ID_DD_NVM_SYSTEM_RECORD_RESPONSE = 0xBB - MSG_ID_UI_DD_NVM_SET_SYSTEM_RECORD_REQUEST = 0xBC - MSG_ID_DD_NVM_SERVICE_RECORD_RESPONSE = 0xBD - MSG_ID_UI_DD_NVM_SET_SERVICE_RECORD_REQUEST = 0xBE - MSG_ID_DD_NVM_INSTITUTIONAL_RECORD_RESPONSE = 0xBF - MSG_ID_UI_DD_NVM_SET_INSTITUTIONAL_RECORD_REQUEST = 0xC0 - MSG_ID_DD_NVM_USAGE_INFO_RECORD_RESPONSE = 0xC1 - MSG_ID_UI_DD_NVM_SET_USAGE_INFO_RECORD_REQUEST = 0xC2 + MSG_ID_TD_HEMODIAFILTRATION_DATA = 0xBC + MSG_ID_UI_PAUSE_SUB_FLOW_REQUEST = 0xBD + MSG_ID_TD_PAUSE_SUB_FLOW_RESPONSE = 0xBE + MSG_ID_UI_AUTO_SUBSTITUTION_REQUEST = 0xBF + MSG_ID_TD_AUTO_SUBSTITUTION_REPONSE = 0xC0 + MSG_ID_UI_HDF_ADJUSTMENT_REQUEST = 0xC1 + MSG_ID_TD_HDF_ADJUSTMENT_RESPONSE = 0xC2 MSG_ID_DD_NVM_CAL_PRESSURE_SENSOR_RESPONSE = 0xC3 MSG_ID_UI_DD_NVM_SET_CAL_PRESSURE_SENSOR_REQUEST = 0xC4 MSG_ID_DD_NVM_CAL_TEMP_SENSOR_RESPONSE = 0xC5 Index: leahi_dialin/ui/td_messaging.py =================================================================== diff -u -r36636063d8db4e2792ee5002ae2f92e2b41c4bcd -r39755dffc6faeacd116ffb695f1ae3699126f38c --- leahi_dialin/ui/td_messaging.py (.../td_messaging.py) (revision 36636063d8db4e2792ee5002ae2f92e2b41c4bcd) +++ leahi_dialin/ui/td_messaging.py (.../td_messaging.py) (revision 39755dffc6faeacd116ffb695f1ae3699126f38c) @@ -2122,6 +2122,101 @@ self.can_interface.send(message, 0) + def td_hdf_data(self, HDFState : int, + AutoSubState : int, + reqRate : float, + targetTMP : float, + currentRate : float, + currentTMP : float, + reqVol : float, + totalVol : float, + IsHdfReqState : int) -> None: + """ + send the treatment log data + @param HDFState : (U32) blood flow rate + @param AutoSubState : (U32) dialysate flow rate + @param reqRate : (F32) uf flow rate + @param targetTMP : (F32) arterial Pressure + @param currentRate : (F32) venous Pressure + @param currentTMP : (F32) tmp Pressure + @param reqVol : (F32) dialysate temp + @param totalVol : (F32) dialysate temp + @param IsHdfReqState : (U32) dialysate temp + @return: none + """ + payload = conversions.integer_to_bytearray(HDFState ) + payload += conversions.integer_to_bytearray(AutoSubState ) + payload += conversions.float_to_bytearray (reqRate ) + payload += conversions.float_to_bytearray (targetTMP ) + payload += conversions.float_to_bytearray (currentRate ) + payload += conversions.float_to_bytearray (currentTMP ) + payload += conversions.float_to_bytearray (reqVol ) + payload += conversions.float_to_bytearray (totalVol ) + payload += conversions.integer_to_bytearray(IsHdfReqState ) + + message = CAN.CanMessage.build_message( + channel_id=CAN.CanChannels.td_to_ui_ch_id, + message_id=msg_ids.MsgIds.MSG_ID_TD_HEMODIAFILTRATION_DATA.value, + payload=payload) + + self.can_interface.send(message, 0) + + + def td_hdf_state_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.CanMessage.build_message( + channel_id=CAN.CanChannels.td_to_ui_ch_id, + message_id=msg_ids.MsgIds.MSG_ID_TD_PAUSE_SUB_FLOW_RESPONSE.value, + payload=payload) + + self.can_interface.send(message, 0) + + + def td_auto_sub_state_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.CanMessage.build_message( + channel_id=CAN.CanChannels.td_to_ui_ch_id, + message_id=msg_ids.MsgIds.MSG_ID_TD_AUTO_SUBSTITUTION_REPONSE.value, + payload=payload) + + self.can_interface.send(message, 0) + + + def td_hdf_adjust_response(self, vAccepted: int, vTxModeRejectionReason: int, vFluidVOlumeRejectionReason: 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(vTxModeRejectionReason ) + payload += conversions.integer_to_bytearray(vFluidVOlumeRejectionReason ) + + message = CAN.CanMessage.build_message( + channel_id=CAN.CanChannels.td_to_ui_ch_id, + message_id=msg_ids.MsgIds.MSG_ID_TD_HDF_ADJUSTMENT_RESPONSE.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,