Index: HDDefs.h =================================================================== diff -u -r1d56f5c3cc978106f56a3d8c0c3f4098ca7934ec -rce980a6bd71f42ff9ba11b83ca4710963423b7e4 --- HDDefs.h (.../HDDefs.h) (revision 1d56f5c3cc978106f56a3d8c0c3f4098ca7934ec) +++ HDDefs.h (.../HDDefs.h) (revision ce980a6bd71f42ff9ba11b83ca4710963423b7e4) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2019-2022 Diality Inc. - All Rights Reserved. +* Copyright (c) 2020-2022 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 HDDefs.h * -* @author (last) Behrouz NematiPour -* @date (last) 04-Jan-2022 +* @author (last) Dara Navaei +* @date (last) 23-Mar-2022 * * @author (original) Sean Nash * @date (original) 29-May-2020 @@ -54,24 +54,28 @@ POST_STATE_START = 0, ///< Start initialize & POST mode state POST_STATE_FW_INTEGRITY, ///< Run firmware integrity test state POST_STATE_AC, ///< Check HD has AC power - power off if not - POST_STATE_WATCHDOG, ///< Run watchdog test state + POST_STATE_WATCHDOG, ///< Run watchdog test state POST_STATE_SAFETY_SHUTDOWN, ///< Run safety shutdown test state - POST_STATE_RTC, ///< Run RTC test state - POST_STATE_NVDATAMGMT, ///< Run NV Data Mgmt. test state - POST_STATE_BLOOD_FLOW, ///< Run blood flow test state - POST_STATE_DIALYSATE_FLOW, ///< Run dialysate flow test state - POST_STATE_BLOOD_LEAK, ///< Run blood leak sensor test state + POST_STATE_RTC, ///< Run RTC test state + POST_STATE_NVDATAMGMT, ///< Run NV Data Mgmt. test state + POST_STATE_BLOOD_FLOW, ///< Run blood flow test state + POST_STATE_DIALYSATE_INLET_FLOW, ///< Run dialysate inlet flow test state + POST_STATE_DIALYSATE_OUTLET_FLOW, ///< Run dialysate outlet flow test state + POST_STATE_BLOOD_LEAK, ///< Run blood leak sensor test state POST_STATE_VALVES, ///< Run valves test state POST_STATE_SYRINGE_PUMP, ///< Run syringe pump test state - POST_STATE_ALARM_AUDIO, ///< Run alarm audio test state + POST_STATE_PRES_OCCL, ///< Run pressure occlusion state + POST_STATE_ALARM_AUDIO, ///< Run alarm audio test state POST_STATE_ALARM_LAMP, ///< Run alarm lamp test state POST_STATE_ACCELEROMETER, ///< Run Accelerometer test state + POST_STATE_TEMPERATURES, ///< Run temperatures POST state + POST_STATE_FANS, ///< Run fans POST state POST_STATE_STUCK_BUTTON, ///< Run stuck button test state POST_STATE_UI_POST, ///< Check whether UI passed its POST tests POST_STATE_FW_COMPATIBILITY, ///< Run firmware compatibility test state POST_STATE_FPGA, ///< Run FPGA test state - POST_STATE_COMPLETED, ///< POST self-tests completed state - POST_STATE_FAILED, ///< POST self-tests failed state + POST_STATE_COMPLETED, ///< POST self-tests completed state + POST_STATE_FAILED, ///< POST self-tests failed state NUM_OF_POST_STATES ///< Number of initialize & POST mode states }; typedef enum HD_POST_States HD_POST_STATE_T; ///< Type for HD POST states enumeration @@ -101,15 +105,24 @@ /// Sub-mode states while in standby mode enum HD_Standby_States { - STANDBY_START_STATE = 0, ///< Start standby - STANDBY_WAIT_FOR_TREATMENT_STATE, ///< Wait for treatment - STANDBY_WAIT_FOR_DISINFECT_STATE, ///< Wait for UI to send disinfect option - STANDBY_DG_FLUSH_IN_PROGRESS_STATE, ///< DG flush operation is in progress - STANDBY_DG_HEAT_DISINFECT_IN_PROGRESS_STATE, ///< DG heat disinfect operation is in progress - STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE, ///< DG chemical disinfect operation is in progress - NUM_OF_STANDBY_STATES ///< Number of standby states (sub-modes) + STANDBY_START_STATE = 0, ///< Start standby. + STANDBY_WAIT_FOR_TREATMENT_STATE, ///< Wait for treatment. + STANDBY_WAIT_FOR_DISINFECT_STATE, ///< Wait for UI to send disinfect option. + + STANDBY_WAIT_FOR_DG_FLUSH_CMD_RESPONSE_STATE, ///< Wait for DG flush command response. + STANDBY_WAIT_FOR_DG_FLUSH_TO_START_STATE, ///< Wait for DG flush to start. + STANDBY_DG_FLUSH_IN_PROGRESS_STATE, ///< DG flush operation is in progress + + STANDBY_WAIT_FOR_DG_HEAT_DISINFECT_CMD_RESPONSE_STATE, ///< Wait for DG heat disinfect command response. + STANDBY_WAIT_FOR_DG_HEAT_DISINFECT_TO_START_STATE, ///< Wait for DG heat disinfect to start. + STANDBY_DG_HEAT_DISINFECT_IN_PROGRESS_STATE, ///< DG heat disinfect operation is in progress. + + STANDBY_WAIT_FOR_DG_CHEM_DISINFECT_CMD_RESPONSE_STATE, ///< Wait for DG chemical disinfect command response. + STANDBY_WAIT_FOR_DG_CHEM_DISINFECT_TO_START_STATE, ///< Wait for DG chemical disinfect to start. + STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE, ///< DG chemical disinfect operation is in progress + NUM_OF_STANDBY_STATES ///< Number of standby states (sub-modes) }; -typedef enum HD_Standby_States HD_STANDBY_STATE_T; ///< Type for HD standby states enumeration +typedef enum HD_Standby_States HD_STANDBY_STATE_T; ///< Type for HD standby states enumeration /**@}*/ @@ -212,10 +225,7 @@ { NO_CART_SELF_TESTS_START_STATE = 0, ///< No cartridge self-tests starting state NO_CART_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE, ///< Wait for door to be closed before running self-tests - NO_CART_SELF_TESTS_OCCLUSION_SENSORS_STATE, ///< No cartridge occlusion sensors self-test state - NO_CART_SELF_TESTS_BLOOD_FLOW_METERS_STATE, ///< No cartridge blood flow meter self-test state - NO_CART_SELF_TESTS_DIALYSATE_FLOW_METERS_STATE, ///< No cartridge dialysate flow meter self-test state - NO_CART_SELF_TESTS_BOARD_TEMPERATURE_STATE, ///< No cartridge board temperature self-test state + NO_CART_SELF_TESTS_PRESSURE_CHECKS_STATE, ///< No cartridge pressure sensors self-test state NO_CART_SELF_TESTS_HOME_VALVES_STATE, ///< No cartridge home valves state NO_CART_SELF_TESTS_HOME_SYRINGE_PUMP_STATE, ///< No cartridge home syringe pump state NO_CART_SELF_TESTS_PUMPS_STATE, ///< No cartridge self-test for blood pump, dialysate in pump, dialysate out pump state @@ -238,12 +248,34 @@ DRY_SELF_TESTS_PRESSURE_SENSORS_STATE, ///< Pressure sensors verify pressure readings state DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE, ///< Pressure sensors verify normal pressure readings state DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE, ///< Prime syringe pump state + DRY_SELF_TESTS_SYRINGE_PUMP_OCCLUSION_DETECTION_STATE, ///< Occlusion detection state DRY_SELF_TESTS_STOPPED_STATE, ///< Dry self-test stopped state DRY_SELF_TESTS_COMPLETE_STATE, ///< Dry self-test complete state NUM_OF_DRY_SELF_TESTS_STATES ///< Number of dry self-tests states }; /// Type for dry self-tests enumeration. typedef enum HD_Pre_Treatment_Dry_Self_Tests_States DRY_SELF_TESTS_STATE_T; + +/// Wet self-tests state machine. +enum Wet_Self_Tests_States +{ + WET_SELF_TESTS_START_STATE = 0, ///< Wet self-tests starting state. + WET_SELF_TESTS_SETUP_STATE, ///< Setup reservoirs for wet self-tests. + WET_SELF_TESTS_BUBBLES_STATE, ///< Wet self-test air bubble detectors state. + WET_SELF_TESTS_PRIME_CHECK_STATE, ///< Prime check wet self-tests state, checks for primed patient lines. + WET_SELF_TESTS_BLOOD_LEAK_DETECTOR_STATE, ///< Blood leak detector self-test state. + WET_SELF_TESTS_FIRST_DISPLACEMENT_SETUP_STATE, ///< Setup valve and start dialysate pump for first displacement. + WET_SELF_TESTS_FIRST_DISPLACEMENT_STATE, ///< Fill reservoir 2 with 100 mL of dialysate from reservoir 1 state. + WET_SELF_TESTS_FIRST_DISPLACEMENT_VERIFY_STATE, ///< After first displacement completed verify state. + WET_SELF_TESTS_SECOND_DISPLACEMENT_SETUP_STATE, ///< Setup valve and start dialysate pump for second displacement. + WET_SELF_TESTS_SECOND_DISPLACEMENT_STATE, ///< Fill reservoir 1 with 300 mL of dialysate from reservoir 2 state. + WET_SELF_TESTS_SECOND_DISPLACEMENT_VERIFY_STATE, ///< After first displacement completed verify state. + WET_SELF_TESTS_STOPPED_STATE, ///< Wet self-test stopped state. + WET_SELF_TESTS_COMPLETE_STATE, ///< Wet self-test complete state. + NUM_OF_WET_SELF_TESTS_STATES ///< Number of wet self-tests states. +}; +/// Type for wet self-tests enumeration. +typedef enum Wet_Self_Tests_States WET_SELF_TESTS_STATE_T; /**@}*/ @@ -449,8 +481,10 @@ /// Enumeration of treatment stop sub-mode states. enum Treatment_Stop_States { - TREATMENT_STOP_RECIRC_STATE = 0, ///< Dialysate re-circulation state of the treatment stop sub-mode state machine - TREATMENT_STOP_NO_RECIRC_STATE, ///< No dialysate re-circulation state of the treatment stop sub-mode state machine + TREATMENT_STOP_RECIRC_STATE = 0, ///< Dialysate and Blood re-circulation state of the treatment stop sub-mode state machine + TREATMENT_STOP_RECIRC_DIALYSATE_ONLY_STATE, ///< Re-circulate Dialysate only state of the treatment re-circulate sub-mode state machine + TREATMENT_STOP_RECIRC_BLOOD_ONLY_STATE, ///< Re-circulate Blood only state of the treatment re-circulate sub-mode state machine + TREATMENT_STOP_NO_RECIRC_STATE, ///< No re-circulation state of the treatment stop sub-mode state machine NUM_OF_TREATMENT_STOP_STATES ///< Number of treatment stop sub-mode states }; /// Type for treatment stop states enumeration. @@ -519,7 +553,7 @@ /// Enumeration of treatment re-circulation sub-mode states. enum Treatment_Recirc_States { - TREATMENT_RECIRC_RECIRC_STATE = 0, ///< Re-circulate state of the treatment re-circulate sub-mode state machine + TREATMENT_RECIRC_RECIRC_STATE = 0, ///< Re-circulate Dialysate state of the treatment re-circulate sub-mode state machine TREATMENT_RECIRC_STOPPED_STATE, ///< Stopped state of the treatment re-circulate sub-mode state machine NUM_OF_TREATMENT_RECIRC_STATES ///< Number of treatment re-circulate sub-mode states }; @@ -657,12 +691,17 @@ DIALYSATE_FLOW_RATE_CHANGE_EVENT, ///< Dialysate flow rate change event TREATMENT_DURATION_CHANGE_EVENT, ///< Treatment duration change event UF_VOLUME_CHANGE_EVENT, ///< Ultrafiltration volume change event - UF_PAUSE_RESUME_EVENT, ///< Ultrafiltration pause/resume event + UF_RATE_CHANGE_EVENT, ///< Ultrafiltration rate change event + UF_START_RESUME_EVENT, ///< Ultrafiltration start or resume event + UF_PAUSE_EVENT, ///< Ultrafiltration pause event ARTERIAL_PRESSURE_LOWER_LIMIT_CHANGE_EVENT, ///< Arterial pressure lower limit change event ARTERIAL_PRESSURE_UPPER_LIMIT_CHANGE_EVENT, ///< Arterial pressure upper limit change event VENOUS_PRESSURE_LOWER_LIMIT_CHANGE_EVENT, ///< Venous pressure lower limit change event VENOUS_PRESSURE_UPPER_LIMIT_CHANGE_EVENT, ///< Venous pressure upper limit change event - HEPARIN_PAUSE_RESUME_EVENT, ///< Heparin pause/resume event + HEPARIN_BOLUS_START_EVENT, ///< Heparin bolus start event + HEPARIN_BOLUS_END_EVENT, ///< Heparin bolus end event + HEPARIN_START_RESUME_EVENT, ///< Heparin start or resume event + HEPARIN_STOP_PAUSE_EVENT, ///< Heparin stop or pause event SALINE_BOLUSES_CHANGE_EVENT, ///< Saline boluses change event MID_TREATMENT_RINSE_BACK_EVENT, ///< Mid treatment rinse-back event NUM_OF_TX_EVENT_IDS ///< Total number of treatment events @@ -686,6 +725,17 @@ }; typedef enum HD_Event_List HD_EVENT_ID_T; ///< Type for HD event list enumeration +// **** Common Const **** + +#if !defined TASK_GENERAL_INTERVAL +#include "TaskGeneral.h" +#endif +/// Maximum time in this mode before blood sitting alarm given (in general task intervals). +static const U32 MAX_TIME_BLOOD_SITTING = ( ( 5 * SEC_PER_MIN * MS_PER_SECOND ) / TASK_GENERAL_INTERVAL ); +/// Maximum time in this mode before blood sitting warning given (in general task intervals). +static const U32 WARN_TIME_BLOOD_SITTING = ( ( 4 * SEC_PER_MIN * MS_PER_SECOND ) / TASK_GENERAL_INTERVAL ); + + /**@}*/ #endif