Index: firmware/App/Modes/ModeService.c =================================================================== diff -u -r911f6526ec3ba03ba0131681c7fb371c0abda6bb -rcd5be724d5a3ba7457e761191d82f278654d7f5c --- firmware/App/Modes/ModeService.c (.../ModeService.c) (revision 911f6526ec3ba03ba0131681c7fb371c0abda6bb) +++ 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,14 +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 ) { + 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; } /*********************************************************************//** @@ -62,6 +94,13 @@ *************************************************************************/ U32 execServiceMode( void ) { + BOOL stop = isStopButtonPressed(); + + if ( TRUE == stop ) + { + // Ignore stop button in this mode. + } + return 0; // TODO - return current state }