/************************************************************************** * * Copyright (c) 2019-2023 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 ModeService.c * * @author (last) Dara Navaei * @date (last) 04-May-2023 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 * ***************************************************************************/ #include "AirPump.h" #include "BloodFlow.h" #include "Buttons.h" #include "DGInterface.h" #include "DialInFlow.h" #include "DialOutFlow.h" #include "ModeService.h" #include "NVDataMgmt.h" #include "OperationModes.h" #include "Switches.h" #include "SyringePump.h" #include "Valves.h" /** * @addtogroup HDServiceMode * @{ */ // ********** private data ********** // ********** private function prototypes ********** /*********************************************************************//** * @brief * The initServiceMode function initializes the Service Mode module. * @details Inputs: none * @details Outputs: Service Mode module initialized. * @return none *************************************************************************/ void initServiceMode( void ) { } /*********************************************************************//** * @brief * The transitionToServiceMode function prepares for transition to service mode. * @details Inputs: none * @details Outputs: none * @return initial state *************************************************************************/ U32 transitionToServiceMode( void ) { doorClosedRequired( FALSE, FALSE ); syringeDetectionRequired( FALSE ); setCurrentSubState( NO_SUB_STATE ); // Set user alarm recovery actions allowed in this mode setAlarmUserActionEnabled( ALARM_USER_ACTION_RESUME, FALSE ); setAlarmUserActionEnabled( ALARM_USER_ACTION_RINSEBACK, FALSE ); setAlarmUserActionEnabled( ALARM_USER_ACTION_END_TREATMENT, FALSE ); // Start out with all actuators off in service mode (exception for valves which will be in insert position to allow cartridge insert) cmdStopDGTrimmerHeater(); stopSyringePump(); signalBloodPumpHardStop(); signalDialInPumpHardStop(); signalDialOutPumpHardStop(); setAirPumpState( AIR_PUMP_STATE_OFF ); setValveAirTrap( STATE_CLOSED ); setValvePosition( VDI, VALVE_POSITION_A_INSERT_EJECT ); setValvePosition( VDO, VALVE_POSITION_A_INSERT_EJECT ); setValvePosition( VBA, VALVE_POSITION_A_INSERT_EJECT ); setValvePosition( VBV, VALVE_POSITION_A_INSERT_EJECT ); return 0; } /*********************************************************************//** * @brief * The execServiceMode function executes the Service Mode state machine. * @details Inputs: none * @details Outputs: none * @return current state (sub-mode) *************************************************************************/ U32 execServiceMode( void ) { BOOL stop = isStopButtonPressed(); if ( TRUE == stop ) { // Ignore stop button in this mode. } return 0; // TODO - return current state } /*********************************************************************//** * @brief * The signalAlarmActionToServiceMode function executes the given alarm action * as appropriate while in Service Mode. * @details Inputs: none * @details Outputs: given alarm action executed * @param action ID of alarm action to execute * @return none *************************************************************************/ void signalAlarmActionToServiceMode( ALARM_ACTION_T action ) { // TODO - implement } /**@}*/