Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r8128289dea98878d92bf170fde1c7145f858baa5 -r766708fceb0bdf1af8c7897df29d4f5036bfd3db --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 8128289dea98878d92bf170fde1c7145f858baa5) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 766708fceb0bdf1af8c7897df29d4f5036bfd3db) @@ -30,10 +30,6 @@ #ifdef EMC_TEST_BUILD // TODO - test code #include "FPGA.h" #endif -#ifdef RM46_EVAL_BOARD_TARGET - #include "Timers.h" - static U32 start; -#endif /** * @addtogroup HDStandbyMode @@ -73,18 +69,20 @@ *************************************************************************/ void transitionToStandbyMode( void ) { - // re-initialize when transitioning to standby mode + // Re-initialize when transitioning to standby mode initStandbyMode(); initDGInterface(); resetAirTrap(); - // pumps should be off + // 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 ); + + // Pumps should be off setBloodPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); setDialInPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); setDialOutPumpTargetRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); -#ifdef RM46_EVAL_BOARD_TARGET - start = getMSTimerCount(); -#endif } /*********************************************************************//** @@ -103,11 +101,16 @@ BOOL stop = isStopButtonPressed(); #ifndef RUN_WITHOUT_DG - // state machine to get DG to prep a reservoir so we can start a treatment + if ( TRUE == stop ) + { + activateAlarmNoData( ALARM_ID_TREATMENT_STOPPED_BY_USER ); + } + + // State machine to get DG to prep a reservoir so we can start a treatment switch ( currentStandbyState ) { case STANDBY_START_STATE: - // temporary test code - TODO - remove later + // Temporary test code - TODO - remove later if ( TRUE == isDGCommunicating() ) { currentStandbyState = STANDBY_WAIT_FOR_TREATMENT_STATE; @@ -129,12 +132,12 @@ break; } #else - // state machine to get DG to prep a reservoir so we can start a treatment + // State machine to get DG to prep a reservoir so we can start a treatment switch ( currentStandbyState ) { case STANDBY_START_STATE: currentStandbyState = STANDBY_WAIT_FOR_TREATMENT_STATE; - // temporary test code - TODO - remove later + // Temporary test code - TODO - remove later homeBloodPump(); homeDialInPump(); homeDialOutPump(); @@ -164,33 +167,33 @@ toggle = INC_WRAP( toggle, 0, 3 ); switch ( toggle ) { - case 0: // pumps and valves off + case 0: // Pumps and valves off setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); setValvePosition( VDO, VALVE_POSITION_C_CLOSE ); setValvePosition( VBA, VALVE_POSITION_C_CLOSE ); setValvePosition( VBV, VALVE_POSITION_C_CLOSE ); break; - case 1: // pumps on, valves off + case 1: // Pumps on, valves off setBloodPumpTargetFlowRate( 200, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); setDialInPumpTargetFlowRate( 500, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); setDialOutPumpTargetRate( 500, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); break; - case 2: // pumps on, valves on + case 2: // Pumps on, valves on setValvePosition( VDI, VALVE_POSITION_B_OPEN ); setValvePosition( VDO, VALVE_POSITION_B_OPEN ); setValvePosition( VBA, VALVE_POSITION_B_OPEN ); setValvePosition( VBV, VALVE_POSITION_B_OPEN ); break; - case 3: // pumps off, valves on + case 3: // Pumps off, valves on setBloodPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); setDialInPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); setDialOutPumpTargetRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); break; - default: // shouldn't get here, reset if we do + default: // Should not get here, reset if we do toggle = 0; setBloodPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); setDialInPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); @@ -216,13 +219,6 @@ } #endif -#ifdef RM46_EVAL_BOARD_TARGET - if ( TRUE == didTimeout( start, 5000U ) ) - { - requestNewOperationMode( MODE_TPAR ); - } -#endif - return currentStandbyState; } @@ -248,4 +244,18 @@ return result; } +/*********************************************************************//** + * @brief + * The signalAlarmActionToStandbyMode function executes the given alarm action + * as appropriate while in Standby Mode. + * @details Inputs: none + * @details Outputs: given alarm action executed + * @param action ID of alarm action to execute + * @return none + *************************************************************************/ +void signalAlarmActionToStandbyMode( ALARM_ACTION_T action ) +{ + // TODO - implement +} + /**@}*/