Index: simulator/plugins/HDOpMode/interface.ui =================================================================== diff -u --- simulator/plugins/HDOpMode/interface.ui (revision 0) +++ simulator/plugins/HDOpMode/interface.ui (revision db6abd41ec9e5a31e858ac8a286cb59520a93ff2) @@ -0,0 +1,274 @@ + + + ui_interface + + + + 0 + 0 + 340 + 271 + + + + HD Op Mode + + + + + + + 10 + + + + color: rgb(238, 238, 236); +background-color: rgb(52, 105, 2); + + + HD Op Mode + + + Qt::AlignCenter + + + + + + + reset + + + + + + + + + + 320 + 215 + + + + + 8 + 50 + false + + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::NoEditTriggers + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + true + + + false + + + 9 + + + 2 + + + true + + + 85 + + + true + + + true + + + 18 + + + 21 + + + + 0 + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + + + HD OP Mode + + + + + Description + + + + + MODE_FAUL + + + + + fault mode + + + + + MODE_SERV + + + + + Service mode + + + + + MODE_INIT + + + + + Initialization & POST mode + + + + + MODE_STAN + + + + + Standby mode + + + + + MODE_TPAR + + + + + Treatment Parameters (Validation) mode + + + + + MODE_PRET + + + + + Pre-Treatment mode + + + + + MODE_TREA + + + + + Treatment mode + + + + + MODE_POST + + + + + Post-Treatment mode + + + + + MODE_NLEG + + + + + illegale mode transition + + + + + + + + + + Qt::Vertical + + + + 20 + 3 + + + + + + + + + Index: simulator/plugins/HDOpMode/loader.py =================================================================== diff -u --- simulator/plugins/HDOpMode/loader.py (revision 0) +++ simulator/plugins/HDOpMode/loader.py (revision db6abd41ec9e5a31e858ac8a286cb59520a93ff2) @@ -0,0 +1,62 @@ +""" + The HD Op Mode ui loader +""" +# Python +import os +# Qt +from PySide2 import QtWidgets +from PySide2.QtCore import Slot +# parent +from simulator.dynamicloader import DynamicLoader +# hd Simulator +from dialin.ui.hd_simulator import HDSimulator, TXStates +# plugin specific +from dialin.common.hd_defs import HDDefs + + +class Loader(DynamicLoader): + """ + The HD Op Mode ui loader + """ + tbReset: QtWidgets.QToolButton + tblOpMode: QtWidgets.QTableWidget + + def __init__(self, hd_simulator: HDSimulator): + super().__init__(os.path.dirname(__file__), hd_simulator) + print(" ---------- ", self.hd_simulator) + + def _init_loader(self): + """ + finds and creates widgets + :return: none + """ + self.tbReset = self.find_tool_button('tbReset') + + self.tblOpMode = self.find_table_widget('tblOpMode') + + def _init_connections(self): + """ + initializes the widgets connections + :return: none + """ + self.tbReset.clicked.connect(self._init_widgets) + self.tblOpMode.cellClicked.connect(self.do_treatment_states) + + @Slot() + def _init_widgets(self): + """ + initializes the widgets' properties + :return: none + """ + self.tblOpMode.setCurrentCell(HDDefs.MODE_INIT.value, 0) + + @Slot() + def do_treatment_states(self): + """ + the slot for state change + :return: none + """ + op_mode = int(self.tblOpMode.verticalHeaderItem(self.tblOpMode.currentRow()).text()) + self.hd_simulator.cmd_send_hd_operation_mode( + op_mode + ) Index: simulator/plugins/__pretreatmentstates/interface.ui =================================================================== diff -u --- simulator/plugins/__pretreatmentstates/interface.ui (revision 0) +++ simulator/plugins/__pretreatmentstates/interface.ui (revision db6abd41ec9e5a31e858ac8a286cb59520a93ff2) @@ -0,0 +1,525 @@ + + + ui_interface + + + + 0 + 0 + 576 + 690 + + + + &Pre-Treatment/Pre-Treatment &States + + + + + + + 10 + + + + color: rgb(238, 238, 236); +background-color: rgb(252, 175, 62); + + + Pre-Treatment States + + + Qt::AlignCenter + + + + + + + reset + + + + + + + + + + 275 + 130 + + + + + 8 + + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::NoEditTriggers + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + false + + + true + + + 260 + + + 21 + + + + Installation States + + + + + + + + + 225 + 100 + + + + + 8 + + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::NoEditTriggers + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + false + + + true + + + 210 + + + 21 + + + + Dry Self-Tests States + + + + + + + + + 0 + 71 + + + + + 8 + + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::NoEditTriggers + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + false + + + true + + + 260 + + + 21 + + + + Prime States + + + + + + + + + 225 + 155 + + + + + 8 + + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::NoEditTriggers + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + false + + + true + + + 210 + + + 21 + + + + Patient Connection States + + + + + + + + + 275 + 100 + + + + + 8 + + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::NoEditTriggers + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + false + + + true + + + 260 + + + 21 + + + + No Cartridge Self-Tests States + + + + + + + + + 0 + 131 + + + + + 8 + + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::NoEditTriggers + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + false + + + true + + + 210 + + + 21 + + + + 0 + + + + + 1 + + + + + Water Sample States + + + + + SAMPLE_WATER_SETUP_STATE + + + + + SAMPLE_WATER_STATE + + + + + + + + + 295 + 200 + + + + + 8 + 50 + false + + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::NoEditTriggers + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + true + + + false + + + true + + + 540 + + + true + + + 18 + + + 21 + + + + 0 + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + Pre-Treatment States (subMode) + + + + + HD_PRE_TREATMENT_START_STATE + + + + + HD_PRE_TREATMENT_WATER_SAMPLE_STATE + + + + + HD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE + + + + + HD_PRE_TREATMENT_CART_INSTALL_STATE + + + + + HD_PRE_TREATMENT_SELF_TEST_DRY_STATE + + + + + HD_PRE_TREATMENT_PRIME_STATE + + + + + HD_PRE_TREATMENT_RECIRCULATE_STATE + + + + + HD_PRE_TREATMENT_PATIENT_CONNECTION_STATE + + + + + + + + + + Qt::Vertical + + + + 20 + 3 + + + + + + + + + Index: simulator/plugins/__pretreatmentstates/loader.py =================================================================== diff -u --- simulator/plugins/__pretreatmentstates/loader.py (revision 0) +++ simulator/plugins/__pretreatmentstates/loader.py (revision db6abd41ec9e5a31e858ac8a286cb59520a93ff2) @@ -0,0 +1,106 @@ +""" + The Ultrafiltration ui loader +""" +# Python +import os +# Qt +from PySide2 import QtWidgets +from PySide2.QtCore import Slot +# parent +from simulator.dynamicloader import DynamicLoader +# hd Simulator +from dialin.ui.hd_simulator import HDSimulator, TXStates +# plugin specific +# -- none -- + + +class Loader(DynamicLoader): + """ + The Ultrafiltration ui loader + """ + tbReset: QtWidgets.QToolButton + + tblSubMode: QtWidgets.QTableWidget + tblWaterSampleStates: QtWidgets.QTableWidget + tblNoCartridgeSelfTestStates: QtWidgets.QTableWidget + tblInstallationStates: QtWidgets.QTableWidget + tblDrySelfTestStates: QtWidgets.QTableWidget + tblPrimeStates: QtWidgets.QTableWidget + tblPatientConnectionStates: QtWidgets.QTableWidget + + def __init__(self, hd_simulator: HDSimulator): + super().__init__(os.path.dirname(__file__), hd_simulator) + print(" ---------- ", self.hd_simulator) + + def _init_loader(self): + """ + finds and creates widgets + :return: none + """ + self.tbReset = self.find_tool_button('tbReset') + + self.tblSubMode = self.find_table_widget('tblSubMode') + self.tblWaterSampleStates = self.find_table_widget('tblWaterSampleStates') + self.tblNoCartridgeSelfTestStates = self.find_table_widget('tblNoCartridgeSelfTestStates') + self.tblInstallationStates = self.find_table_widget('tblInstallationStates') + self.tblDrySelfTestStates = self.find_table_widget('tblDrySelfTestStates') + self.tblPrimeStates = self.find_table_widget('tblPrimeStates') + self.tblPatientConnectionStates = self.find_table_widget('tblPatientConnectionStates') + + def _init_connections(self): + """ + initializes the widgets connections + :return: none + """ + self.tbReset.clicked.connect(self._init_widgets) + + self.tblSubMode.cellClicked.connect(self.do_treatment_states) + self.tblWaterSampleStates.cellClicked.connect(self.do_treatment_states) + self.tblNoCartridgeSelfTestStates.cellClicked.connect(self.do_treatment_states) + self.tblInstallationStates.cellClicked.connect(self.do_treatment_states) + self.tblDrySelfTestStates.cellClicked.connect(self.do_treatment_states) + self.tblPrimeStates.cellClicked.connect(self.do_treatment_states) + self.tblPatientConnectionStates.cellClicked.connect(self.do_treatment_states) + # apply/send the initial states + # self.do_treatment_states() + + @Slot() + def _init_widgets(self): + """ + initializes the widgets' properties + :return: none + """ + self.tblSubMode.setCurrentCell(TXStates.TREATMENT_START_STATE, 0) + self.tblWaterSampleStates.setCurrentCell(TXStates.UF_OFF_STATE, 0) + self.tblNoCartridgeSelfTestStates.setCurrentCell(TXStates.SALINE_BOLUS_STATE_IDLE, 0) + self.tblInstallationStates.setCurrentCell(TXStates.HEPARIN_STATE_OFF, 0) + self.tblDrySelfTestStates.setCurrentCell(TXStates.RINSEBACK_STOP_INIT_STATE, 0) + self.tblPrimeStates.setCurrentCell(TXStates.TREATMENT_RECIRC_RECIRC_STATE, 0) + self.tblPatientConnectionStates.setCurrentCell(TXStates.BLOOD_PRIME_RAMP_STATE, 0) + + @Slot() + def do_treatment_states(self): + """ + the slot for saline bolus state change + :return: none + """ + sub_mode = int(self.tblSubMode.verticalHeaderItem(self.tblSubMode.currentRow()).text()) + uf_state = int(self.tblUFStates.verticalHeaderItem(self.tblUFStates.currentRow()).text()) + saline = int(self.tblSalineStates.verticalHeaderItem(self.tblSalineStates.currentRow()).text()) + heparin = int(self.tblHeparinStates.verticalHeaderItem(self.tblHeparinStates.currentRow()).text()) + rinseback = int(self.tblRinsebackStates.verticalHeaderItem(self.tblRinsebackStates.currentRow()).text()) + recirculate = int(self.tblRecirculateStates.verticalHeaderItem(self.tblRecirculateStates.currentRow()).text()) + blood_prime = int(self.tblBloodPrimeStates.verticalHeaderItem(self.tblBloodPrimeStates.currentRow()).text()) + treatment_end = int(self.tblTreatmentEndStates.verticalHeaderItem(self.tblTreatmentEndStates.currentRow()).text()) + treatment_stop = int(self.tblTreatmentStopStates.verticalHeaderItem(self.tblTreatmentStopStates.currentRow()).text()) + self.hd_simulator.cmd_set_treatment_states_data( + sub_mode, + uf_state, + saline, + heparin, + rinseback, + recirculate, + blood_prime, + treatment_end, + treatment_stop + ) Index: simulator/plugins/treatmentranges/loader.py =================================================================== diff -u -r341770d5391499aea02f9a840ac96e6562215699 -rdb6abd41ec9e5a31e858ac8a286cb59520a93ff2 --- simulator/plugins/treatmentranges/loader.py (.../loader.py) (revision 341770d5391499aea02f9a840ac96e6562215699) +++ simulator/plugins/treatmentranges/loader.py (.../loader.py) (revision db6abd41ec9e5a31e858ac8a286cb59520a93ff2) @@ -54,7 +54,7 @@ :return: none """ self.timer.timeout.connect(self.do_ranges_data) - self.timer.timeout.connect(self.do_duration_data) + # self.timer.timeout.connect(self.do_duration_data) self.sldDurationValue.valueChanged.connect(self.do_duration_data) def _init_widgets(self):