Index: dialin/__init__.py =================================================================== diff -u -r81a8df626a43e211aa801dc807313952ade66902 -ra505f80795643e531cb0b0120a38a7765cbf7b9c --- dialin/__init__.py (.../__init__.py) (revision 81a8df626a43e211aa801dc807313952ade66902) +++ dialin/__init__.py (.../__init__.py) (revision a505f80795643e531cb0b0120a38a7765cbf7b9c) @@ -5,7 +5,7 @@ try: from importlib import metadata -except ImportError: # for Python < 3.8 +except ImportError: # for Python < 3.8 import importlib_metadata as metadata try: Index: dialin/common/alarm_priorities.py =================================================================== diff -u -r3f12fb75e3d92e3ecbcb86a4b9b284dd0b05e26f -ra505f80795643e531cb0b0120a38a7765cbf7b9c --- dialin/common/alarm_priorities.py (.../alarm_priorities.py) (revision 3f12fb75e3d92e3ecbcb86a4b9b284dd0b05e26f) +++ dialin/common/alarm_priorities.py (.../alarm_priorities.py) (revision a505f80795643e531cb0b0120a38a7765cbf7b9c) @@ -16,6 +16,7 @@ from enum import unique from ..utils.base import DialinEnum + @unique class AlarmPriorities(DialinEnum): ALARM_PRIORITY_NONE = 0 # Indicates not an alarm or no alarms active at this time Index: dialin/common/dg_defs.py =================================================================== diff -u -r9fdaf53a622f2c87cc30080dde9b5e4c42dbef65 -ra505f80795643e531cb0b0120a38a7765cbf7b9c --- dialin/common/dg_defs.py (.../dg_defs.py) (revision 9fdaf53a622f2c87cc30080dde9b5e4c42dbef65) +++ dialin/common/dg_defs.py (.../dg_defs.py) (revision a505f80795643e531cb0b0120a38a7765cbf7b9c) @@ -18,28 +18,28 @@ @unique -class DG_Heat_States(DialinEnum): # although it is a dg state and the file is hd_defs since we don't have dg_defs I put it here. - DG_HEAT_DISINFECT_STATE_START = 0 # Heat disinfect, start mode state - DG_HEAT_DISINFECT_STATE_DRAIN_R1 = 1 # Heat disinfect, drain R1 state - DG_HEAT_DISINFECT_STATE_DRAIN_R2 = 2 # Heat disinfect, drain R2 state - DG_HEAT_DISINFECT_STATE_FLUSH_DRAIN = 3 # Heat disinfect, flush drain state - DG_HEAT_DISINFECT_STATE_FLUSH_CIRCULATION = 4 # Heat disinfect, flush circulation state - DG_HEAT_DISINFECT_STATE_FLUSH_R1_AND_R2 = 5 # Heat disinfect, flush R1 and R2 state - DG_HEAT_DISINFECT_STATE_FLUSH_R2_AND_DRAIN_R1 = 6 # Heat disinfect, flush R2 and drain R1 state - DG_HEAT_DISINFECT_STATE_FLUSH_DRAIN_R2 = 7 # Heat disinfect, flush drain R2 state - DG_HEAT_DISINFECT_STATE_FLUSH_DRAIN_R1 = 8 # Heat disinfect, flush drain R1 state - DG_HEAT_DISINFECT_STATE_FILL_WITH_WATER = 9 # Heat disinfect, fill with water state - DG_HEAT_DISINFECT_STATE_DISINFECT_R1_TO_R2 = 10 # Heat disinfect, disinfect R1 to R2 state - DG_HEAT_DISINFECT_STATE_FILL_R2_WITH_HOT_WATER = 11 # Heat disinfect, fill R2 with hot water state - DG_HEAT_DISINFECT_STATE_DISINFECT_R2_TO_R1 = 12 # Heat disinfect, disinfect R2 to R1 state - DG_HEAT_DISINFECT_STATE_COOL_DOWN_HEATERS = 13 # Heat disinfect, cool down heaters state - DG_HEAT_DISINFECT_STATE_COOL_DOWN_RO_FILTER = 14 # Heat disinfect, cool down RO filter state - DG_HEAT_DISINFECT_STATE_MIX_DRAIN_R1 = 15 # Heat disinfect, mix drain R1 state - DG_HEAT_DISINFECT_STATE_MIX_DRAIN_R2 = 16 # Heat disinfect, mix drain R2 state - DG_HEAT_DISINFECT_STATE_RINSE_R1_TO_R2 = 17 # Heat disinfect, rinse R1 to R2 state - DG_HEAT_DISINFECT_STATE_RINSE_R2_TO_R1_AND_DRAIN_R1 = 18 # Heat disinfect, rinse R2 to R1 and drain R1 state - DG_HEAT_DISINFECT_STATE_RINSE_CIRCULATION = 19 # Heat disinfect, rinse circulation state - DG_HEAT_DISINFECT_STATE_CANCEL_BASIC_PATH = 20 # Heat disinfect, cancel mode basic path state - DG_HEAT_DISINFECT_STATE_CANCEL_WATER_PATH = 21 # Heat disinfect, cancel mode water path state - DG_HEAT_DISINFECT_STATE_COMPLETE = 22 # Heat disinfect, complete state - NUM_OF_DG_HEAT_DISINFECT_STATES = 23 # Number of heat disinfect mode states +class HeatStates(DialinEnum): + DG_HEAT_DISINFECT_STATE_START = 0 # Heat disinfect, start mode state + DG_HEAT_DISINFECT_STATE_DRAIN_R1 = 1 # Heat disinfect, drain R1 state + DG_HEAT_DISINFECT_STATE_DRAIN_R2 = 2 # Heat disinfect, drain R2 state + DG_HEAT_DISINFECT_STATE_FLUSH_DRAIN = 3 # Heat disinfect, flush drain state + DG_HEAT_DISINFECT_STATE_FLUSH_CIRCULATION = 4 # Heat disinfect, flush circulation state + DG_HEAT_DISINFECT_STATE_FLUSH_R1_AND_R2 = 5 # Heat disinfect, flush R1 and R2 state + DG_HEAT_DISINFECT_STATE_FLUSH_R2_AND_DRAIN_R1 = 6 # Heat disinfect, flush R2 and drain R1 state + DG_HEAT_DISINFECT_STATE_FLUSH_DRAIN_R2 = 7 # Heat disinfect, flush drain R2 state + DG_HEAT_DISINFECT_STATE_FLUSH_DRAIN_R1 = 8 # Heat disinfect, flush drain R1 state + DG_HEAT_DISINFECT_STATE_FILL_WITH_WATER = 9 # Heat disinfect, fill with water state + DG_HEAT_DISINFECT_STATE_DISINFECT_R1_TO_R2 = 10 # Heat disinfect, disinfect R1 to R2 state + DG_HEAT_DISINFECT_STATE_FILL_R2_WITH_HOT_WATER = 11 # Heat disinfect, fill R2 with hot water state + DG_HEAT_DISINFECT_STATE_DISINFECT_R2_TO_R1 = 12 # Heat disinfect, disinfect R2 to R1 state + DG_HEAT_DISINFECT_STATE_COOL_DOWN_HEATERS = 13 # Heat disinfect, cool down heaters state + DG_HEAT_DISINFECT_STATE_COOL_DOWN_RO_FILTER = 14 # Heat disinfect, cool down RO filter state + DG_HEAT_DISINFECT_STATE_MIX_DRAIN_R1 = 15 # Heat disinfect, mix drain R1 state + DG_HEAT_DISINFECT_STATE_MIX_DRAIN_R2 = 16 # Heat disinfect, mix drain R2 state + DG_HEAT_DISINFECT_STATE_RINSE_R1_TO_R2 = 17 # Heat disinfect, rinse R1 to R2 state + DG_HEAT_DISINFECT_STATE_RINSE_R2_TO_R1_AND_DRAIN_R1 = 18 # Heat disinfect, rinse R2 to R1 and drain R1 state + DG_HEAT_DISINFECT_STATE_RINSE_CIRCULATION = 19 # Heat disinfect, rinse circulation state + DG_HEAT_DISINFECT_STATE_CANCEL_BASIC_PATH = 20 # Heat disinfect, cancel mode basic path state + DG_HEAT_DISINFECT_STATE_CANCEL_WATER_PATH = 21 # Heat disinfect, cancel mode water path state + DG_HEAT_DISINFECT_STATE_COMPLETE = 22 # Heat disinfect, complete state + NUM_OF_DG_HEAT_DISINFECT_STATES = 23 # Number of heat disinfect mode states Index: dialin/common/hd_defs.py =================================================================== diff -u -r9fdaf53a622f2c87cc30080dde9b5e4c42dbef65 -ra505f80795643e531cb0b0120a38a7765cbf7b9c --- dialin/common/hd_defs.py (.../hd_defs.py) (revision 9fdaf53a622f2c87cc30080dde9b5e4c42dbef65) +++ dialin/common/hd_defs.py (.../hd_defs.py) (revision a505f80795643e531cb0b0120a38a7765cbf7b9c) @@ -16,6 +16,7 @@ from enum import unique from ..utils.base import DialinEnum + @unique class HDOpModes(DialinEnum): MODE_FAUL = 0 # Fault mode @@ -28,6 +29,7 @@ MODE_POST = 7 # Post-Treatment mode NUM_OF_MODES = 8 # Number of HD operation modes + @unique class HDOpSubModes(DialinEnum): SUBMODE_START = 0 @@ -57,6 +59,7 @@ SAMPLE_WATER_SETUP_STATE = 0 SAMPLE_WATER_STATE = 1 + @unique class PreTreatmentConsumableSelfTestStates(DialinEnum): CONSUMABLE_SELF_TESTS_INSTALL = 0 @@ -123,13 +126,13 @@ # Heparin states @unique class HeparinStates(DialinEnum): - HEPARIN_STATE_OFF = 0 # Heparin treatment parameters set to zero or not yet set - HEPARIN_STATE_STOPPED = 1 # Heparin delivery is stopped because treatment paused or not yet started - HEPARIN_STATE_PAUSED = 2 # Heparin delivery is paused by user - HEPARIN_STATE_INITIAL_BOLUS = 3 # Heparin bolus is currently being delivered - HEPARIN_STATE_DISPENSING = 4 # Heparin continuous delivery is in progress - HEPARIN_STATE_COMPLETED = 5 # Heparin delivery is completed - HEPARIN_STATE_EMPTY = 6 # Heparin syringe is empty + HEPARIN_STATE_OFF = 0 # Heparin treatment parameters set to zero or not yet set + HEPARIN_STATE_STOPPED = 1 # Heparin delivery is stopped because treatment paused or not yet started + HEPARIN_STATE_PAUSED = 2 # Heparin delivery is paused by user + HEPARIN_STATE_INITIAL_BOLUS = 3 # Heparin bolus is currently being delivered + HEPARIN_STATE_DISPENSING = 4 # Heparin continuous delivery is in progress + HEPARIN_STATE_COMPLETED = 5 # Heparin delivery is completed + HEPARIN_STATE_EMPTY = 6 # Heparin syringe is empty # Syringe pump states @@ -164,110 +167,109 @@ @unique -class HD_Pre_Treatment_Mode_States(DialinEnum): - HD_PRE_TREATMENT_START_STATE = 0 # Start pre-treatment mode state - HD_PRE_TREATMENT_WATER_SAMPLE_STATE = 1 # Water sample state - HD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE = 2 # Self tests with no cartridge state - HD_PRE_TREATMENT_CART_INSTALL_STATE = 3 # Consumable and cartridge installation state - HD_PRE_TREATMENT_SELF_TEST_DRY_STATE = 4 # Self tests dry state - HD_PRE_TREATMENT_PRIME_STATE = 5 # Prime blood and dialysate circuits and run wet self-tests state - HD_PRE_TREATMENT_RECIRCULATE_STATE = 6 # Re-circulate blood and dialysate circuits state - HD_PRE_TREATMENT_PATIENT_CONNECTION_STATE = 7 # Patient connection state - NUM_OF_HD_PRE_TREATMENT_STATES = 8 # Number of pre-treatment mode states +class PreTreatmentModeStates(DialinEnum): + HD_PRE_TREATMENT_START_STATE = 0 # Start pre-treatment mode state + HD_PRE_TREATMENT_WATER_SAMPLE_STATE = 1 # Water sample state + HD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE = 2 # Self tests with no cartridge state + HD_PRE_TREATMENT_CART_INSTALL_STATE = 3 # Consumable and cartridge installation state + HD_PRE_TREATMENT_SELF_TEST_DRY_STATE = 4 # Self tests dry state + HD_PRE_TREATMENT_PRIME_STATE = 5 # Prime blood and dialysate circuits and run wet self-tests state + HD_PRE_TREATMENT_RECIRCULATE_STATE = 6 # Re-circulate blood and dialysate circuits state + HD_PRE_TREATMENT_PATIENT_CONNECTION_STATE = 7 # Patient connection state + NUM_OF_HD_PRE_TREATMENT_STATES = 8 # Number of pre-treatment mode states @unique -class HD_Pre_Treatment_Sample_Water_States(DialinEnum): - SAMPLE_WATER_SETUP_STATE = 0 # Sample water setup state of the sample water sub-mode state machine - SAMPLE_WATER_STATE = 1 # Sample water state of the sample water sub-mode state machine - NUM_OF_SAMPLE_WATER_STATES = 2 # Number of sample water sub-mode states +class PreTreatmentSampleWaterStates(DialinEnum): + SAMPLE_WATER_SETUP_STATE = 0 # Sample water setup state of the sample water sub-mode state machine + SAMPLE_WATER_STATE = 1 # Sample water state of the sample water sub-mode state machine + NUM_OF_SAMPLE_WATER_STATES = 2 # Number of sample water sub-mode states @unique -class HD_Pre_Treatment_Consumable_Self_Test_States(DialinEnum): - CONSUMABLE_SELF_TESTS_INSTALL_STATE = 0 # Consumable self-tests install state - CONSUMABLE_SELF_TESTS_WATER_QUALITY_CHECK_STATE = 1 # Consumable self-tests water quality check state - CONSUMABLE_SELF_TESTS_BICARB_PUMP_CHECK_STATE = 2 # Consumable self-tests bicarbonate concentrate pump check state - CONSUMABLE_SELF_TESTS_ACID_PUMP_CHECK_STATE = 3 # Consumable self-tests acid concentrate pump check state - CONSUMABLE_SELF_TESTS_COMPLETE_STATE = 4 # Consumable self-tests complete state - NUM_OF_CONSUMABLE_SELF_TESTS_STATES = 5 # Number of consumable install sub-mode states +class PreTreatmentConsumableSelfTestStates(DialinEnum): + CONSUMABLE_SELF_TESTS_INSTALL_STATE = 0 # Consumable self-tests install state + CONSUMABLE_SELF_TESTS_WATER_QUALITY_CHECK_STATE = 1 # Consumable self-tests water quality check state + CONSUMABLE_SELF_TESTS_BICARB_PUMP_CHECK_STATE = 2 # Consumable self-tests bicarb concentrate pump check state + CONSUMABLE_SELF_TESTS_ACID_PUMP_CHECK_STATE = 3 # Consumable self-tests acid concentrate pump check state + CONSUMABLE_SELF_TESTS_COMPLETE_STATE = 4 # Consumable self-tests complete state + NUM_OF_CONSUMABLE_SELF_TESTS_STATES = 5 # Number of consumable install sub-mode states @unique -class HD_Pre_Treatment_No_Cart_Self_Tests_States(DialinEnum): - NO_CART_SELF_TESTS_START_STATE = 0 # No cartridge self-tests starting state. - NO_CART_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE = 1 # Wait for door to be closed before running self-tests. - NO_CART_SELF_TESTS_OCCLUSION_SENSORS_STATE = 2 # No cartridge occlusion sensors self-test state. - NO_CART_SELF_TESTS_BLOOD_FLOW_METERS_STATE = 3 # No cartridge blood flow meter self-test state. - NO_CART_SELF_TESTS_DIALYSATE_FLOW_METERS_STATE = 4 # No cartridge dialysate flow meter self-test state. - NO_CART_SELF_TESTS_PUMPS_STATE = 5 # No cartridge self-test for blood pump, dialysate in pump, dialysate out pump state. - NO_CART_SELF_TESTS_LEAK_DETECTORS_STATE = 6 # No cartridge leak detectors self-test state. - NO_CART_SELF_TESTS_BOARD_TEMPERATURE_STATE = 7 # No cartridge board temperature self-test state. - NO_CART_SELF_TESTS_DOOR_SWITCH_STATE = 8 # No cartridge door switch self-test state. - NO_CART_SELF_TESTS_HOME_VALVES_AND_PUMPS_STATE = 9 # No cartridge home valves and pumps self-test state. - NO_CART_SELF_TESTS_HOME_IDLE_STATE = 10 # Wait for valves and pumps finish homing state. - NO_CART_SELF_TESTS_STOPPED_STATE = 11 # No cart self-test stopped state. - NO_CART_SELF_TESTS_COMPLETE_STATE = 12 # No cartridge self-test complete state. - NUM_OF_NO_CART_SELF_TESTS_STATES = 13 # Number of no cartridge self-tests states. +class PreTreatmentNoCartSelfTestsStates(DialinEnum): + NO_CART_SELF_TESTS_START_STATE = 0 # No cartridge self-tests starting state + NO_CART_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE = 1 # Wait for door to be closed before running self-tests + NO_CART_SELF_TESTS_OCCLUSION_SENSORS_STATE = 2 # No cartridge occlusion sensors self-test state + NO_CART_SELF_TESTS_BLOOD_FLOW_METERS_STATE = 3 # No cartridge blood flow meter self-test state + NO_CART_SELF_TESTS_DIALYSATE_FLOW_METERS_STATE = 4 # No cartridge dialysate flow meter self-test state + NO_CART_SELF_TESTS_BOARD_TEMPERATURE_STATE = 5 # No cartridge board temperature self-test state + NO_CART_SELF_TESTS_HOME_VALVES_STATE = 6 # No cartridge home valves state + NO_CART_SELF_TESTS_HOME_SYRINGE_PUMP_STATE = 7 # No cartridge home syringe pump state + NO_CART_SELF_TESTS_PUMPS_STATE = 8 # No cartridge self-test for pumps state + NO_CART_SELF_TESTS_HOME_IDLE_STATE = 9 # Wait for valves and pumps finish homing state + NO_CART_SELF_TESTS_STOPPED_STATE = 10 # No cart self-test stopped state + NO_CART_SELF_TESTS_COMPLETE_STATE = 11 # No cartridge self-test complete state + NUM_OF_NO_CART_SELF_TESTS_STATES = 12 # Number of no cartridge self-tests states @unique -class HD_Pre_Treatment_Cartridge_Install_States(DialinEnum): - CARTRIDGE_INSTALL_STATE = 0 # Pre-treatment Cartridge Install state. - NUM_OF_CARTRIDGE_INSTALL_STATES = 1 # Number of pre-treatment Cartridge Install states. +class PreTreatmentCartridgeInstallStates(DialinEnum): + CARTRIDGE_INSTALL_STATE = 0 # Pre-treatment Cartridge Install state. + NUM_OF_CARTRIDGE_INSTALL_STATES = 1 # Number of pre-treatment Cartridge Install states. @unique -class HD_Pre_Treatment_Dry_Self_Tests_States(DialinEnum): - DRY_SELF_TESTS_START_STATE = 0 # Dry self-tests starting state. - DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE = 1 # Wait for door to close before executing self-tests. - DRY_SELF_TESTS_BUBBLE_DETECTOR_STATE = 2 # Bubble detectors dry self-test state. - DRY_SELF_TESTS_OCCLUSION_SENSORS_STATE = 3 # Occlusion sensors dry self-test state. - DRY_SELF_TESTS_PRESSURE_SENSORS_SETUP_STATE = 4 # Pressure sensors dry self-test setup valves and pump state. - DRY_SELF_TESTS_PRESSURE_SENSORS_STATE = 5 # Pressure sensors verify pressure readings state. - DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE = 6 # Preassure sensors verify normal pressure readings state. - DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE = 7 # Prime syringe pump state - DRY_SELF_TESTS_STOPPED_STATE = 8 # Dry self-test stopped state. - DRY_SELF_TESTS_COMPLETE_STATE = 9 # Dry self-test complete state. - NUM_OF_DRY_SELF_TESTS_STATES = 10 # Number of dry self-tests states. +class PreTreatmentDrySelfTestsStates(DialinEnum): + DRY_SELF_TESTS_START_STATE = 0 # Dry self-tests starting state + DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE = 1 # Wait for door to close before executing self-tests + DRY_SELF_TESTS_USED_CARTRIDGE_CHECK_STATE = 2 # Used cartridge check dry self-test state + DRY_SELF_TESTS_OCCLUSION_SENSORS_STATE = 3 # Occlusion sensors dry self-test state + DRY_SELF_TESTS_PRESSURE_SENSORS_SETUP_STATE = 4 # Pressure sensors dry self-test setup valves and pump state + DRY_SELF_TESTS_PRESSURE_SENSORS_STATE = 5 # Pressure sensors verify pressure readings state + DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE = 6 # Pressure sensors verify normal pressure readings state + DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE = 7 # Prime syringe pump state + DRY_SELF_TESTS_STOPPED_STATE = 8 # Dry self-test stopped state + DRY_SELF_TESTS_COMPLETE_STATE = 9 # Dry self-test complete state + NUM_OF_DRY_SELF_TESTS_STATES = 10 # Number of dry self-tests states @unique -class HD_Pre_Treatment_Prime_States(DialinEnum): - HD_PRIME_START_STATE = 0 # Prime start state - HD_PRIME_WAIT_FOR_USER_START_STATE = 1 # Wait for user to start prime state - HD_PRIME_SALINE_SETUP_STATE = 2 # Saline setup state - HD_PRIME_SALINE_PURGE_AIR_STATE = 3 # Saline purge air state - HD_PRIME_SALINE_CIRC_BLOOD_CIRCUIT_STATE = 4 # Circulate blood circuit state - HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE = 5 # Wait for reservoir 1 fill complete - HD_PRIME_DIALYSATE_DIALYZER_STATE = 6 # Dialysate dialyzer fluid path state - HD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE = 7 # Wait for reservoir 2 fill complete - HD_PRIME_DIALYSATE_BYPASS_STATE = 8 # Dialysate bypass fluid path state - HD_PRIME_WET_SELF_TESTS_STATE = 9 # Perform wet self-tests after priming complete - HD_PRIME_PAUSE = 10 # Prime pause state, waits to be resumed - HD_PRIME_COMPLETE = 11 # Prime complete state - NUM_OF_HD_PRIME_STATES = 12 # Number of prime sub-mode states +class PreTreatmentPrimeStates(DialinEnum): + HD_PRIME_START_STATE = 0 # Prime start state + HD_PRIME_WAIT_FOR_USER_START_STATE = 1 # Wait for user to start prime state + HD_PRIME_SALINE_SETUP_STATE = 2 # Saline setup state + HD_PRIME_SALINE_PURGE_AIR_STATE = 3 # Saline purge air state + HD_PRIME_SALINE_CIRC_BLOOD_CIRCUIT_STATE = 4 # Circulate blood circuit state + HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE = 5 # Wait for reservoir 1 fill complete + HD_PRIME_DIALYSATE_DIALYZER_STATE = 6 # Dialysate dialyzer fluid path state + HD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE = 7 # Wait for reservoir 2 fill complete + HD_PRIME_DIALYSATE_BYPASS_STATE = 8 # Dialysate bypass fluid path state + HD_PRIME_WET_SELF_TESTS_STATE = 9 # Perform wet self-tests after priming complete + HD_PRIME_PAUSE = 10 # Prime pause state = waits to be resumed + HD_PRIME_COMPLETE = 11 # Prime complete state + NUM_OF_HD_PRIME_STATES = 12 # Number of prime sub-mode states @unique -class HD_Pre_Treatment_Recirc_States(DialinEnum): - PRE_TREATMENT_RECIRC_STATE = 0 # Pre-treatment recirculate state. - PRE_TREATMENT_RECIRC_STOPPED_STATE = 1 # Pre-treatment recirculate stopped state. - NUM_OF_PRE_TREATMENT_RECIRC_STATES = 2 # Number of pre-treatment recirculate states. +class PreTreatmentRecircStates(DialinEnum): + PRE_TREATMENT_RECIRC_STATE = 0 # Pre-treatment recirculate state. + PRE_TREATMENT_RECIRC_STOPPED_STATE = 1 # Pre-treatment recirculate stopped state. + NUM_OF_PRE_TREATMENT_RECIRC_STATES = 2 # Number of pre-treatment recirculate states. @unique -class HD_Pre_Treatment_Patient_Connection_States(DialinEnum): - PATIENT_CONNECTION_STATE = 0 # Pre-treatment Patient Connection state. - NUM_OF_PATIENT_CONNECTION_STATES = 1 # Number of pre-treatment Patient Connection states. +class PreTreatmentPatientConnectionStates(DialinEnum): + PATIENT_CONNECTION_STATE = 0 # Pre-treatment Patient Connection state. + NUM_OF_PATIENT_CONNECTION_STATES = 1 # Number of pre-treatment Patient Connection states. @unique -class HD_Standby_States(DialinEnum): - STANDBY_START_STATE = 0 # Start standby - STANDBY_WAIT_FOR_TREATMENT_STATE = 1 # Wait for treatment - STANDBY_WAIT_FOR_DISINFECT_STATE = 2 # Wait for disinfection - STANDBY_DG_FLUSH_IN_PROGRESS_STATE = 3 # DG flush operation is in progress - STANDBY_DG_HEAT_DISINFECT_IN_PROGRESS_STATE = 4 # DG heat disinfection operation is in progress - STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE = 5 # DG chemical disinfection operation is in progress - NUM_OF_STANDBY_STATES = 6 # Number of standby states (sub-modes) +class StandbyStates(DialinEnum): + STANDBY_START_STATE = 0 # Start standby + STANDBY_WAIT_FOR_TREATMENT_STATE = 1 # Wait for treatment + STANDBY_WAIT_FOR_DISINFECT_STATE = 2 # Wait for disinfection + STANDBY_DG_FLUSH_IN_PROGRESS_STATE = 3 # DG flush operation is in progress + STANDBY_DG_HEAT_DISINFECT_IN_PROGRESS_STATE = 4 # DG heat disinfection operation is in progress + STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE = 5 # DG chemical disinfection operation is in progress + NUM_OF_STANDBY_STATES = 6 # Number of standby states (sub-modes) Index: dialin/common/msg_defs.py =================================================================== diff -u -r817f108b234f6652fecbda170dcaae9636feec7b -ra505f80795643e531cb0b0120a38a7765cbf7b9c --- dialin/common/msg_defs.py (.../msg_defs.py) (revision 817f108b234f6652fecbda170dcaae9636feec7b) +++ dialin/common/msg_defs.py (.../msg_defs.py) (revision a505f80795643e531cb0b0120a38a7765cbf7b9c) @@ -17,21 +17,23 @@ from ..utils.base import DialinEnum from .msg_ids import MsgIds + # Define msg ids that are not yet added to common but are needed in dialin @unique class MsgIdsDialin(DialinEnum): - MSG_DIALIN_ID_UI_SYSTEM_USAGE_REQUEST = 0x89 - MSG_DIALIN_ID_HD_SYSTEM_USAGE_RESPONSE = 0x8A - MSG_DIALIN_ID_DG_SYSTEM_USAGE_RESPONSE = 0x8C - MSG_DIALIN_ID_HD_DISINFECT_STATE = 0x7E - MSG_DIALIN_ID_HD_VERSION_REQUEST = 0x9E - MSG_DIALIN_ID_UI_POST_REPORT_VERSION = 0x9F + MSG_DIALIN_ID_UI_SYSTEM_USAGE_REQUEST = 0x89 + MSG_DIALIN_ID_HD_SYSTEM_USAGE_RESPONSE = 0x8A + MSG_DIALIN_ID_DG_SYSTEM_USAGE_RESPONSE = 0x8C + MSG_DIALIN_ID_HD_DISINFECT_STATE = 0x7E + MSG_DIALIN_ID_HD_VERSION_REQUEST = 0x9E + MSG_DIALIN_ID_UI_POST_REPORT_VERSION = 0x9F ACK_NOT_REQUIRED = [ MsgIds.MSG_ID_ALARM_CONDITION_CLEARED.value ] + @unique class RequestRejectReasons(DialinEnum): REQUEST_REJECT_REASON_NONE = 0 @@ -70,6 +72,7 @@ REQUEST_REJECT_REASON_DRAIN_NOT_COMPLETE = 33 NUM_OF_REQUEST_REJECT_REASONS = 34 + class MsgFieldPositions: # Generic response msg field byte positions (where 32-bit data fields are used) START_POS_FIELD_1 = 6 # Hardcoded for now to avoid cyclic import issue. See protocols.CAN.DenaliMessage class @@ -121,4 +124,4 @@ START_POS_FIELD_24 = END_POS_FIELD_23 END_POS_FIELD_24 = START_POS_FIELD_24 + 4 START_POS_FIELD_25 = END_POS_FIELD_24 - END_POS_FIELD_25 = START_POS_FIELD_25 + 4 \ No newline at end of file + END_POS_FIELD_25 = START_POS_FIELD_25 + 4 Index: dialin/common/prs_defs.py =================================================================== diff -u -rb17d2a1969b535d66bf534556ac42fd2bb28fd1d -ra505f80795643e531cb0b0120a38a7765cbf7b9c --- dialin/common/prs_defs.py (.../prs_defs.py) (revision b17d2a1969b535d66bf534556ac42fd2bb28fd1d) +++ dialin/common/prs_defs.py (.../prs_defs.py) (revision a505f80795643e531cb0b0120a38a7765cbf7b9c) @@ -16,52 +16,55 @@ class Ranges: PRESSURE_STEPS = 10 - ARTERIAL_PRESSURE_MINIMUM = -400 - ARTERIAL_PRESSURE_MAXIMUM = +600 - ARTERIAL_PRESSURE_LOW_MIN = -300 - ARTERIAL_PRESSURE_LOW_DEF = -300 - ARTERIAL_PRESSURE_LOW_MAX = +200 + ARTERIAL_PRESSURE_MINIMUM = -400 + ARTERIAL_PRESSURE_MAXIMUM = +600 + ARTERIAL_PRESSURE_LOW_MIN = -300 + ARTERIAL_PRESSURE_LOW_DEF = -300 + ARTERIAL_PRESSURE_LOW_MAX = +200 ARTERIAL_PRESSURE_HIGH_MIN = -300 ARTERIAL_PRESSURE_HIGH_DEF = +100 ARTERIAL_PRESSURE_HIGH_MAX = +200 - VENOUS_PRESSURE_MINIMUM = -100 - VENOUS_PRESSURE_MAXIMUM = +700 - VENOUS_PRESSURE_LOW_MIN = -100 - VENOUS_PRESSURE_LOW_DEF = -100 - VENOUS_PRESSURE_LOW_MAX = +600 - VENOUS_PRESSURE_HIGH_MIN = +100 - VENOUS_PRESSURE_HIGH_DEF = +400 - VENOUS_PRESSURE_HIGH_MAX = +600 + VENOUS_PRESSURE_MINIMUM = -100 + VENOUS_PRESSURE_MAXIMUM = +700 + VENOUS_PRESSURE_LOW_MIN = -100 + VENOUS_PRESSURE_LOW_DEF = -100 + VENOUS_PRESSURE_LOW_MAX = +600 + VENOUS_PRESSURE_HIGH_MIN = +100 + VENOUS_PRESSURE_HIGH_DEF = +400 + VENOUS_PRESSURE_HIGH_MAX = +600 + class AlarmPriority: ALARM_HIGH = 3 - ALARM_MED = 2 - ALARM_LOW = 1 + ALARM_MED = 2 + ALARM_LOW = 1 ALARM_NONE = 0 + class AlarmFlags: - ALARM_STATE_FLAG_BIT_POS_SYSTEM_FAULT = 0 - ALARM_STATE_FLAG_BIT_POS_STOP = 1 - ALARM_STATE_FLAG_BIT_POS_NO_CLEAR = 2 - ALARM_STATE_FLAG_BIT_POS_NO_RESUME = 3 - ALARM_STATE_FLAG_BIT_POS_NO_RINSEBACK = 4 - ALARM_STATE_FLAG_BIT_POS_NO_END_TREATMENT = 5 - ALARM_STATE_FLAG_BIT_POS_NO_NEW_TREATMENT = 6 - ALARM_STATE_FLAG_BIT_POS_USER_MUST_ACK = 7 - ALARM_STATE_FLAG_BIT_POS_ALARMS_TO_ESCALATE = 8 - ALARM_STATE_FLAG_BIT_POS_ALARMS_SILENCED = 9 - ALARM_STATE_FLAG_BIT_POS_LAMP_ON = 10 - ALARM_STATE_FLAG_BIT_POS_UNUSED_1 = 11 - ALARM_STATE_FLAG_BIT_POS_UNUSED_2 = 12 - ALARM_STATE_FLAG_BIT_POS_UNUSED_3 = 13 - ALARM_STATE_FLAG_BIT_POS_UNUSED_4 = 14 - ALARM_STATE_FLAG_BIT_POS_TOP_CONDITION = 15 + ALARM_STATE_FLAG_BIT_POS_SYSTEM_FAULT = 0 + ALARM_STATE_FLAG_BIT_POS_STOP = 1 + ALARM_STATE_FLAG_BIT_POS_NO_CLEAR = 2 + ALARM_STATE_FLAG_BIT_POS_NO_RESUME = 3 + ALARM_STATE_FLAG_BIT_POS_NO_RINSEBACK = 4 + ALARM_STATE_FLAG_BIT_POS_NO_END_TREATMENT = 5 + ALARM_STATE_FLAG_BIT_POS_NO_NEW_TREATMENT = 6 + ALARM_STATE_FLAG_BIT_POS_USER_MUST_ACK = 7 + ALARM_STATE_FLAG_BIT_POS_ALARMS_TO_ESCALATE = 8 + ALARM_STATE_FLAG_BIT_POS_ALARMS_SILENCED = 9 + ALARM_STATE_FLAG_BIT_POS_LAMP_ON = 10 + ALARM_STATE_FLAG_BIT_POS_UNUSED_1 = 11 + ALARM_STATE_FLAG_BIT_POS_UNUSED_2 = 12 + ALARM_STATE_FLAG_BIT_POS_UNUSED_3 = 13 + ALARM_STATE_FLAG_BIT_POS_UNUSED_4 = 14 + ALARM_STATE_FLAG_BIT_POS_TOP_CONDITION = 15 -class Alarm_Data_Types: - ALARM_DATA_TYPE_NONE = 0 # No data given. - ALARM_DATA_TYPE_U32 = 1 # Alarm data is unsigned 32-bit integer type. - ALARM_DATA_TYPE_S32 = 2 # Alarm data is signed 32-bit integer type. - ALARM_DATA_TYPE_F32 = 3 # Alarm data is 32-bit floating point type. - ALARM_DATA_TYPE_BOOL = 4 # Alarm data is 32-bit boolean type. - NUM_OF_ALARM_DATA_TYPES = 5 # Total number of alarm data types. + +class AlarmDataTypes: + ALARM_DATA_TYPE_NONE = 0 # No data given. + ALARM_DATA_TYPE_U32 = 1 # Alarm data is unsigned 32-bit integer type. + ALARM_DATA_TYPE_S32 = 2 # Alarm data is signed 32-bit integer type. + ALARM_DATA_TYPE_F32 = 3 # Alarm data is 32-bit floating point type. + ALARM_DATA_TYPE_BOOL = 4 # Alarm data is 32-bit boolean type. + NUM_OF_ALARM_DATA_TYPES = 5 # Total number of alarm data types. Index: dialin/common/ui_defs.py =================================================================== diff -u -r46342bac3e23428e90666525bb5a89c4532da945 -ra505f80795643e531cb0b0120a38a7765cbf7b9c --- dialin/common/ui_defs.py (.../ui_defs.py) (revision 46342bac3e23428e90666525bb5a89c4532da945) +++ dialin/common/ui_defs.py (.../ui_defs.py) (revision a505f80795643e531cb0b0120a38a7765cbf7b9c) @@ -77,56 +77,56 @@ class TXStates: # Sub Mode - TREATMENT_START_STATE = 0 # Start treatment - initialize treatment and go to blood prime state - TREATMENT_BLOOD_PRIME_STATE = 1 # Prime blood-side of dialyzer with gradual ramp for 1 min. while dialyzer is bypassed. No dialysis or UF taking place. No treatment time. - TREATMENT_DIALYSIS_STATE = 2 # Perform dialysis. Deliver Heparin as prescribed. Deliver UF as prescribed. Handle saline boluses as requested - TREATMENT_STOP_STATE = 3 # Treatment stopped. All pumps off. Dializer bypassed - TREATMENT_RINSEBACK_STATE = 4 # Perform rinseback with saline. Dialyzer bypassed. Dialysate recirculating - TREATMENT_RECIRC_STATE = 5 # Recirculate saline and dialysate while patient disconnected. Blood lines open and shunted. Dialyzer is bypassed - TREATMENT_END_STATE = 6 # Dialysis has ended. Blood pump slowed. Dialyzer is bypassed. Dialysate is recirculated. User can rinseback + TREATMENT_START_STATE = 0 # Start treatment - initialize treatment and go to blood prime state + TREATMENT_BLOOD_PRIME_STATE = 1 # Prime blood-side of dialyzer with gradual ramp for 1 min. while dialyzer is bypassed. No dialysis or UF taking place. No treatment time. + TREATMENT_DIALYSIS_STATE = 2 # Perform dialysis. Deliver Heparin as prescribed. Deliver UF as prescribed. Handle saline boluses as requested + TREATMENT_STOP_STATE = 3 # Treatment stopped. All pumps off. Dializer bypassed + TREATMENT_RINSEBACK_STATE = 4 # Perform rinseback with saline. Dialyzer bypassed. Dialysate recirculating + TREATMENT_RECIRC_STATE = 5 # Recirculate saline and dialysate while patient disconnected. Blood lines open and shunted. Dialyzer is bypassed + TREATMENT_END_STATE = 6 # Dialysis has ended. Blood pump slowed. Dialyzer is bypassed. Dialysate is recirculated. User can rinseback # Saline states - SALINE_BOLUS_STATE_IDLE = 0 # No saline bolus delivery is in progress - SALINE_BOLUS_STATE_WAIT_FOR_PUMPS_STOP = 1 # Wait for pumps to stop before starting bolus - SALINE_BOLUS_STATE_IN_PROGRESS = 2 # A saline bolus delivery is in progress - SALINE_BOLUS_STATE_MAX_DELIVERED = 3 # Maximum saline bolus volume reached - no more saline bolus deliveries allowed + SALINE_BOLUS_STATE_IDLE = 0 # No saline bolus delivery is in progress + SALINE_BOLUS_STATE_WAIT_FOR_PUMPS_STOP = 1 # Wait for pumps to stop before starting bolus + SALINE_BOLUS_STATE_IN_PROGRESS = 2 # A saline bolus delivery is in progress + SALINE_BOLUS_STATE_MAX_DELIVERED = 3 # Maximum saline bolus volume reached - no more saline bolus deliveries allowed # UF states - UF_START_STATE = 0 # Start state of the ultrafiltration state machine - UF_PAUSED_STATE = 1 # Paused state of the ultrafiltration state machine - UF_RUNNING_STATE = 2 # Running state of the ultrafiltration state machine - UF_OFF_STATE = 3 # Completed/off state of the ultrafiltration state machine - UF_COMPLETED_STATE = 4 # Completed state of ultrafiltration state machine + UF_START_STATE = 0 # Start state of the ultrafiltration state machine + UF_PAUSED_STATE = 1 # Paused state of the ultrafiltration state machine + UF_RUNNING_STATE = 2 # Running state of the ultrafiltration state machine + UF_OFF_STATE = 3 # Completed/off state of the ultrafiltration state machine + UF_COMPLETED_STATE = 4 # Completed state of ultrafiltration state machine # Heparin states - HEPARIN_STATE_OFF = 0 # No heparin delivery is in progress - HEPARIN_STATE_PAUSED = 1 # Heparin delivery paused - HEPARIN_STATE_INITIAL_BOLUS = 2 # Initial heparin bolus delivery in progress - HEPARIN_STATE_DISPENSING = 3 # Gradual heparin dispensing in progress - HEPARIN_STATE_COMPLETED = 4 # Heparin delivery stopped due to the set stop time before treatment end - HEPARIN_STATE_EMPTY = 5 # Heparin Syringe empty + HEPARIN_STATE_OFF = 0 # No heparin delivery is in progress + HEPARIN_STATE_PAUSED = 1 # Heparin delivery paused + HEPARIN_STATE_INITIAL_BOLUS = 2 # Initial heparin bolus delivery in progress + HEPARIN_STATE_DISPENSING = 3 # Gradual heparin dispensing in progress + HEPARIN_STATE_COMPLETED = 4 # Heparin delivery stopped due to the set stop time before treatment end + HEPARIN_STATE_EMPTY = 5 # Heparin Syringe empty # Rinseback states - RINSEBACK_STOP_INIT_STATE = 0 # Start state (stopped) of the rinseback sub-mode state machine - RINSEBACK_RUN_STATE = 1 # Rinseback running state of the rinseback sub-mode state machine - RINSEBACK_PAUSED_STATE = 2 # Rinseback paused state of the rinseback sub-mode state machine - RINSEBACK_STOP_STATE = 3 # Rinseback stopped (done) state of the rinseback sub-mode state machine - RINSEBACK_RUN_ADDITIONAL_STATE = 4 # Additional rinseback volume (10 mL) state of the rinseback sub-mode state machine + RINSEBACK_STOP_INIT_STATE = 0 # Start state (stopped) of the rinseback sub-mode state machine + RINSEBACK_RUN_STATE = 1 # Rinseback running state of the rinseback sub-mode state machine + RINSEBACK_PAUSED_STATE = 2 # Rinseback paused state of the rinseback sub-mode state machine + RINSEBACK_STOP_STATE = 3 # Rinseback stopped (done) state of the rinseback sub-mode state machine + RINSEBACK_RUN_ADDITIONAL_STATE = 4 # Additional rinseback volume (10 mL) state of the rinseback sub-mode state machine # Recirculate - TREATMENT_RECIRC_RECIRC_STATE = 0 # Re-circulate state of the treatment re-circulate sub-mode state machine - TREATMENT_RECIRC_STOPPED_STATE = 1 # Stopped state of the treatment re-circulate sub-mode state machine + TREATMENT_RECIRC_RECIRC_STATE = 0 # Re-circulate state of the treatment re-circulate sub-mode state machine + TREATMENT_RECIRC_STOPPED_STATE = 1 # Stopped state of the treatment re-circulate sub-mode state machine # Blood Prime - BLOOD_PRIME_RAMP_STATE = 0 # Ramp state of the blood prime sub-mode state machine + BLOOD_PRIME_RAMP_STATE = 0 # Ramp state of the blood prime sub-mode state machine # Treatment End - TREATMENT_END_WAIT_FOR_RINSEBACK_STATE = 0 # Wait for rinseback state of the treatment end sub-mode state machine - TREATMENT_END_PAUSED_STATE = 1 # Paused state of the treatment end sub-mode state machine + TREATMENT_END_WAIT_FOR_RINSEBACK_STATE = 0 # Wait for rinseback state of the treatment end sub-mode state machine + TREATMENT_END_PAUSED_STATE = 1 # Paused state of the treatment end sub-mode state machine # Treatment Stop - TREATMENT_STOP_RECIRC_STATE = 0 # Dialysate re-circulation state of the treatment stop sub-mode state machine - TREATMENT_STOP_NO_RECIRC_STATE = 1 # No dialysate re-circulation state of the treatment stop sub-mode state machine + TREATMENT_STOP_RECIRC_STATE = 0 # Dialysate re-circulation state of the treatment stop sub-mode state machine + TREATMENT_STOP_NO_RECIRC_STATE = 1 # No dialysate re-circulation state of the treatment stop sub-mode state machine class TreatmentParameterRejections: Index: dialin/dg/alarms.py =================================================================== diff -u -r0f4ba40a63c79697d979203f67ef0338a12cae23 -ra505f80795643e531cb0b0120a38a7765cbf7b9c --- dialin/dg/alarms.py (.../alarms.py) (revision 0f4ba40a63c79697d979203f67ef0338a12cae23) +++ dialin/dg/alarms.py (.../alarms.py) (revision a505f80795643e531cb0b0120a38a7765cbf7b9c) @@ -126,6 +126,8 @@ str_res = "reset back to normal" else: str_res = ("active" if state != 0 else "inactive") + self.logger.debug("Alarm " + str(alarm) + " " + str_res + ": " + str( + received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) # response payload is OK or not OK return 1 == received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] return False Index: dialin/hd/alarms.py =================================================================== diff -u -ra96c71099660bd5671204af134735f093c5ab700 -ra505f80795643e531cb0b0120a38a7765cbf7b9c --- dialin/hd/alarms.py (.../alarms.py) (revision a96c71099660bd5671204af134735f093c5ab700) +++ dialin/hd/alarms.py (.../alarms.py) (revision a505f80795643e531cb0b0120a38a7765cbf7b9c) @@ -191,71 +191,71 @@ @return: (bool) Alarm flag system fault (T/F) """ - return ((self.alarms_flags & 1) > 0) + return (self.alarms_flags & 1) > 0 def get_alarm_flag_stop(self) -> bool: """ Gets the alarm flag no clear. @return: (bool) Alarm flag no clear (T/F) """ - return ((self.alarms_flags & 2) > 0) + return (self.alarms_flags & 2) > 0 def get_alarm_flag_no_clear(self) -> bool: """ Gets the alarm flag no clear. @return: (bool) Alarm flag no clear (T/F) """ - return ((self.alarms_flags & 4) > 0) + return (self.alarms_flags & 4) > 0 def get_alarm_flag_no_resume(self) -> bool: """ Gets the alarm flag no resume. @return: (bool) Alarm flag no resume (T/F) """ - return ((self.alarms_flags & 8) > 0) + return (self.alarms_flags & 8) > 0 def get_alarm_flag_no_rinseback(self) -> bool: """ Gets the alarm flag no rinseback. @return: (bool) Alarm flag no rinseback (T/F) """ - return ((self.alarms_flags & 16) > 0) + return (self.alarms_flags & 16) > 0 def get_alarm_flag_no_end_treatment(self) -> bool: """ Gets the alarm flag no end treatment. @return: (bool) Alarm flag no end treatment (T/F) """ - return ((self.alarms_flags & 32) > 0) + return (self.alarms_flags & 32) > 0 def get_alarm_flag_no_new_treatment(self) -> bool: """ Gets the alarm flag no new treatment. @return: (bool) Alarm flag no new treatment (T/F) """ - return ((self.alarms_flags & 64) > 0) + return (self.alarms_flags & 64) > 0 def get_alarm_flag_lamp_on(self) -> bool: """ Gets the alarm flag lamp on. @return: (bool) Alarm lamp on (T/F) """ - return ((self.alarms_flags & 1024) > 0) + return (self.alarms_flags & 1024) > 0 def get_alarm_flag_no_minimize(self) -> bool: """ Gets the alarm flag no minimize. @return: (bool) Alarm cannot be minimized (T/F) """ - return ((self.alarms_flags & 16384) > 0) + return (self.alarms_flags & 16384) > 0 @_publish(["alarms_state", "alarm_top", "alarms_silence_expires_in", "alarms_escalates_in", "alarms_flags"]) def _handler_alarms_status_sync(self, message): @@ -337,7 +337,7 @@ @return: 1 if successful, zero otherwise """ - key = integer_to_bytearray(-758926171) # 0xD2C3B4A5 + key = integer_to_bytearray(-758926171) # 0xD2C3B4A5 payload = key message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_hd_ch_id, @@ -387,9 +387,13 @@ str_res = "reset back to normal" else: str_res = ("active" if state != 0 else "inactive") + self.logger.debug("Alarm " + str(alarm) + " " + str_res + ": " + str( + received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) # response payload is OK or not OK - return 1 == received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] - return False + return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] + else: + self.logger.debug("Timeout!!!!") + return False def cmd_alarm_time_override(self, alarm: int, time_ms: int, reset: int = NO_RESET) -> int: """ @@ -486,10 +490,9 @@ else: str_pat = "manual" self.logger.debug("Alarm lamp pattern overridden to " + str_pat + ":" + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: self.logger.debug("Timeout!!!!") return False - Index: dialin/hd/calibration_record.py =================================================================== diff -u -r2e392c92d55178f457a67423ba8c503a86dcf3c8 -ra505f80795643e531cb0b0120a38a7765cbf7b9c --- dialin/hd/calibration_record.py (.../calibration_record.py) (revision 2e392c92d55178f457a67423ba8c503a86dcf3c8) +++ dialin/hd/calibration_record.py (.../calibration_record.py) (revision a505f80795643e531cb0b0120a38a7765cbf7b9c) @@ -138,7 +138,7 @@ """ self.logger.debug("Received a complete hd calibration record.") - def cmd_set_hd_calibration_record(self, hd_calibration_record: OrderedDict) -> None: + def cmd_set_hd_calibration_record(self, hd_calibration_record: OrderedDict) -> bool: """ Handles updating the HD calibration_record record with the newest calibration_record data of a hardware and sends it to FW. Index: dialin/hd/syringe_pump.py =================================================================== diff -u -r9f299d4ee156bd2793f9f3815b87498d63cf078d -ra505f80795643e531cb0b0120a38a7765cbf7b9c --- dialin/hd/syringe_pump.py (.../syringe_pump.py) (revision 9f299d4ee156bd2793f9f3815b87498d63cf078d) +++ dialin/hd/syringe_pump.py (.../syringe_pump.py) (revision a505f80795643e531cb0b0120a38a7765cbf7b9c) @@ -15,7 +15,7 @@ ############################################################################ import struct from ..utils.conversions import integer_to_bytearray, float_to_bytearray -from .constants import RESET,NO_RESET +from .constants import RESET, NO_RESET from ..common.msg_defs import MsgIds, MsgFieldPositions from ..protocols.CAN import (DenaliMessage, DenaliChannels) @@ -153,10 +153,10 @@ return self.syringe_pump_safety_volume_ml @_publish(["syringe_pump_state", "syringe_pump_set_rate_ml_hr", - "syringe_pump_meas_rate_ml_hr","syringe_pump_position", - "syringe_pump_volume_ml","syringe_pump_home_v", - "syringe_pump_switch_v","syringe_pump_force_v", - "heparin_state","syringe_pump_safety_volume_ml"]) + "syringe_pump_meas_rate_ml_hr", "syringe_pump_position", + "syringe_pump_volume_ml", "syringe_pump_home_v", + "syringe_pump_switch_v", "syringe_pump_force_v", + "heparin_state", "syringe_pump_safety_volume_ml"]) def _handler_syringe_pump_data(self, message): """ Handles published syringe pump data messages. Syringe pump data are captured @@ -278,7 +278,7 @@ else: str_res = str(ms) + " ms: " self.logger.debug("Syringe pump data broadcast interval overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: @@ -316,7 +316,7 @@ else: str_res = str(position) + " encoder counts: " self.logger.debug("Syringe pump measured position overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: @@ -354,7 +354,7 @@ else: str_res = str(rate) + " mL/hr: " self.logger.debug("Syringe pump measured rate overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: @@ -392,7 +392,7 @@ else: str_res = str(volts) + " volts: " self.logger.debug("Syringe pump measured force overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: @@ -430,7 +430,7 @@ else: str_res = str(volts) + " volts: " self.logger.debug("Syringe pump measured syringe detection overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: @@ -468,7 +468,7 @@ else: str_res = str(volts) + " volts: " self.logger.debug("Syringe pump measured home overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: @@ -506,10 +506,9 @@ else: str_res = str(volume) + " mL: " self.logger.debug("Syringe pump measured volume overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: self.logger.debug("Timeout!!!!") return False - Index: dialin/protocols/__init__.py =================================================================== diff -u -r703231f83070516744deb638547eda07aa9d02a7 -ra505f80795643e531cb0b0120a38a7765cbf7b9c --- dialin/protocols/__init__.py (.../__init__.py) (revision 703231f83070516744deb638547eda07aa9d02a7) +++ dialin/protocols/__init__.py (.../__init__.py) (revision a505f80795643e531cb0b0120a38a7765cbf7b9c) @@ -1,4 +1,4 @@ from .CAN import DenaliCanMessenger from .CAN import DenaliChannels from .CAN import LongDenaliMessageBuilder -from .CAN import DenaliMessage \ No newline at end of file +from .CAN import DenaliMessage Index: dialin/ui/hd_simulator_alarms.py =================================================================== diff -u -r8ba3986f8fe9ef801c9f592a37f90933effbd34d -ra505f80795643e531cb0b0120a38a7765cbf7b9c --- dialin/ui/hd_simulator_alarms.py (.../hd_simulator_alarms.py) (revision 8ba3986f8fe9ef801c9f592a37f90933effbd34d) +++ dialin/ui/hd_simulator_alarms.py (.../hd_simulator_alarms.py) (revision a505f80795643e531cb0b0120a38a7765cbf7b9c) @@ -25,7 +25,7 @@ from ..utils.conversions import integer_to_bytearray, integer_to_bit_array, float_to_bytearray from ..common.msg_defs import MsgIds, MsgFieldPositions from ..common.alarm_defs import AlarmList -from dialin.common.prs_defs import Alarm_Data_Types +from dialin.common.prs_defs import AlarmDataTypes HIGH = 3 MED = 2 @@ -375,23 +375,23 @@ """ zero = integer_to_bytearray(0) payload = integer_to_bytearray(alarm_id) - if (field_descriptor_1 == Alarm_Data_Types.ALARM_DATA_TYPE_NONE): + if (field_descriptor_1 == AlarmDataTypes.ALARM_DATA_TYPE_NONE): payload += zero payload += zero payload += zero payload += zero else: - if (field_descriptor_1 == Alarm_Data_Types.ALARM_DATA_TYPE_F32): + if (field_descriptor_1 == AlarmDataTypes.ALARM_DATA_TYPE_F32): payload += integer_to_bytearray(field_descriptor_1) payload += float_to_bytearray(float(data_field_1)) else: # BOOL, S32, U32 payload += integer_to_bytearray(field_descriptor_1) payload += integer_to_bytearray(int(data_field_1)) - if (field_descriptor_2 == Alarm_Data_Types.ALARM_DATA_TYPE_NONE): + if (field_descriptor_2 == AlarmDataTypes.ALARM_DATA_TYPE_NONE): payload += zero payload += zero else: - if (field_descriptor_2 == Alarm_Data_Types.ALARM_DATA_TYPE_F32): + if (field_descriptor_2 == AlarmDataTypes.ALARM_DATA_TYPE_F32): payload += integer_to_bytearray(field_descriptor_2) payload += float_to_bytearray(float(data_field_2)) else: # BOOL, S32, U32 Index: dialin/utils/__init__.py =================================================================== diff -u -r12fc8d4dee213f861ee7645ce83c8b3a79896e10 -ra505f80795643e531cb0b0120a38a7765cbf7b9c --- dialin/utils/__init__.py (.../__init__.py) (revision 12fc8d4dee213f861ee7645ce83c8b3a79896e10) +++ dialin/utils/__init__.py (.../__init__.py) (revision a505f80795643e531cb0b0120a38a7765cbf7b9c) @@ -6,4 +6,4 @@ from .singleton import * from .data_logger import DataLogger YES = 1 -NO = 0 \ No newline at end of file +NO = 0 Index: dialin/utils/base.py =================================================================== diff -u -rbfb0c47181dc8a73d09825ab697a7799dd520417 -ra505f80795643e531cb0b0120a38a7765cbf7b9c --- dialin/utils/base.py (.../base.py) (revision bfb0c47181dc8a73d09825ab697a7799dd520417) +++ dialin/utils/base.py (.../base.py) (revision a505f80795643e531cb0b0120a38a7765cbf7b9c) @@ -84,7 +84,7 @@ self.logger = None self.configure_logging(self.log_filepath) - def log_level_enables_logging(self, log_level:str): + def log_level_enables_logging(self, log_level: str): """ Check if the log level string is a valid logging level @@ -102,7 +102,7 @@ """ return ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL", "CAN_ONLY", "PRINT_ONLY"] - def request_new_log_path(self, path:str): + def request_new_log_path(self, path: str): """ Clears the logger, gets a new log filepath and configures the logger to use it. @@ -141,7 +141,7 @@ return False # configure the logging - if self.logging_enabled and self.log_level not in ["PRINT_ONLY", "CAN_ONLY"]: + if self.logging_enabled and self.log_level not in ["PRINT_ONLY", "CAN_ONLY"]: numeric_level = getattr(logging, self.log_level.upper(), logging.ERROR) self.logger = logging.getLogger("Dialin") self.logger.setLevel(numeric_level) @@ -187,7 +187,7 @@ self.logger.critical(message) @staticmethod - def get_available_log_path(filepath:str): + def get_available_log_path(filepath: str): """ Gets an available log path from filepath appends integer to the end if file already exists. @@ -268,6 +268,7 @@ return _decorator + class DialinEnum(Enum): @classmethod @@ -284,4 +285,3 @@ @classmethod def has_value(cls, value): return value in cls._value2member_map_ -