########################################################################### # # Copyright (c) 2020-2024 Diality Inc. - All Rights Reserved. # # THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN # WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. # # @file td_defs.py # # @author (last) Vinayakam Mani # @date (last) 10-May-2024 # @author (original) Peter Lucia # @date (original) 04-Dec-2020 # ############################################################################ from enum import unique from ..utils.base import DialinEnum @unique class TDOpModes(DialinEnum): MODE_FAUL = 0 # Fault mode MODE_SERV = 1 # Service mode MODE_INIT = 2 # Initialization & POST mode MODE_STAN = 3 # Standby mode MODE_TPAR = 4 # Treatment Parameters mode MODE_PRET = 5 # Pre-Treatment mode MODE_TREA = 6 # Treatment mode MODE_POST = 7 # Post-Treatment mode MODE_NLEG = 8 # Not legal - an illegal mode transition occurred NUM_OF_MODES = 9 # Number of TD operation modes @unique class TDStandbyStates(DialinEnum): STANDBY_START_STATE = 0 # Start standby (home actuators). STANDBY_WAIT_FOR_TREATMENT_STATE = 1 # Wait for treatment. STANDBY_WAIT_FOR_DISINFECT_STATE = 2 # Wait for UI to send disinfect option. STANDBY_WAIT_FOR_DG_CLEANING_MODE_CMD_RESPONSE_STATE = 3 # Wait for DG cleaning mode command response state. STANDBY_WAIT_FOR_DG_CLEANING_MODE_TO_START_STATE = 4 # Wait for DG cleaning mode to start state. STANDBY_CLEANING_MODE_IN_PROGRESS_STATE = 5 # Cleaning mode in progress state. NUM_OF_STANDBY_STATES = 6 # Number of standby states (sub-modes). @unique class TDInitStates(DialinEnum): POST_STATE_START = 0 # Start initialize & POST mode state POST_STATE_FW_INTEGRITY = 1 # Run firmware integrity test state POST_STATE_RTC = 2 # Run RTC test state POST_STATE_NVDATAMGMT = 3 # Run NV Data Mgmt. test state POST_STATE_WATCHDOG = 4 # Run watchdog test state POST_STATE_SAFETY_SHUTDOWN = 5 # Run safety shutdown test state POST_STATE_BLOOD_FLOW = 6 # Run blood flow test state POST_STATE_DIALYSATE_INLET_FLOW = 7 # Run dialysate inlet flow test state POST_STATE_DIALYSATE_OUTLET_FLOW = 8 # Run dialysate outlet flow test state POST_STATE_BLOOD_LEAK = 9 # Run blood leak sensor test state POST_STATE_VALVES = 10 # Run valves test state POST_STATE_SYRINGE_PUMP = 11 # Run syringe pump test state POST_STATE_PRES_OCCL = 12 # Run pressure occlusion state POST_STATE_ALARM_AUDIO = 13 # Run alarm audio test state POST_STATE_ALARM_LAMP = 14 # Run alarm lamp test state POST_STATE_ACCELEROMETER = 15 # Run Accelerometer test state POST_STATE_TEMPERATURES = 16 # Run temperatures POST state POST_STATE_FANS = 17 # Run fans POST state POST_STATE_STUCK_BUTTON = 18 # Run stuck button test state POST_STATE_UI_POST = 19 # Check whether UI passed its POST tests POST_STATE_FW_COMPATIBILITY = 20 # Run firmware compatibility test state POST_STATE_FPGA = 21 # Run FPGA test state POST_STATE_COMPLETED = 22 # POST self-tests completed state POST_STATE_FAILED = 23 # POST self-tests failed state NUM_OF_POST_STATES = 24 # Number of initialize & POST mode states @unique class PreTreatmentSubModes(DialinEnum): TD_PRE_TREATMENT_WATER_SAMPLE_STATE = 0 # Water sample state TD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE = 1 # Consumable self-tests state TD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE = 2 # No cartridge self-tests state TD_PRE_TREATMENT_CART_INSTALL_STATE = 3 # Consumable and cartridge installation state TD_PRE_TREATMENT_SELF_TEST_DRY_STATE = 4 # Self-tests when the cartridge is dry state TD_PRE_TREATMENT_PRIME_STATE = 5 # Prime blood and dialysate circuits and run wet self-tests state TD_PRE_TREATMENT_RECIRCULATE_STATE = 6 # Re-circulate blood and dialysate circuits state TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE = 7 # Patient connection state NUM_OF_TD_PRE_TREATMENT_STATES = 8 # Number of pre-treatment mode states @unique class PostTreatmentStates(DialinEnum): TD_POST_TREATMENT_DRAIN_RESERVOIRS_STATE = 0 # Drain reservoirs state TD_POST_TREATMENT_PATIENT_DISCONNECTION_STATE = 1 # Patient disconnection state TD_POST_TREATMENT_DISPOSABLE_REMOVAL_STATE = 2 # Disposable removal state TD_POST_TREATMENT_VERIFY_STATE = 3 # Verify cartridge removed, syringe removed, and reservoirs drained state NUM_OF_TD_POST_TREATMENT_STATES = 4 # Number of post-treatment mode states @unique class PreTreatmentPrimeStates(DialinEnum): TD_PRIME_WAIT_FOR_USER_START_STATE = 0 # Wait for user to start prime state TD_PRIME_SALINE_SETUP_STATE = 1 # Saline setup state TD_PRIME_SALINE_PURGE_AIR_STATE = 2 # Saline purge air state TD_PRIME_SALINE_CIRC_BLOOD_CIRCUIT_STATE = 3 # Circulate blood circuit state TD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE = 4 # Wait for reservoir 1 fill complete TD_PRIME_DIALYSATE_DIALYZER_STATE = 5 # Dialysate dialyzer fluid path state TD_PRIME_SALINE_DIALYZER_SETUP_STATE = 6 # Saline dialyzer setup state TD_PRIME_SALINE_DIALYZER_STATE = 7 # Saline dialyzer fluid path state TD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE = 8 # Wait for reservoir 2 fill complete TD_PRIME_DIALYSATE_BYPASS_STATE = 9 # Dialysate bypass fluid path state TD_PRIME_WET_SELF_TESTS_STATE = 10 # Perform wet self-tests after priming complete TD_PRIME_PAUSE = 11 # Prime pause state, waits to be resumed TD_PRIME_COMPLETE = 12 # Prime complete state NUM_OF_TD_PRIME_STATES = 13 # Number of prime sub-mode states @unique class TDFaultStates(DialinEnum): TD_FAULT_STATE_START = 0 # Start fault state TD_FAULT_STATE_RUN_NV_POSTS = 1 # TD fault run NV posts state TD_FAULT_STATE_COMPLETE = 2 # TD fault run complete state NUM_OF_TD_FAULT_STATES = 3 # Number of fault mode states @unique class TDEventList(DialinEnum): TD_EVENT_STARTUP = 0 # TD startup event TD_EVENT_OP_MODE_CHANGE = 1 # TD Op mode change event TD_EVENT_SUB_MODE_CHANGE = 2 # TD Op sub-mode change event TD_EVENT_DRY_SELF_TEST_CARTRIDGE_RESULT = 3 # TD dry self test cartridge result TD_EVENT_DRY_SELF_TEST_PRESSURE_RESULT = 4 # TD dry self test pressure result TD_EVENT_WET_SELF_TEST_DISPLACEMENT_RESULT = 5 # TD wet self test displacement result TD_EVENT_CPU_RAM_ERROR_STATUS = 6 # TD CPU RAM error status TD_EVENT_CAL_RECORD_UPDATE = 7 # TD new calibration record updated TD_EVENT_SYSTEM_RECORD_UPDATE = 8 # TD new system record has been updated TD_EVENT_SERVICE_UPDATE = 9 # TD new service record has been updated TD_EVENT_USAGE_INFO_UPDATE = 10 # TD new usage information has been updated TD_EVENT_SW_CONFIG_UPDATE = 11 # TD new software configuration has been updated TD_EVENT_BUTTON = 12 # TD button pressed/released TD_EVENT_SAFETY_LINE = 13 # TD safety line pulled/released TD_EVENT_RSRVR_1_LOAD_CELL_START_VALUES = 14 # TD reservoir 1 load cells start values TD_EVENT_RSRVR_1_LOAD_CELL_END_VALUES = 15 # TD reservoir 2 load cells end values TD_EVENT_RSRVR_2_LOAD_CELL_START_VALUES = 16 # TD reservoir 2 load cells start values TD_EVENT_RSRVR_2_LOAD_CELL_END_VALUES = 17 # TD reservoir 2 load cells end values TD_EVENT_SUB_STATE_CHANGE = 18 # TD Op sub-state change event TD_EVENT_SYRINGE_PUMP_STATE = 19 # TD syringe pump state change event TD_EVENT_OCCLUSION_BASELINE = 20 # TD event occlusion baseline event TD_EVENT_RSRVR_UF_VOLUME_AND_TIME = 21 # TD ultrafiltration volume and time for a reservoir use TD_EVENT_RSRVR_UF_RATE = 22 # TD ultrafiltration measured and expected rates TD_EVENT_OPERATION_STATUS = 23 # TD operation status event. TD_EVENT_AIR_TRAP_FILL = 24 # TD initiated an air trap fill (opened VBT briefly). TD_EVENT_AIR_PUMP_ON_OFF = 25 # TD turned air pump on or off. TD_EVENT_BLOOD_LEAK_SELF_TEST_RESULT = 26 # TD Blood leak self test result. TD_EVENT_BLOOD_LEAK_NUM_OF_SET_POINT_CHECK_FAILURES = 27 # TD blood leak number of setpoint check failures TD_EVENT_DRY_SELF_TEST_PRESSURE_DECAY_WAIT_PERIOD = 28 # TD dry self test pressure decay wait period TD_EVENT_INSTIT_RECORD_UPDATE = 29 # TD new institutional record has been updated. TD_EVENT_PARTIAL_OCCLUSION_BASELINE = 30 # TD event partial occlusion baseline event NUM_OF_EVENT_IDS = 31 # Total number of TD events @unique class TDEventDataType(DialinEnum): EVENT_DATA_TYPE_NONE = 0 EVENT_DATA_TYPE_U32 = 1 EVENT_DATA_TYPE_S32 = 2 EVENT_DATA_TYPE_F32 = 3 EVENT_DATA_TYPE_BOOL = 4 NUM_OF_EVENT_DATA_TYPES = 5