Index: DD_RO_WaterMode/interface.ui =================================================================== diff -u --- DD_RO_WaterMode/interface.ui (revision 0) +++ DD_RO_WaterMode/interface.ui (revision 05edab0c07f66b4d8ed5358f1b329a8ac48cfb5d) @@ -0,0 +1,198 @@ + + + ui_interface + + + + 0 + 0 + 400 + 115 + + + + + 0 + 0 + + + + + 400 + 0 + + + + + 200 + 250 + + + + &6 DD info/&B RO Water Mode + + + + + + + + 2 + + + + + + 0 + 0 + + + + + 250 + 0 + + + + + 10 + + + + color: rgb(238, 238, 236); +background-color: rgb(107, 87, 100); + + + 236 : [0xEE00] : DD RO Water Mode + + + Qt::AlignCenter + + + + + + + Send + + + + + + + + + + + QLayout::SetMaximumSize + + + 10 + + + 10 + + + 0 + + + + + Req [0xED] + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 1000 + 16777215 + + + + false + + + QFrame::WinPanel + + + QFrame::Sunken + + + - + + + Qt::AlignCenter + + + + + + + Accepted + + + + + + + + + + 0 + 0 + + + + Reason + + + + + + + + 50 + 0 + + + + + 50 + 16777215 + + + + 900 + + + + + + + + + + + + + + + tbSend + + + + Index: DD_RO_WaterMode/loader.py =================================================================== diff -u --- DD_RO_WaterMode/loader.py (revision 0) +++ DD_RO_WaterMode/loader.py (revision 05edab0c07f66b4d8ed5358f1b329a8ac48cfb5d) @@ -0,0 +1,97 @@ +""" + The DD RO Water Mode ui loader +""" +# Python +import os + +# 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 + +# dd Simulator +from leahi_dialin.ui.dd_messaging import DD_Messaging +from leahi_dialin.ui.td_messaging import TD_Messaging + + +class Loader(DynamicLoader): + """ + The DD Water Mode ui loader + """ + + def __init__(self): + self.dd_interface = DD_Messaging() + self.can_interface = self.dd_interface.can_interface + super().__init__(os.path.dirname(__file__)) + + if self.can_interface is not None: + self.can_interface.register_receiving_publication_function(CAN.CanChannels.ui_sync_broadcast_ch_id, + MsgIds.MSG_ID_UI_ADJUST_RO_WATER_MODE_REQUEST.value, + self.handle_request) + + def _init_loader(self): + """ + finds and creates widgets + :return: none + """ + self.cmdStrings = [ + "RO Featured", + "RO Featured w/ Boost Pump", + "RO Defeatured", + ] + + self.tbSend = self.find_widget(QtWidgets.QToolButton , 'tbSend' ) + self.lbRoWaterModeRequest = self.find_widget(QtWidgets.QLabel , 'lbRoWaterModeRequest' ) + self.spnReason = self.find_widget(QtWidgets.QSpinBox , 'spnReason' ) + self.cbAccepted = self.find_widget(QtWidgets.QCheckBox , 'cbAccepted' ) + + + def _init_connections(self): + """ + initializes the widgets connections + :return: none + """ + self.tbSend.clicked.connect(self.do_dd_ro_water_mode_response) + + + @Slot() + def _init_widgets(self): + """ + initializes the widgets' properties + :return: none + """ + self.lbRoWaterModeRequest .setText("-") + self.cbAccepted .setChecked ( True ) + self.spnReason .setValue ( 0 ) + + + @Slot() + def do_dd_ro_water_mode_response(self): + """ + the slot for dd level sensor change + :return: none + """ + self.dd_interface.dd_ro_water_mode_responses( + self.cbAccepted .isChecked() , + self.spnReason .value() + ) + + + @Slot() + def handle_request(self, message, timestamp = 0.0): + """ + the slot for Valve data change + :return: none + """ + message = message['message'] + index = MsgFieldPositions.START_POS_FIELD_1 + value,index = conversions.bytearray_to_integer( message, index) + cmdString = self.cmdStrings[value] if value >= 0 and value < len(self.cmdStrings) else "" + self.lbRoWaterModeRequest.setText(f"{cmdString} ({value})") Index: TreatmentLog/loader.py =================================================================== diff -u -rdfb07b224d8af91a376cd0a39a6b2c5f83f6fba8 -r05edab0c07f66b4d8ed5358f1b329a8ac48cfb5d --- TreatmentLog/loader.py (.../loader.py) (revision dfb07b224d8af91a376cd0a39a6b2c5f83f6fba8) +++ TreatmentLog/loader.py (.../loader.py) (revision 05edab0c07f66b4d8ed5358f1b329a8ac48cfb5d) @@ -57,7 +57,6 @@ self.eventOldValue.setValidator(floatValidator) self.eventNewValue.setValidator(floatValidator) - self.avgReset = self.find_widget(QtWidgets.QToolButton , 'tbAvgReset' ) self.avgSend = self.find_widget(QtWidgets.QToolButton , 'tbAvgSend' ) self.dspBloodFLowRate = self.find_widget(QtWidgets.QDoubleSpinBox , 'dspBloodFLowRate' ) @@ -69,7 +68,6 @@ self.dspDialysateTemp = self.find_widget(QtWidgets.QDoubleSpinBox , 'dspDialysateTemp' ) - def _init_connections(self): """ initializes the widgets connections