Index: MainTreatmentData/loader.py =================================================================== diff -u -r2d936e054bf8364ff42d19d616b555637749ca22 -r94d0118ed4a3f20089a70ae8e43e3e46e39d9286 --- MainTreatmentData/loader.py (.../loader.py) (revision 2d936e054bf8364ff42d19d616b555637749ca22) +++ MainTreatmentData/loader.py (.../loader.py) (revision 94d0118ed4a3f20089a70ae8e43e3e46e39d9286) @@ -36,13 +36,18 @@ if self.can_interface is not None: channel_id = CAN.DenaliChannels.ui_to_td_ch_id - message_id = MsgIds.MSG_ID_UI_SOLUTION_INFUSION_REQUEST.value + # soluton infusion + solution_infusion_message_id = MsgIds.MSG_ID_UI_SOLUTION_INFUSION_REQUEST.value self.can_interface.register_receiving_publication_function(channel_id, - message_id, + solution_infusion_message_id, self.handle_solution_infusion_request) - self.saline_bolus_req.setText("Saline Bolus Req[{0}00]".format(f"0x{message_id:02X}")) + self.saline_bolus_req.setText("Saline Bolus Req[{0}00]".format(f"0x{solution_infusion_message_id:02X}")) + # vitals request + vitals_request_message_id = MsgIds.MSG_ID_UI_VITALS_REQUEST.value + self.can_interface.register_receiving_publication_function(channel_id, + vitals_request_message_id, + self.handle_vitals_request) - def _init_loader(self): """ finds and creates widgets @@ -77,6 +82,10 @@ self.lbBolusStart = self.find_widget(QtWidgets.QLabel , 'lbBolusStart' ) + self.sbSystolic = self.find_widget(QtWidgets.QSpinBox , 'SystolicSpinBox' ) + self.sbDiastolic = self.find_widget(QtWidgets.QSpinBox , 'DiastolicSpinBox' ) + self.sbHeartRate = self.find_widget(QtWidgets.QSpinBox , 'HeartRateSpinBox' ) + self.sbVitalsReason = self.find_widget(QtWidgets.QSpinBox , 'VitalsReasonSpinBox' ) def _init_connections(self): """ @@ -104,6 +113,9 @@ self.dial_flow_st_pt .valueChanged.connect(self.do_tx_set_point_data) self.dial_temp_st_pt .valueChanged.connect(self.do_tx_set_point_data) + self.sbSystolic .valueChanged.connect(self.do_vitals_data) + self.sbDiastolic .valueChanged.connect(self.do_vitals_data) + self.sbHeartRate .valueChanged.connect(self.do_vitals_data) def handle_solution_infusion_request(self, message, timestamp = 0.0): """ @@ -115,6 +127,14 @@ state,index = conversions.bytearray_to_integer( message, index) self.lbBolusStart .setText( str(state) ) + def handle_vitals_request(self, message, timestamp = 0.0): + """ + Called when the user requests to firmware from UI + @return: None + """ + reason = self.sbVitalsReason.value() + self.td_interface.td_vitals_adjustment_response(reason) + @Slot() def _init_widgets(self): """ @@ -220,7 +240,24 @@ dialysate_temp ) + @Slot() + def do_vitals_data(self): + """ + the slot for Vitals Data + :return: none + """ + systolic = self.sbSystolic .value() + diastolic = self.sbDiastolic .value() + heartRate = self.sbHeartRate .value() + + self.td_interface.td_vitals( + systolic , + diastolic , + heartRate + ) + + @Slot() def do_all_tx_data(self): """ the slot for treatment set point Data @@ -230,3 +267,4 @@ self.do_uf_data() self.do_tx_time_data() self.do_tx_set_point_data() + self.do_vitals_data()