Index: shared/scripts/names.py =================================================================== diff -u -r2dc140932c71c9b21e2c60410ec0ca58e04d9771 -r9304d64222c02f0dc812ff86dc945c8deba46440 --- shared/scripts/names.py (.../names.py) (revision 2dc140932c71c9b21e2c60410ec0ca58e04d9771) +++ shared/scripts/names.py (.../names.py) (revision 9304d64222c02f0dc812ff86dc945c8deba46440) @@ -16,6 +16,71 @@ DIALIN_LINK = True AUT_NAME = "denaliSquish" # Squish +AlarmPriory = [ 0, 1, 2, 3, 4 ] # 4 is out of range check +AlarmTextMap = [ + "", + "Software Error.", + "Indication for when no alarms is a possible situation.", + "FPGA POST failure.", + "Watchdog POST failure.", + "UI communication POST failure.", + "Blood pump failed motor controller current check.", + "Blood pump failed motor off check. \nMeasured speed while commanded off.", + "Blood pump failed motor controller direction check.", + "Blood pump failed rotor speed check.", + "Dialysis inlet pump failed motor controller current check.", + "Dialysis inlet pump failed motor off check. \nMeasured speed while commanded off.", + "Dialysis inlet pump failed motor controller direction check.", + "Dialysis inlet pump failed rotor speed check.", + "Dialysis outlet pump failed motor controller current check.", + "Dialysis outlet pump failed motor off check. \nMeasured speed while commanded off.", + "Dialysis outlet pump failed motor controller direction check.", + "Dialysis outlet pump failed rotor speed check.", + "Watchdog expired error.", + "Real-time clock communication error.", + "Real-time clock configuration error.", + "Dialysate generator communication timeout.", + "User interface communication timeout.", + "Too many bad CRCs detected on received system messages.", + "Treatment stopped by user action - pressed stop button.", + "Blood sitting too long warning (>4 min).", + "Blood sitting too long alarm (>5 min).", + "Blood sitting too long alarm (>10 min).", + "System message needing acknowledgment was not acknowledged.", + "Blood pump occlusion detected.", + "Dialysate inlet pump occlusion detected.", + "Dialysate outlet pump occlusion detected.", + "Arterial pressure too low during treatment.", + "Arterial pressure too high during treatment.", + "Venous pressure too low during treatment.", + "Venous pressure too high during treatment.", + "Ultrafiltration rate is too high error during treatment.", + "Ultrafiltration volume accuracy error during treatment.", + "RTC battery low.", + "RTC or MCU timer inaccurate.", + "RTC or RAM operations failure (read or write).", + "EEPRON operations (read, write, erase) failure.", + "Manufacturing record CRC failure.", + "Service record CRC failure.", + "Calibration record CRC failure.", + "HW usage data failure.", + "Last disinfection date CRC error.", + "Pressure at outlet of RO pump is out of range.", + "DG temperature sensors fault.", + "DG temperature sensors values are inconsistent.", + "HD communication timeout.", + "FPGA not accepting commanded valve states.", + "Blood pump failed flow vs. motor speed check. \nMismatch with flow rate and rate implied by motor speed.", + "Dialysate inlet pump failed flow vs. motor speed check. \nMismatch with flow rate and rate implied by motor speed.", + "Dialysate outlet pump failed flow vs. motor speed check. \nMismatch with flow rate and rate implied by motor speed.", + "Blood pump failed motor speed check. Measured vs. commanded.", + "Dialysate inlet pump failed motor speed check. Measured vs. commanded.", + "Dialysate outlet pump failed motor speed check. Measured vs. commanded.", + "Blood pump rotor speed too high.", + "Inlet water conductivity too low.", + "ALARM_ID_UNDEFINED" +] + # Top Parents o_QQuickView = { "type": "QQuickView"} o_Overlay = {"container": o_QQuickView, "type": "Overlay" } @@ -230,6 +295,16 @@ o_settingsHome_TreatmentStatesData_UFState = {"container": o_settingsHome, "objectName": "_TreatmentStatesData1", "type": "Text"} o_settingsHome_TreatmentStatesData_SalineState = {"container": o_settingsHome, "objectName": "_TreatmentStatesData2", "type": "Text"} +# Treatment Time Section +o_treatmentStart_treatmentTime_section = {"container": o_treatmentStart_TreatmentStart , "id": "_treatmentTime", "type": "Rectangle" } +o_treatmentStart_treatmentTime_arrowImage = {"container": o_treatmentStart_treatmentTime_section , "id": "_arrowImage", "source": "qrc:/images/iArrow", "type": "Image"} +o_treatmentStart_treatmentTime_second = {"container": o_treatmentStart_treatmentTime_section , "objectName": "_TimeText_second", "type": "Text" } +o_treatmentStart_treatmentTime_notification = {"container": o_treatmentStart_treatmentTime_section , "objectName": "NotificationBar", "type": "NotificationBarSmall"} + +# Ultrafiltration Section +o_treatmentStart_ultrafiltration_section = {"container": o_treatmentStart_TreatmentStart , "id": "_ultrafiltrationTouchArea", "type": "TreatmentUltrafiltration"} +o_treatmentStart_ultrafiltration_notification = {"container": o_treatmentStart_ultrafiltration_section, "objectName": "NotificationBar" , "type": "NotificationBarSmall" } + # PressureOcclusionData o_settingsHome_PressureOcclusionData_ArterialPressure = {"container": o_settingsHome, "objectName": "_PressureOcclusionData0", "type": "Text"} o_settingsHome_PressureOcclusionData_VenousPressure = {"container": o_settingsHome, "objectName": "_PressureOcclusionData1", "type": "Text"} @@ -247,82 +322,18 @@ o_settingsHome_OutletFlowData_PWMDtCycle = {"container": o_settingsHome, "objectName": "_OutletFlowData6", "type": "Text"} # Saline Bolus -o_treatmentStart_SalineSection = {"container": o_treatmentStart_TreatmentStart, "id": "_SalineTouchArea" , "type": "TreatmentFluid" } -o_treatmentStart_SalineCumulative = {"container": o_treatmentStart_TreatmentStart, "id": "_cumulativeValue" , "type": "Text" } -o_treatmentStart_SalineDelivered = {"container": o_treatmentStart_TreatmentStart, "id": "_fluidValue" , "type": "Text" } -o_treatmentStart_SalineTarget = {"container": o_treatmentStart_TreatmentStart, "id": "_fluidTarget" , "type": "Text" } -o_treatmentStart_SalineStart = {"container": o_treatmentStart_TreatmentStart, "id": "_startFluidButton", "type": "TouchRect" } +o_treatmentStart_SalineSection = {"container": o_treatmentStart_TreatmentStart, "id": "_SalineTouchArea" , "type": "TreatmentFluid" } +o_treatmentStart_SalineCumulative = {"container": o_treatmentStart_SalineSection , "id": "_cumulativeValue" , "type": "Text" } +o_treatmentStart_SalineDelivered = {"container": o_treatmentStart_SalineSection , "id": "_fluidValue" , "type": "Text" } +o_treatmentStart_SalineTarget = {"container": o_treatmentStart_SalineSection , "id": "_fluidTarget" , "type": "Text" } +o_treatmentStart_SalineStart = {"container": o_treatmentStart_SalineSection , "id": "_startFluidButton", "type": "TouchRect" } +o_treatmentStart_SalineNotification = {"container": o_treatmentStart_SalineSection , "objectName": "NotificationBar", "type": "NotificationBarSmall"} + # Setting CANBusFaultCountText o_settingsHome_canbusFaultCount = {"container": o_settingsHome, "id": "_canbusFaultCountText", "type": "Text" } # Alarm System o_NotificationDialog_Description_Text = {"container": o_Overlay, "objectName": "_NotificationDialog_Description", "type": "Text"} o_NotificationDialog_OKAY = {"container": o_Overlay, "text": "OKAY", "type": "Text"} -AlarmPriory = [ 0, 1, 2, 3, 4 ] # 4 is out of range check - -AlarmTextMap = [ - "", - "Software Error.", - "Indication for when no alarms is a possible situation.", - "FPGA POST failure.", - "Watchdog POST failure.", - "UI communication POST failure.", - "Blood pump failed motor controller current check.", - "Blood pump failed motor off check. \nMeasured speed while commanded off.", - "Blood pump failed motor controller direction check.", - "Blood pump failed rotor speed check.", - "Dialysis inlet pump failed motor controller current check.", - "Dialysis inlet pump failed motor off check. \nMeasured speed while commanded off.", - "Dialysis inlet pump failed motor controller direction check.", - "Dialysis inlet pump failed rotor speed check.", - "Dialysis outlet pump failed motor controller current check.", - "Dialysis outlet pump failed motor off check. \nMeasured speed while commanded off.", - "Dialysis outlet pump failed motor controller direction check.", - "Dialysis outlet pump failed rotor speed check.", - "Watchdog expired error.", - "Real-time clock communication error.", - "Real-time clock configuration error.", - "Dialysate generator communication timeout.", - "User interface communication timeout.", - "Too many bad CRCs detected on received system messages.", - "Treatment stopped by user action - pressed stop button.", - "Blood sitting too long warning (>4 min).", - "Blood sitting too long alarm (>5 min).", - "Blood sitting too long alarm (>10 min).", - "System message needing acknowledgment was not acknowledged.", - "Blood pump occlusion detected.", - "Dialysate inlet pump occlusion detected.", - "Dialysate outlet pump occlusion detected.", - "Arterial pressure too low during treatment.", - "Arterial pressure too high during treatment.", - "Venous pressure too low during treatment.", - "Venous pressure too high during treatment.", - "Ultrafiltration rate is too high error during treatment.", - "Ultrafiltration volume accuracy error during treatment.", - "RTC battery low.", - "RTC or MCU timer inaccurate.", - "RTC or RAM operations failure (read or write).", - "EEPRON operations (read, write, erase) failure.", - "Manufacturing record CRC failure.", - "Service record CRC failure.", - "Calibration record CRC failure.", - "HW usage data failure.", - "Last disinfection date CRC error.", - "Pressure at outlet of RO pump is out of range.", - "DG temperature sensors fault.", - "DG temperature sensors values are inconsistent.", - "HD communication timeout.", - "FPGA not accepting commanded valve states.", - "Blood pump failed flow vs. motor speed check. \nMismatch with flow rate and rate implied by motor speed.", - "Dialysate inlet pump failed flow vs. motor speed check. \nMismatch with flow rate and rate implied by motor speed.", - "Dialysate outlet pump failed flow vs. motor speed check. \nMismatch with flow rate and rate implied by motor speed.", - "Blood pump failed motor speed check. Measured vs. commanded.", - "Dialysate inlet pump failed motor speed check. Measured vs. commanded.", - "Dialysate outlet pump failed motor speed check. Measured vs. commanded.", - "Blood pump rotor speed too high.", - "Inlet water conductivity too low.", - "ALARM_ID_UNDEFINED" -] - Index: tst_TreatmentStatesData/test.py =================================================================== diff -u -r2dc140932c71c9b21e2c60410ec0ca58e04d9771 -r9304d64222c02f0dc812ff86dc945c8deba46440 --- tst_TreatmentStatesData/test.py (.../test.py) (revision 2dc140932c71c9b21e2c60410ec0ca58e04d9771) +++ tst_TreatmentStatesData/test.py (.../test.py) (revision 9304d64222c02f0dc812ff86dc945c8deba46440) @@ -21,18 +21,19 @@ class txStates: # Saline states - SALINE_STOP_STATE = 0 - SALINE_START_STATE = 1 + SALINE_STOP_STATE = 0 + SALINE_START_STATE = 1 + SALINE_DISABLE_STATE = 2 # UF states # UI only cares about the actual state and _NOT could be any other state - UF_PAUSED_STATE_NOT = 0 - UF_PAUSED_STATE = 1 + UF_PAUSED_STATE_NOT = 0 + UF_PAUSED_STATE = 1 # Sub Mode # UI only cares about the actual state and _NOT could be any other state - TREATMENT_STOP_STATE_NOT = 0 - TREATMENT_STOP_STATE = 2 + TREATMENT_DIALYSIS_STATE_NOT = 0 + TREATMENT_DIALYSIS_STATE = 1 def gotoScreenNtest_Contains_TreatmentStatesData(): @@ -41,60 +42,114 @@ def test_values(vSubMode, vUFState, vSalineState): - #test.compare(str(waitForObjectExists(names.o_settingsHome_TreatmentStatesData_SubMode ).text), "{:.0f}".format(vSubMode )) - #test.compare(str(waitForObjectExists(names.o_settingsHome_TreatmentStatesData_UFState ).text), "{:.0f}".format(vUFState )) - #test.compare(str(waitForObjectExists(names.o_settingsHome_TreatmentStatesData_SalineState ).text), "{:.0f}".format(vSalineState)) - pass + # these test cases are not always dependending to each other + if (vSubMode == txStates.TREATMENT_DIALYSIS_STATE_NOT): + test.compare( waitForObjectExists(names.o_treatmentStart_treatmentTime_section ).visible, True ) + test.compare( waitForObjectExists(names.o_treatmentStart_treatmentTime_arrowImage ).visible, True ) + test.compare( waitForObjectExists(names.o_treatmentStart_treatmentTime_second ).visible, True ) + test.compare( findObject (names.o_treatmentStart_treatmentTime_notification ).visible, False) + + if (vSubMode == txStates.TREATMENT_DIALYSIS_STATE ): + test.compare( waitForObjectExists(names.o_treatmentStart_treatmentTime_section ).visible, True ) + test.compare( findObject (names.o_treatmentStart_treatmentTime_arrowImage ).visible, False) + test.compare( findObject (names.o_treatmentStart_treatmentTime_second ).visible, False) + test.compare( waitForObjectExists(names.o_treatmentStart_treatmentTime_notification ).visible, True ) + test.compare(str(waitForObjectExists(names.o_treatmentStart_treatmentTime_notification ).text ), "Treatment Paused") + + if (vUFState == txStates.UF_PAUSED_STATE_NOT ): + test.compare( waitForObjectExists(names.o_treatmentStart_ultrafiltration_notification ).visible , False) + test.compare(str(waitForObjectExists(names.o_treatmentStart_ultrafiltration_notification ).text ) , "" ) + + if (vUFState == txStates.UF_PAUSED_STATE ): + test.compare( waitForObjectExists(names.o_treatmentStart_ultrafiltration_notification ).visible , True) + test.compare(str(waitForObjectExists(names.o_treatmentStart_ultrafiltration_notification ).text ) , "Ultrafiltration Paused" ) + + if (vSalineState == txStates.SALINE_DISABLE_STATE ): + test.compare( waitForObjectExists(names.o_treatmentStart_SalineSection ).isTouchable, False) + test.compare(str(waitForObjectExists(names.o_treatmentStart_SalineStart ).text.text), "START BOLUS") + test.compare(str(waitForObjectExists(names.o_treatmentStart_SalineNotification ).text ), "Maximum cumulative saline bolus volume delivered") + test.compare( waitForObjectExists(names.o_treatmentStart_SalineNotification ).visible, True) + print(7) + # in all the other cases it should be enabled + test.compare(waitForObjectExists(names.o_treatmentStart_SalineStart).text.enabled, vSalineState != txStates.SALINE_DISABLE_STATE) + + + if (vSalineState == txStates.SALINE_STOP_STATE ): + test.compare( waitForObjectExists(names.o_treatmentStart_ultrafiltration_section ).isTouchable, True ) + mouseClick ( waitForObject (names.o_treatmentStart_ultrafiltration_section)) + test.compare( findObject (names.o_treatmentAdjustmentUltrafiltrationStart_Screen ).visible , True ) + mouseClick ( waitForObject (names.o_closeButton)) + + if (vSalineState == txStates.SALINE_START_STATE ): + test.compare( waitForObjectExists(names.o_treatmentStart_ultrafiltration_section ).isTouchable, False ) + + def main(): utils.tstStart(__file__) - secPause = 1 + secPause = 0.5 startApplication(names.AUT_NAME) utils.waitForGUI(1) gotoScreenNtest_Contains_TreatmentStatesData() utils.waitForGUI(1) # start - denaliMessages.setTreatmentStatesData(txStates.TREATMENT_STOP_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_STOP_STATE ) # 0 0 0 - test_values (txStates.TREATMENT_STOP_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_STOP_STATE ) # 0 0 0 + denaliMessages.setTreatmentStatesData(txStates.TREATMENT_DIALYSIS_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_STOP_STATE ) # 0 0 0 + test_values (txStates.TREATMENT_DIALYSIS_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_STOP_STATE ) # 0 0 0 utils.waitForGUI(secPause) - denaliMessages.setTreatmentStatesData(txStates.TREATMENT_STOP_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_START_STATE ) # 0 0 1 - test_values (txStates.TREATMENT_STOP_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_START_STATE ) # 0 0 1 + denaliMessages.setTreatmentStatesData(txStates.TREATMENT_DIALYSIS_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_START_STATE ) # 0 0 1 + test_values (txStates.TREATMENT_DIALYSIS_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_START_STATE ) # 0 0 1 utils.waitForGUI(secPause) - denaliMessages.setTreatmentStatesData(txStates.TREATMENT_STOP_STATE_NOT, txStates.UF_PAUSED_STATE , txStates.SALINE_STOP_STATE ) # 0 1 0 - test_values (txStates.TREATMENT_STOP_STATE_NOT, txStates.UF_PAUSED_STATE , txStates.SALINE_STOP_STATE ) # 0 1 0 + denaliMessages.setTreatmentStatesData(txStates.TREATMENT_DIALYSIS_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_DISABLE_STATE) # 0 0 2 + test_values (txStates.TREATMENT_DIALYSIS_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_DISABLE_STATE) # 0 0 2 + utils.waitForGUI(secPause) + + denaliMessages.setTreatmentStatesData(txStates.TREATMENT_DIALYSIS_STATE_NOT, txStates.UF_PAUSED_STATE , txStates.SALINE_STOP_STATE ) # 0 1 0 + test_values (txStates.TREATMENT_DIALYSIS_STATE_NOT, txStates.UF_PAUSED_STATE , txStates.SALINE_STOP_STATE ) # 0 1 0 + utils.waitForGUI(secPause) + + denaliMessages.setTreatmentStatesData(txStates.TREATMENT_DIALYSIS_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_START_STATE ) # 0 1 1 + test_values (txStates.TREATMENT_DIALYSIS_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_START_STATE ) # 0 1 1 + utils.waitForGUI(secPause) + + denaliMessages.setTreatmentStatesData(txStates.TREATMENT_DIALYSIS_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_DISABLE_STATE) # 0 1 2 + test_values (txStates.TREATMENT_DIALYSIS_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_DISABLE_STATE) # 0 1 2 + utils.waitForGUI(secPause) + + denaliMessages.setTreatmentStatesData(txStates.TREATMENT_DIALYSIS_STATE , txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_STOP_STATE ) # 1 0 0 + test_values (txStates.TREATMENT_DIALYSIS_STATE , txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_STOP_STATE ) # 1 0 0 + utils.waitForGUI(secPause) + + denaliMessages.setTreatmentStatesData(txStates.TREATMENT_DIALYSIS_STATE , txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_START_STATE ) # 1 0 1 + test_values (txStates.TREATMENT_DIALYSIS_STATE , txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_START_STATE ) # 1 0 1 + utils.waitForGUI(secPause) + + denaliMessages.setTreatmentStatesData(txStates.TREATMENT_DIALYSIS_STATE , txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_DISABLE_STATE) # 1 0 2 + test_values (txStates.TREATMENT_DIALYSIS_STATE , txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_DISABLE_STATE) # 1 0 2 + utils.waitForGUI(secPause) + + denaliMessages.setTreatmentStatesData(txStates.TREATMENT_DIALYSIS_STATE , txStates.UF_PAUSED_STATE , txStates.SALINE_STOP_STATE ) # 1 1 0 + test_values (txStates.TREATMENT_DIALYSIS_STATE , txStates.UF_PAUSED_STATE , txStates.SALINE_STOP_STATE ) # 1 1 0 + utils.waitForGUI(secPause) + + denaliMessages.setTreatmentStatesData(txStates.TREATMENT_DIALYSIS_STATE , txStates.UF_PAUSED_STATE , txStates.SALINE_START_STATE ) # 1 1 1 + test_values (txStates.TREATMENT_DIALYSIS_STATE , txStates.UF_PAUSED_STATE , txStates.SALINE_START_STATE ) # 1 1 1 + utils.waitForGUI(secPause) + + denaliMessages.setTreatmentStatesData(txStates.TREATMENT_DIALYSIS_STATE , txStates.UF_PAUSED_STATE , txStates.SALINE_DISABLE_STATE) # 1 1 2 + test_values (txStates.TREATMENT_DIALYSIS_STATE , txStates.UF_PAUSED_STATE , txStates.SALINE_DISABLE_STATE) # 1 1 2 + utils.waitForGUI(secPause) + + denaliMessages.setTreatmentStatesData(txStates.TREATMENT_DIALYSIS_STATE , txStates.UF_PAUSED_STATE , txStates.SALINE_DISABLE_STATE) # 1 1 2 + test_values (txStates.TREATMENT_DIALYSIS_STATE , txStates.UF_PAUSED_STATE , txStates.SALINE_DISABLE_STATE) # 1 1 2 + utils.waitForGUI(secPause) + + denaliMessages.setTreatmentStatesData(txStates.TREATMENT_DIALYSIS_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_STOP_STATE ) # 0 0 0 + test_values (txStates.TREATMENT_DIALYSIS_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_STOP_STATE ) # 0 0 0 utils.waitForGUI(secPause) - denaliMessages.setTreatmentStatesData(txStates.TREATMENT_STOP_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_START_STATE ) # 0 1 1 - test_values (txStates.TREATMENT_STOP_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_START_STATE ) # 0 1 1 - utils.waitForGUI(secPause) - - denaliMessages.setTreatmentStatesData(txStates.TREATMENT_STOP_STATE , txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_STOP_STATE ) # 1 0 0 - test_values (txStates.TREATMENT_STOP_STATE , txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_STOP_STATE ) # 1 0 0 - utils.waitForGUI(secPause) - - denaliMessages.setTreatmentStatesData(txStates.TREATMENT_STOP_STATE , txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_START_STATE ) # 1 0 1 - test_values (txStates.TREATMENT_STOP_STATE , txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_START_STATE ) # 1 0 1 - utils.waitForGUI(secPause) - - denaliMessages.setTreatmentStatesData(txStates.TREATMENT_STOP_STATE , txStates.UF_PAUSED_STATE , txStates.SALINE_STOP_STATE ) # 1 1 0 - test_values (txStates.TREATMENT_STOP_STATE , txStates.UF_PAUSED_STATE , txStates.SALINE_STOP_STATE ) # 1 1 0 - utils.waitForGUI(secPause) - - denaliMessages.setTreatmentStatesData(txStates.TREATMENT_STOP_STATE , txStates.UF_PAUSED_STATE , txStates.SALINE_START_STATE ) # 1 1 1 - test_values (txStates.TREATMENT_STOP_STATE , txStates.UF_PAUSED_STATE , txStates.SALINE_START_STATE ) # 1 1 1 - utils.waitForGUI(secPause) - - denaliMessages.setTreatmentStatesData(txStates.TREATMENT_STOP_STATE , txStates.UF_PAUSED_STATE , txStates.SALINE_START_STATE ) # 1 1 1 - test_values (txStates.TREATMENT_STOP_STATE , txStates.UF_PAUSED_STATE , txStates.SALINE_START_STATE ) # 1 1 1 - utils.waitForGUI(secPause) - - denaliMessages.setTreatmentStatesData(txStates.TREATMENT_STOP_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_STOP_STATE ) # 0 0 0 - test_values (txStates.TREATMENT_STOP_STATE_NOT, txStates.UF_PAUSED_STATE_NOT, txStates.SALINE_STOP_STATE ) # 0 0 0 - utils.waitForGUI(secPause) - utils.tstDone()