Index: firmware/App/Modes/ModeService.c =================================================================== diff -u -r050984357442e3ee0d6d5b21e274c1306643c598 -rcd5be724d5a3ba7457e761191d82f278654d7f5c --- firmware/App/Modes/ModeService.c (.../ModeService.c) (revision 050984357442e3ee0d6d5b21e274c1306643c598) +++ firmware/App/Modes/ModeService.c (.../ModeService.c) (revision cd5be724d5a3ba7457e761191d82f278654d7f5c) @@ -1,23 +1,32 @@ /************************************************************************** * -* Copyright (c) 2019-2022 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 * * @author (last) Dara Navaei -* @date (last) 12-Nov-2021 +* @date (last) 17-Oct-2023 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 * ***************************************************************************/ +#include "AirPump.h" +#include "BloodFlow.h" #include "Buttons.h" -#include "OperationModes.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 @@ -48,11 +57,31 @@ *************************************************************************/ U32 transitionToServiceMode( void ) { + 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; }