""" The TD Pressures 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.ui.common import Ranges # hd Simulator from leahi_dialin.ui.td_messaging import TD_Messaging class Loader(DynamicLoader): """ The TD Pressures ui loader """ def __init__(self): self.td_interface = TD_Messaging() super().__init__(os.path.dirname(__file__)) def _init_loader(self): """ finds and creates widgets :return: none """ self.lblArterialTitle = self.find_widget(QtWidgets.QLabel ,'lblArterialTitle') self.lblVenousTitle = self.find_widget(QtWidgets.QLabel ,'lblVenousTitle') self.lblTMPTitle = self.find_widget(QtWidgets.QLabel ,'lblTMPTitle') self.lblArterialLimitLow = self.find_widget(QtWidgets.QLabel ,'lblArterialLimitLow') self.lblArterialLimitHigh = self.find_widget(QtWidgets.QLabel ,'lblArterialLimitHigh') self.lblVenousLimitLow = self.find_widget(QtWidgets.QLabel ,'lblVenousLimitLow') self.lblVenousLimitHigh = self.find_widget(QtWidgets.QLabel ,'lblVenousLimitHigh') self.lblTMPLimitLow = self.find_widget(QtWidgets.QLabel ,'lblTMPLimitLow') self.lblTMPLimitHigh = self.find_widget(QtWidgets.QLabel ,'lblTMPLimitHigh') self.spnArterialLimitLow = self.find_widget(QtWidgets.QSpinBox ,'spnArterialLimitLow') self.spnArterialLimitHigh = self.find_widget(QtWidgets.QSpinBox ,'spnArterialLimitHigh') self.spnVenousLimitLow = self.find_widget(QtWidgets.QSpinBox ,'spnVenousLimitLow') self.spnVenousLimitHigh = self.find_widget(QtWidgets.QSpinBox ,'spnVenousLimitHigh') self.spnTMPLimitLow = self.find_widget(QtWidgets.QSpinBox ,'spnTMPLimitLow') self.spnTMPLimitHigh = self.find_widget(QtWidgets.QSpinBox ,'spnTMPLimitHigh') self.sldArterialValue = self.find_widget(QtWidgets.QSlider ,'sldArterialValue') self.sldArterialValueLong = self.find_widget(QtWidgets.QSlider ,'sldArterialValueLong') self.sldVenousValue = self.find_widget(QtWidgets.QSlider ,'sldVenousValue') self.sldVenousValueLong = self.find_widget(QtWidgets.QSlider ,'sldVenousValueLong') self.sldTMPValue = self.find_widget(QtWidgets.QSlider ,'sldTMPValue') self.spnLimitState = self.find_widget(QtWidgets.QSpinBox ,'spnLimitState') def _init_widgets(self): """ initializes the widgets' properties :return: none """ self.lblArterialTitle.setText( f"{self.lblArterialTitle.text()} [{Ranges.ARTERIAL_PRESSURE_MINIMUM},{Ranges.ARTERIAL_PRESSURE_MAXIMUM}]" ) self.lblVenousTitle.setText( f"{self.lblVenousTitle.text()} [{Ranges.VENOUS_PRESSURE_MINIMUM},{Ranges.VENOUS_PRESSURE_MAXIMUM}]" ) self.lblTMPTitle.setText( f"{self.lblTMPTitle.text()} [{Ranges.TMP_PRESSURE_MINIMUM},{Ranges.TMP_PRESSURE_MAXIMUM}]" ) self.lblArterialLimitLow.setText(f"{Ranges.ARTERIAL_PRESSURE_LOW_MIN}\n{Ranges.ARTERIAL_PRESSURE_LOW_MAX}") self.lblArterialLimitHigh.setText(f"{Ranges.ARTERIAL_PRESSURE_HIGH_MIN}\n{Ranges.ARTERIAL_PRESSURE_HIGH_MAX}") self.lblVenousLimitLow.setText(f"{Ranges.VENOUS_PRESSURE_LOW_MIN}\n{Ranges.VENOUS_PRESSURE_LOW_MAX}") self.lblVenousLimitHigh.setText(f"{Ranges.VENOUS_PRESSURE_HIGH_MIN}\n{Ranges.VENOUS_PRESSURE_HIGH_MAX}") self.lblTMPLimitLow.setText(f"{Ranges.TMP_PRESSURE_LOW_MIN}\n{Ranges.TMP_PRESSURE_LOW_MAX}") self.lblTMPLimitHigh.setText(f"{Ranges.TMP_PRESSURE_HIGH_MIN}\n{Ranges.TMP_PRESSURE_HIGH_MAX}") self.sldArterialValue.setMinimum(Ranges.ARTERIAL_PRESSURE_MINIMUM) self.sldArterialValue.setMaximum(Ranges.ARTERIAL_PRESSURE_MAXIMUM) self.sldArterialValue.setValue(0) self.sldArterialValueLong.setMinimum(Ranges.ARTERIAL_PRESSURE_MINIMUM) self.sldArterialValueLong.setMaximum(Ranges.ARTERIAL_PRESSURE_MAXIMUM) self.sldArterialValueLong.setValue(0) self.sldVenousValue.setMinimum(Ranges.VENOUS_PRESSURE_MINIMUM) self.sldVenousValue.setMaximum(Ranges.VENOUS_PRESSURE_MAXIMUM) self.sldVenousValue.setValue(0) self.sldVenousValueLong.setMinimum(Ranges.VENOUS_PRESSURE_MINIMUM) self.sldVenousValueLong.setMaximum(Ranges.VENOUS_PRESSURE_MAXIMUM) self.sldVenousValueLong.setValue(0) self.sldTMPValue.setMinimum(Ranges.TMP_PRESSURE_MINIMUM) self.sldTMPValue.setMaximum(Ranges.TMP_PRESSURE_MAXIMUM) self.sldTMPValue.setValue(0) self.spnArterialLimitLow.setMinimum(Ranges.ARTERIAL_PRESSURE_LOW_MIN) self.spnArterialLimitLow.setMaximum(Ranges.ARTERIAL_PRESSURE_LOW_MAX) self.spnArterialLimitLow.setValue(Ranges.ARTERIAL_PRESSURE_LOW_DEF) self.spnArterialLimitHigh.setMinimum(Ranges.ARTERIAL_PRESSURE_HIGH_MIN) self.spnArterialLimitHigh.setMaximum(Ranges.ARTERIAL_PRESSURE_HIGH_MAX) self.spnArterialLimitHigh.setValue(Ranges.ARTERIAL_PRESSURE_HIGH_DEF) self.spnVenousLimitLow.setMinimum(Ranges.VENOUS_PRESSURE_LOW_MIN) self.spnVenousLimitLow.setMaximum(Ranges.VENOUS_PRESSURE_LOW_MAX) self.spnVenousLimitLow.setValue(Ranges.VENOUS_PRESSURE_LOW_DEF) self.spnVenousLimitHigh.setMinimum(Ranges.VENOUS_PRESSURE_HIGH_MIN) self.spnVenousLimitHigh.setMaximum(Ranges.VENOUS_PRESSURE_HIGH_MAX) self.spnVenousLimitHigh.setValue(Ranges.VENOUS_PRESSURE_HIGH_DEF) self.spnTMPLimitLow.setMinimum(Ranges.TMP_PRESSURE_LOW_MIN) self.spnTMPLimitLow.setMaximum(Ranges.TMP_PRESSURE_LOW_MAX) self.spnTMPLimitLow.setValue(Ranges.TMP_PRESSURE_LOW_DEF) self.spnTMPLimitHigh.setMinimum(Ranges.TMP_PRESSURE_HIGH_MIN) self.spnTMPLimitHigh.setMaximum(Ranges.TMP_PRESSURE_HIGH_MAX) self.spnTMPLimitHigh.setValue(Ranges.TMP_PRESSURE_HIGH_DEF) self.spnLimitState.setValue(0) def _init_connections(self): """ initializes the widgets connections :return: none """ # sending the CANBus message when slider value changed self.sldArterialValue .valueChanged.connect(self.do_pressures_data) self.sldArterialValueLong .valueChanged.connect(self.do_pressures_data) self.sldVenousValue .valueChanged.connect(self.do_pressures_data) self.sldVenousValueLong .valueChanged.connect(self.do_pressures_data) self.sldTMPValue .valueChanged.connect(self.do_pressures_data) self.spnArterialLimitLow .valueChanged.connect(self.do_pressures_data) self.spnArterialLimitHigh .valueChanged.connect(self.do_pressures_data) self.spnVenousLimitLow .valueChanged.connect(self.do_pressures_data) self.spnVenousLimitHigh .valueChanged.connect(self.do_pressures_data) self.spnTMPLimitLow .valueChanged.connect(self.do_pressures_data) self.spnTMPLimitHigh .valueChanged.connect(self.do_pressures_data) self.spnLimitState .valueChanged.connect(self.do_pressures_data) @Slot() def do_pressures_data(self): """ sends the pressures values message with given value on the screen :return: none """ H2_arterial_pressure = self.sldArterialValue .value() H14_venous_pressure = self.sldVenousValue .value() limit_state = self.spnLimitState .value() H2_arterial_min = self.spnArterialLimitLow .value() H2_arterial_max = self.spnArterialLimitHigh .value() H14_venous_min = self.spnVenousLimitLow .value() H14_venous_max = self.spnVenousLimitHigh .value() H2_arterial_long = self.sldArterialValueLong .value() H14_venous_long = self.sldVenousValueLong .value() tmp_pressure = self.sldTMPValue .value() tmp_min = self.spnTMPLimitLow .value() tmp_max = self.spnTMPLimitHigh .value() self.td_interface.td_pressure( H2_arterial_pressure , H14_venous_pressure , limit_state , H2_arterial_min , H2_arterial_max , H14_venous_min , H14_venous_max , H2_arterial_long , H14_venous_long , tmp_pressure , tmp_min , tmp_max )