Index: TD_BloodPrime/interface.ui =================================================================== diff -u --- TD_BloodPrime/interface.ui (revision 0) +++ TD_BloodPrime/interface.ui (revision 531f42abaecfa3032248bfe2530ff495e25e8bd3) @@ -0,0 +1,301 @@ + + + ui_interface + + + + 0 + 0 + 405 + 115 + + + + + 100000 + 100000 + + + + + 10 + + + + &3 Treatment/&5 Blood Prime + + + + 5 + + + 5 + + + 5 + + + 5 + + + 5 + + + + + + + + 10 + + + + color: rgb(238, 238, 236); +background-color: rgb(92, 53, 102); + + + 143 [0x8F00]: Blood Prime Progress Data + + + Qt::AlignCenter + + + + + + + Send + + + + + + + Reset + + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 2 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 6 + + + 6 + + + + + Target +Volume (mL) + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + false + + + + + + + 2 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 250 + 0 + + + + 1000 + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 10 + + + + 0 + + + Qt::AlignCenter + + + + + + + + + Delivered +Volume (mL) + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + false + + + + + + + 2 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 250 + 0 + + + + 1000 + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 10 + + + + 0 + + + Qt::AlignCenter + + + + + + + + + + + Qt::Vertical + + + + 0 + 0 + + + + + + + + + + + + Index: TD_BloodPrime/loader.py =================================================================== diff -u --- TD_BloodPrime/loader.py (revision 0) +++ TD_BloodPrime/loader.py (revision 531f42abaecfa3032248bfe2530ff495e25e8bd3) @@ -0,0 +1,89 @@ +""" + 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__)) + + + def _init_loader(self): + """ + finds and creates widgets + :return: none + """ + self.tbSend = self.find_widget(QtWidgets.QToolButton , 'tbSend' ) + self.tbReset = self.find_widget(QtWidgets.QToolButton , 'tbReset' ) + + self.slTargetVolume = self.find_widget(QtWidgets.QSlider , 'slTargetVolume' ) + self.lbTargetVolume = self.find_widget(QtWidgets.QLabel , 'lbTargetVolume' ) + self.slDeliveredVolume = self.find_widget(QtWidgets.QSlider , 'slDeliveredVolume' ) + self.lbDeliveredVolume = self.find_widget(QtWidgets.QLabel , 'lbDeliveredVolume' ) + + + def _init_connections(self): + """ + initializes the widgets connections + :return: none + """ + self.tbSend .clicked .connect(self.do_send) + self.tbReset .clicked .connect(self.do_reset) + self.slTargetVolume .valueChanged .connect(self.do_send) + self.slTargetVolume .valueChanged .connect(lambda value: self.lbTargetVolume.setText(f"{value}")) + self.slDeliveredVolume .valueChanged .connect(self.do_send) + self.slDeliveredVolume .valueChanged .connect(lambda value: self.lbDeliveredVolume.setText(f"{value}")) + + + @Slot() + def _init_widgets(self): + """ + initializes the widgets' properties + :return: none + """ + self.do_reset() + + + @Slot() + def do_send(self): + """ + slot for sending blood prime data + :return: none + """ + self.td_interface.td_blood_prime_progress( + self.slTargetVolume.value(), + self.slDeliveredVolume.value() + ) + + + @Slot() + def do_reset(self): + self.slTargetVolume .setValue(0) + self.slDeliveredVolume .setValue(0)