Index: firmware/App/Modes/ModeService.c =================================================================== diff -u -r0fce4283f8f28da957f9e82ec121efbc6ee55241 -rcd5be724d5a3ba7457e761191d82f278654d7f5c --- firmware/App/Modes/ModeService.c (.../ModeService.c) (revision 0fce4283f8f28da957f9e82ec121efbc6ee55241) +++ firmware/App/Modes/ModeService.c (.../ModeService.c) (revision cd5be724d5a3ba7457e761191d82f278654d7f5c) @@ -1,22 +1,32 @@ /************************************************************************** * -* Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. +* Copyright (c) 2019-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 ModeService.c +* @file ModeService.c * -* @author (last) Sean Nash -* @date (last) 24-Sep-2020 +* @author (last) Dara Navaei +* @date (last) 17-Oct-2023 * -* @author (original) Dara Navaei -* @date (original) 05-Nov-2019 +* @author (original) Dara Navaei +* @date (original) 05-Nov-2019 * ***************************************************************************/ -#include "OperationModes.h" +#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 @@ -43,15 +53,36 @@ * The transitionToServiceMode function prepares for transition to service mode. * @details Inputs: none * @details Outputs: none - * @return none + * @return initial state *************************************************************************/ -void transitionToServiceMode( void ) +U32 transitionToServiceMode( void ) { - // set user alarm recovery actions allowed in this mode - setAlarmUserActionEnabled( ALARM_USER_ACTION_RESUME, TRUE ); + initServiceMode(); + + 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; } /*********************************************************************//** @@ -63,7 +94,13 @@ *************************************************************************/ U32 execServiceMode( void ) { + BOOL stop = isStopButtonPressed(); + if ( TRUE == stop ) + { + // Ignore stop button in this mode. + } + return 0; // TODO - return current state } @@ -78,7 +115,7 @@ *************************************************************************/ void signalAlarmActionToServiceMode( ALARM_ACTION_T action ) { - + // TODO - implement } /**@}*/