Index: leahi_dialin/ui/td_messaging.py =================================================================== diff -u -r82673b44f61604336cf70c0e72db0e332325c8af -r923a6cf4205ed94ae793899f3d3d2dd26b87a8f5 --- leahi_dialin/ui/td_messaging.py (.../td_messaging.py) (revision 82673b44f61604336cf70c0e72db0e332325c8af) +++ leahi_dialin/ui/td_messaging.py (.../td_messaging.py) (revision 923a6cf4205ed94ae793899f3d3d2dd26b87a8f5) @@ -428,6 +428,34 @@ self.can_interface.send(message, 0) + + def td_vitals( self, + systolic : int , + diastolic : int , + heartRate : int ): + """ + Broadcasts the current TD Vitals data (Msg ID: 0x65, 101) + Args: + @param systolic (int ) : systolic vital + @param diastolic (int ) : diastolic vital + @param heartRate (int ) : heart rate + @return: None + """ + + if not self.can_enabled: + raise ValueError("CAN Interface is not enabled") + + + payload = conversions.unsigned_integer_to_bytearray (systolic ) + payload += conversions.unsigned_integer_to_bytearray (diastolic ) + payload += conversions.unsigned_integer_to_bytearray (heartRate ) + + message = CAN.DenaliMessage.build_message( + channel_id=CAN.DenaliChannels.td_sync_broadcast_ch_id, + message_id=msg_ids.MsgIds.MSG_ID_TD_BLOOD_PRESSURE_DATA.value, + payload=payload) + self.can_interface.send(message, 0) + def td_ultrafiltration( self, set_volume : float , target_rate : float , @@ -486,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 , @@ -582,6 +647,22 @@ self.can_interface.send(message, 0) + def td_vitals_adjustment_response(self,vRejectionReason: int): + """ + the vitals adjustment response message method(Msg ID: 0x64, 100) + Args: + None + @return: None + """ + payload = conversions.unsigned_integer_to_Bytearray(1 if vRejectionReason == 0 else 0) + payload += conversions.unsigned_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_BLOOD_PRESSURE_RESPONSE.value, + payload=payload) + self.can_interface.send(message, 0) + def td_Treatment_Parameters_CreateRx(self, vRejectionReason: int): """ TD response to in initiate Treatment and enter Create Rx (Msg ID: 0x46, 70)