Index: MainTreatmentData/interface.ui =================================================================== diff -u -r7424074a93ac8d7384b0df121b651f6230f4f265 -r99e021f300fcbdbd20a79762f9b94d234244b70f --- MainTreatmentData/interface.ui (.../interface.ui) (revision 7424074a93ac8d7384b0df121b651f6230f4f265) +++ MainTreatmentData/interface.ui (.../interface.ui) (revision 99e021f300fcbdbd20a79762f9b94d234244b70f) @@ -654,7 +654,7 @@ - Dialysate Flowl + Dialysate Flow Index: TD_ParamRanges/interface.ui =================================================================== diff -u -rb908a6c7f02cb688cc67f9d999686b4ba7d6d246 -r99e021f300fcbdbd20a79762f9b94d234244b70f --- TD_ParamRanges/interface.ui (.../interface.ui) (revision b908a6c7f02cb688cc67f9d999686b4ba7d6d246) +++ TD_ParamRanges/interface.ui (.../interface.ui) (revision 99e021f300fcbdbd20a79762f9b94d234244b70f) @@ -29,7 +29,7 @@ - &7 Param Ranges/&Param Ranges + &8 Param Ranges/&Param Ranges Index: TD_TreatmentAdjustmentDuration/interface.ui =================================================================== diff -u -rb908a6c7f02cb688cc67f9d999686b4ba7d6d246 -r99e021f300fcbdbd20a79762f9b94d234244b70f --- TD_TreatmentAdjustmentDuration/interface.ui (.../interface.ui) (revision b908a6c7f02cb688cc67f9d999686b4ba7d6d246) +++ TD_TreatmentAdjustmentDuration/interface.ui (.../interface.ui) (revision 99e021f300fcbdbd20a79762f9b94d234244b70f) @@ -22,7 +22,7 @@ - &3 Treatment/&7 Duration Adjustment + &3 Treatment/&5 Duration Adjustment Index: TD_TreatmentAdjustmentSetPoints/interface.ui =================================================================== diff -u -r7424074a93ac8d7384b0df121b651f6230f4f265 -r99e021f300fcbdbd20a79762f9b94d234244b70f --- TD_TreatmentAdjustmentSetPoints/interface.ui (.../interface.ui) (revision 7424074a93ac8d7384b0df121b651f6230f4f265) +++ TD_TreatmentAdjustmentSetPoints/interface.ui (.../interface.ui) (revision 99e021f300fcbdbd20a79762f9b94d234244b70f) @@ -22,7 +22,7 @@ - &3 Treatment/&8 Set Points Adjustments + &3 Treatment/&9 Set Points Adjustments Index: TD_TreatmentAdjustmentUltrafiltration/interface.ui =================================================================== diff -u --- TD_TreatmentAdjustmentUltrafiltration/interface.ui (revision 0) +++ TD_TreatmentAdjustmentUltrafiltration/interface.ui (revision 99e021f300fcbdbd20a79762f9b94d234244b70f) @@ -0,0 +1,1450 @@ + + + ui_interface + + + + 0 + 0 + 920 + 467 + + + + + 100000 + 100000 + + + + &3 Treatment/&8 Ultrafiltration Adjustment + + + + + + + + + 10 + + + + color: rgb(238, 238, 236); +background-color: rgb(92, 53, 102); + + + + Ultrafiltration + + + Qt::AlignCenter + + + + + + + Send + + + + + + + Reset + + + + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 2 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + + + 0 + 0 + + + + + 352 + 0 + + + + + 10 + + + + color: rgb(238, 238, 236); +background-color: rgb(92, 53, 102); + + + 62 : [0x3E00] : Ultrafiltration Data + + + Qt::AlignCenter + + + + + + + Send + + + + + + + Reset + + + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + Set Volume (L) + + + + + + + + + + 0 + 0 + + + + + 250 + 0 + + + + 1000 + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + 40 + 0 + + + + + 10 + + + + 0.00 + + + Qt::AlignCenter + + + + + + + + + Target Rate (L/Hr) + + + + + + + + + + 0 + 0 + + + + + 250 + 0 + + + + 1000 + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + 40 + 0 + + + + + 10 + + + + 0.00 + + + Qt::AlignCenter + + + + + + + + + Volume Delivered (L) + + + + + + + + + + 0 + 0 + + + + + 250 + 0 + + + + 800 + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + 40 + 0 + + + + + 10 + + + + 0.00 + + + Qt::AlignCenter + + + + + + + + + State + + + + + + + + 0 + 0 + + + + Qt::AlignCenter + + + + + + + + + Qt::Vertical + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 2 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + + + 10 + + + + color: rgb(238, 238, 236); +background-color: rgb(92, 53, 102); + + + 66: [0x4200]: Settings Change Response + + + Qt::AlignCenter + + + + + + + Send + + + + + + + Reset + + + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + Req [0x4100] +Volume (mL) + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 10 + + + + QFrame::Box + + + QFrame::Raised + + + -- + + + Qt::AlignCenter + + + + + + + Response + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 10 + + + 5 + + + 2 + + + 5 + + + 2 + + + + + + 10 + + + + Accept + + + true + + + + + + + + 10 + + + + Reject + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + Reject Reason + + + + + + + Qt::AlignCenter + + + + + + + Volume (mL) + + + + + + + + + + 250 + 0 + + + + 8000 + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 10 + + + + 0.00 + + + Qt::AlignCenter + + + + + + + + + Duration (min) + + + + + + + + + + 250 + 0 + + + + 4800 + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 10 + + + + 0.00 + + + Qt::AlignCenter + + + + + + + + + Time Diff + + + + + + + + + + 250 + 0 + + + + 4800 + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 10 + + + + 0.00 + + + Qt::AlignCenter + + + + + + + + + Rate (L/Hr) + + + + + + + + + 2000 + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 10 + + + + 0.00 + + + Qt::AlignCenter + + + + + + + + + Rate Diff (L/Hr) + + + + + + + + + 2000 + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 10 + + + + 0.00 + + + Qt::AlignCenter + + + + + + + + + Old Rate (L/Hr) + + + + + + + + + 2000 + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 10 + + + + 0.00 + + + Qt::AlignCenter + + + + + + + + + + + Qt::Vertical + + + + 0 + 0 + + + + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 2 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + + + 0 + 0 + + + + + 10 + + + + color: rgb(238, 238, 236); +background-color: rgb(92, 53, 102); + + + 72: [0x4800]: Pause/Resume Response + + + Qt::AlignCenter + + + + + + + Send + + + + + + + Reset + + + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + Req [0x4700] + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 10 + + + + QFrame::Box + + + QFrame::Raised + + + -- + + + Qt::AlignCenter + + + + + + + Response + + + + + + + + 0 + 0 + + + + + 10 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 10 + + + 5 + + + 2 + + + 5 + + + 2 + + + + + + 10 + + + + Accept + + + true + + + + + + + + 10 + + + + Reject + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + Reject Reason + + + + + + + Qt::AlignCenter + + + + + + + + + Qt::Vertical + + + + 0 + 0 + + + + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 2 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + + + 10 + + + + color: rgb(238, 238, 236); +background-color: rgb(92, 53, 102); + + + 103: [0x6700]: Confirm Response + + + Qt::AlignCenter + + + + + + + Send + + + + + + + Reset + + + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + Req [0x6600] +Volume (mL) + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 10 + + + + QFrame::Box + + + QFrame::Raised + + + -- + + + Qt::AlignCenter + + + + + + + Response + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 10 + + + 5 + + + 2 + + + 5 + + + 2 + + + + + + 10 + + + + Accept + + + true + + + + + + + + 10 + + + + Reject + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + Reject Reason + + + + + + + Qt::AlignCenter + + + + + + + Volume (mL) + + + + + + + + + + 250 + 0 + + + + Qt::Horizontal + + + + + + + + 50 + 0 + + + + + 10 + + + + 0.00 + + + Qt::AlignCenter + + + + + + + + + Duration (min) + + + + + + + + + + 250 + 0 + + + + Qt::Horizontal + + + + + + + + 50 + 0 + + + + + 10 + + + + 0.00 + + + Qt::AlignCenter + + + + + + + + + Rate (L/Hr) + + + + + + + + + + 250 + 0 + + + + Qt::Horizontal + + + + + + + + 50 + 0 + + + + + 10 + + + + 0.00 + + + Qt::AlignCenter + + + + + + + + + + + Qt::Vertical + + + + 0 + 0 + + + + + + + + + + + + + allSendButton + allResetButton + + + + Index: TD_TreatmentAdjustmentUltrafiltration/loader.py =================================================================== diff -u --- TD_TreatmentAdjustmentUltrafiltration/loader.py (revision 0) +++ TD_TreatmentAdjustmentUltrafiltration/loader.py (revision 99e021f300fcbdbd20a79762f9b94d234244b70f) @@ -0,0 +1,322 @@ +""" + TD Ultrafiltration UI Loader +""" +# Python +import os +import can +import struct + +# Qt +from PySide2 import QtCore, QtWidgets +from PySide2.QtCore import Slot + +# parent +from engine.dynamicloader import DynamicLoader + +# plugin specific +from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions +from leahi_dialin.protocols import CAN +from leahi_dialin.utils import conversions + +from leahi_dialin.common.td_defs import TDOpModes +from leahi_dialin.common.td_defs import TDStandbyStates + +# hd Simulator +from leahi_dialin.ui.td_messaging import TD_Messaging + +class Loader(DynamicLoader): + """ + TD Ultrafiltration UI Loader + """ + + def __init__(self): + self.td_interface = TD_Messaging() + self.can_interface = self.td_interface.can_interface + super().__init__(os.path.dirname(__file__)) + + if self.can_interface is not None: + self.can_interface.register_receiving_publication_function( + CAN.DenaliChannels.ui_to_td_ch_id, + MsgIds.MSG_ID_UI_UF_PAUSE_RESUME_REQUEST.value, + self.handle_pause_resume_request) + self.can_interface.register_receiving_publication_function( + CAN.DenaliChannels.ui_to_td_ch_id, + MsgIds.MSG_ID_UI_ULTRAFILTRATION_VOLUME_TO_VALIDATE.value, + self.handle_settings_change_request) + self.can_interface.register_receiving_publication_function( + CAN.DenaliChannels.ui_to_td_ch_id, + MsgIds.MSG_ID_USER_CONFIRM_UF_SETTINGS_CHANGE_REQUEST.value, + self.handle_confirm_request) + + def _init_loader(self): + """ + finds and creates widgets + :return: none + """ + self.uf_scaling = 100.00 # UF Scaling factor to be 2 decimal places + + self.allSend = self.find_widget(QtWidgets.QToolButton , 'allSendButton' ) + self.allReset = self.find_widget(QtWidgets.QToolButton , 'allResetButton' ) + + self.ufDataSend = self.find_widget(QtWidgets.QToolButton, 'ufDataSendButton' ) + self.ufDataReset = self.find_widget(QtWidgets.QToolButton, 'ufDataResetButton' ) + self.ufSetVolume = self.find_widget(QtWidgets.QSlider , 'ufSetVolumeSlider' ) + self.ufTargetRate = self.find_widget(QtWidgets.QSlider , 'ufTargetRateSlider' ) + self.ufVolumeDelivered = self.find_widget(QtWidgets.QSlider , 'ufVolumeDeliveredSlider' ) + self.ufState = self.find_widget(QtWidgets.QSpinBox , 'ufStateSpinBox' ) + self.ufSetVolumeLabel = self.find_widget(QtWidgets.QLabel , 'ufSetVolumeLabel' ) + self.ufTargetRateLabel = self.find_widget(QtWidgets.QLabel , 'ufTargetRateLabel' ) + self.ufVolumeDeliveredLabel = self.find_widget(QtWidgets.QLabel , 'ufVolumeDeliveredLabel' ) + + self.prSend = self.find_widget(QtWidgets.QToolButton , 'prSendButton' ) + self.prReset = self.find_widget(QtWidgets.QToolButton , 'prResetButton' ) + self.prRequestLabel = self.find_widget(QtWidgets.QLabel , 'prRequestLabel' ) + self.prAccepted = self.find_widget(QtWidgets.QRadioButton , 'prAcceptRadioButton' ) + self.prRejectReason = self.find_widget(QtWidgets.QSpinBox , 'prRejectReasonSpinBox' ) + + self.changeSend = self.find_widget(QtWidgets.QToolButton , 'changeSendButton' ) + self.changeReset = self.find_widget(QtWidgets.QToolButton , 'changeResetButton' ) + self.changeRequestLabel = self.find_widget(QtWidgets.QLabel , 'changeRequestLabel' ) + self.changeAccepted = self.find_widget(QtWidgets.QRadioButton , 'changeAcceptRadioButton' ) + self.changeRejectReason = self.find_widget(QtWidgets.QSpinBox , 'changeRejectReasonSpinBox' ) + self.changeVolume = self.find_widget(QtWidgets.QSlider , 'changeVolumeSlider' ) + self.changeVolumeLabel = self.find_widget(QtWidgets.QLabel , 'changeVolumeLabel' ) + self.changeDuration = self.find_widget(QtWidgets.QSlider , 'changeDurationSlider' ) + self.changeDurationLabel = self.find_widget(QtWidgets.QLabel , 'changeDurationLabel' ) + self.changeTimeDiff = self.find_widget(QtWidgets.QSlider , 'changeTimeDiffSlider' ) + self.changeTimeDiffLabel = self.find_widget(QtWidgets.QLabel , 'changeTimeDiffLabel' ) + self.changeRate = self.find_widget(QtWidgets.QSlider , 'changeRateSlider' ) + self.changeRateLabel = self.find_widget(QtWidgets.QLabel , 'changeRateLabel' ) + self.changeRateDiff = self.find_widget(QtWidgets.QSlider , 'changeRateDiffSlider' ) + self.changeRateDiffLabel = self.find_widget(QtWidgets.QLabel , 'changeRateDiffLabel' ) + self.changeOldRate = self.find_widget(QtWidgets.QSlider , 'changeOldRateSlider' ) + self.changeOldRateLabel = self.find_widget(QtWidgets.QLabel , 'changeOldRateLabel' ) + + self.confirmSend = self.find_widget(QtWidgets.QToolButton , 'confirmSendButton' ) + self.confirmReset = self.find_widget(QtWidgets.QToolButton , 'confirmResetButton' ) + self.confirmRequestLabel = self.find_widget(QtWidgets.QLabel , 'confirmRequestLabel' ) + self.confirmAccepted = self.find_widget(QtWidgets.QRadioButton , 'confirmAcceptRadioButton' ) + self.confirmRejectReason = self.find_widget(QtWidgets.QSpinBox , 'confirmRejectReasonSpinBox' ) + self.confirmVolume = self.find_widget(QtWidgets.QSlider , 'confirmVolumeSlider' ) + self.confirmVolumeLabel = self.find_widget(QtWidgets.QLabel , 'confirmVolumeLabel' ) + self.confirmDuration = self.find_widget(QtWidgets.QSlider , 'confirmDurationSlider' ) + self.confirmDurationLabel = self.find_widget(QtWidgets.QLabel , 'confirmDurationLabel' ) + self.confirmRate = self.find_widget(QtWidgets.QSlider , 'confirmRateSlider' ) + self.confirmRateLabel = self.find_widget(QtWidgets.QLabel , 'confirmRateLabel' ) + + def _init_connections(self): + """ + initializes the widgets connections + :return: none + """ + self.allReset .clicked.connect(self._init_widgets) + self.allSend .clicked.connect(self.do_all_tx_data) + + self.ufDataSend .clicked.connect(self.do_uf_data) + self.ufDataReset .clicked.connect(self.init_uf_data) + self.ufSetVolume .valueChanged.connect(self.do_uf_data) + self.ufTargetRate .valueChanged.connect(self.do_uf_data) + self.ufVolumeDelivered .valueChanged.connect(self.do_uf_data) + self.ufState .valueChanged.connect(self.do_uf_data) + + self.prSend.clicked.connect(self.do_pause_resume) + self.prReset.clicked.connect(self.init_pause_resume) + + self.changeSend.clicked.connect(self.do_settings_change) + self.changeReset.clicked.connect(self.init_settings_change) + self.changeVolume.valueChanged.connect(lambda value: self.changeVolumeLabel.setText(f"{value/1000:.2f}")) + self.changeDuration.valueChanged.connect(lambda value: self.changeDurationLabel.setText(f"{value}")) + self.changeTimeDiff.valueChanged.connect(lambda value: self.changeTimeDiffLabel.setText(f"{value}")) + self.changeRate.valueChanged.connect(lambda value: self.changeRateLabel.setText(f"{value/1000:.2f}")) + self.changeRateDiff.valueChanged.connect(lambda value: self.changeRateDiffLabel.setText(f"{value/1000:.2f}")) + self.changeOldRate.valueChanged.connect(lambda value: self.changeOldRateLabel.setText(f"{value/1000:.2f}")) + + self.confirmSend.clicked.connect(self.do_confirm) + self.confirmReset.clicked.connect(self.init_confirm) + self.confirmVolume.valueChanged.connect(lambda value: self.confirmVolumeLabel.setText(f"{value/1000:.2f}")) + self.confirmDuration.valueChanged.connect(lambda value: self.confirmDurationLabel.setText(f"{value}")) + self.confirmRate.valueChanged.connect(lambda value: self.confirmRateLabel.setText(f"{value/1000:.2f}")) + + @Slot() + def _init_widgets(self): + """ + initializes the widgets' properties + :return: none + """ + self.init_uf_data() + self.init_settings_change() + self.init_pause_resume() + self.init_confirm() + + @Slot() + def init_uf_data(self): + """ + slot for initializing UF settings change + :return: none + """ + self.ufSetVolume .setValue(0) + self.ufTargetRate .setValue(0) + self.ufVolumeDelivered .setValue(0) + self.ufState .setValue(0) + + @Slot() + def do_uf_data(self): + """ + the slot for UF Data + :return: none + """ + set_volume = self.ufSetVolume .value() / self.uf_scaling + target_rate = self.ufTargetRate .value() / self.uf_scaling + volume_delivered = self.ufVolumeDelivered.value() / self.uf_scaling + state = self.ufState .value() + + self.ufSetVolumeLabel .setText(f"{set_volume:.2f}" ) + self.ufTargetRateLabel .setText(f"{target_rate:.2f}" ) + self.ufVolumeDeliveredLabel .setText(f"{volume_delivered:.2f}" ) + + self.td_interface.td_ultrafiltration( + set_volume , + target_rate , + volume_delivered , + state + ) + + @Slot() + def init_settings_change(self): + """ + slot for initializing UF settings change + :return: none + """ + self.changeRequestLabel .setText("--") + self.changeAccepted .setChecked(True) + self.changeRejectReason .setValue(0) + self.changeVolume .setValue(0) + self.changeDuration .setValue(0) + self.changeTimeDiff .setValue(0) + self.changeRate .setValue(0) + self.changeRateDiff .setValue(0) + self.changeOldRate .setValue(0) + + @Slot() + def handle_settings_change_request(self, message, timestamp = 0.0): + """ + Called when the user requests UF settings change to firmware from UI + @return: None + """ + message = message['message'] + index = MsgFieldPositions.START_POS_FIELD_1 + value,index = conversions.bytearray_to_float(message, index) + self.changeRequestLabel.setText(f"{value:.0f}") + + @Slot() + def do_settings_change(self): + """ + slot for UF settings change + :return: none + """ + payload = conversions.integer_to_bytearray(int(1 if self.changeAccepted.isChecked() else 0)) + payload += conversions.integer_to_bytearray(self.changeRejectReason.value()) + payload += conversions.float_to_bytearray(self.changeVolume.value()) + payload += conversions.integer_to_bytearray(self.changeDuration.value()) + payload += conversions.integer_to_bytearray(self.changeTimeDiff.value()) + payload += conversions.float_to_bytearray(self.changeRate.value()/1000) + payload += conversions.float_to_bytearray(self.changeRateDiff.value()/1000) + payload += conversions.float_to_bytearray(self.changeOldRate.value()/1000) + + self.td_interface.cmd_send_general_response( + message_id = MsgIds.MSG_ID_TD_RESP_ULTRAFILTRATION_VOLUME_TO_VALIDATE.value, + accepted = 1 if self.changeAccepted.isChecked() else 0, + reason = self.changeRejectReason.value(), + is_pure_data = False, + has_parameters = True, + parameters_payload = payload + ) + + @Slot() + def init_pause_resume(self): + """ + slot for initializing UF pause/resume + :return: none + """ + self.prRequestLabel .setText("--") + self.prAccepted .setChecked(True) + self.prRejectReason .setValue(0) + + @Slot() + def handle_pause_resume_request(self, message, timestamp = 0.0): + """ + Called when the user requests pause/resume to firmware from UI + @return: None + """ + message = message['message'] + index = MsgFieldPositions.START_POS_FIELD_1 + state,index = conversions.bytearray_to_integer(message, index) + self.prRequestLabel.setText(f"Resume({state})" if state else f"Pause({state})") + + @Slot() + def do_pause_resume(self): + """ + slot for UF pause/resume + :return: none + """ + self.td_interface.cmd_send_general_response( + message_id = MsgIds.MSG_ID_TD_UF_PAUSE_RESUME_RESPONSE.value, + accepted = 1 if self.prAccepted.isChecked() else 0, + reason = self.prRejectReason.value() + ) + + @Slot() + def init_confirm(self): + """ + slot for initializing UF confirm + :return: none + """ + self.confirmRequestLabel .setText("--") + self.confirmAccepted .setChecked(True) + self.confirmRejectReason .setValue(0) + self.confirmVolume .setValue(0) + self.confirmDuration .setValue(0) + self.confirmRate .setValue(0) + + @Slot() + def handle_confirm_request(self, message, timestamp = 0.0): + """ + Called when the user requests confirm to firmware from UI + @return: None + """ + message = message['message'] + index = MsgFieldPositions.START_POS_FIELD_1 + value,index = conversions.bytearray_to_float(message, index) + self.confirmRequestLabel.setText(f"{value:.0f}") + + @Slot() + def do_confirm(self): + """ + slot for UF confirm + :return: none + """ + payload = conversions.integer_to_bytearray(int(1 if self.confirmAccepted.isChecked() else 0)) + payload += conversions.integer_to_bytearray(self.confirmRejectReason.value()) + payload += conversions.float_to_bytearray(self.confirmVolume.value()) + payload += conversions.integer_to_bytearray(self.confirmDuration.value()) + payload += conversions.float_to_bytearray(self.confirmRate.value()/1000) + + self.td_interface.cmd_send_general_response( + message_id = MsgIds.MSG_ID_USER_UF_SETTINGS_CHANGE_CONFIRMATION_RESPONSE.value, + accepted = 1 if self.confirmAccepted.isChecked() else 0, + reason = self.confirmRejectReason.value(), + is_pure_data = False, + has_parameters = True, + parameters_payload = payload + ) + + @Slot() + def do_all_tx_data(self): + """ + slot for treatment set point Data + :return: none + """ + self.do_uf_data() + self.do_settings_change() + self.do_pause_resume() + self.do_confirm() Index: TD_TreatmentAdjustmentsPressures/interface.ui =================================================================== diff -u -r8f738af4e021a2ccd0f3f360489c3263a4c96631 -r99e021f300fcbdbd20a79762f9b94d234244b70f --- TD_TreatmentAdjustmentsPressures/interface.ui (.../interface.ui) (revision 8f738af4e021a2ccd0f3f360489c3263a4c96631) +++ TD_TreatmentAdjustmentsPressures/interface.ui (.../interface.ui) (revision 99e021f300fcbdbd20a79762f9b94d234244b70f) @@ -22,7 +22,7 @@ - &3 Treatment/&5 Pressure Adjustments + &3 Treatment/&7 Pressure Adjustments @@ -452,7 +452,7 @@ Qt::AlignCenter - 0 + -600 300 @@ -488,7 +488,7 @@ Qt::AlignCenter - 0 + -600 300 @@ -524,7 +524,7 @@ Qt::AlignCenter - 0 + -600 300 @@ -559,6 +559,9 @@ Qt::AlignCenter + + -600 + 300 Fisheye: Tag 99e021f300fcbdbd20a79762f9b94d234244b70f refers to a dead (removed) revision in file `TD_Ultrafiltration/interface.ui'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 99e021f300fcbdbd20a79762f9b94d234244b70f refers to a dead (removed) revision in file `TD_Ultrafiltration/loader.py'. Fisheye: No comparison available. Pass `N' to diff?