Index: firmware/App/Modes/ModeFault.c =================================================================== diff -u -r04334ed8d1e927939718b1d62fb01afef0a2b9a9 -ra60ec05d359c0d3f014015e9080b6dbcef0fea28 --- firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision 04334ed8d1e927939718b1d62fb01afef0a2b9a9) +++ firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision a60ec05d359c0d3f014015e9080b6dbcef0fea28) @@ -15,9 +15,20 @@ **************************************************************************/ #include "AlarmLamp.h" +#ifdef EMC_TEST_BUILD // TODO - test code +#include "BloodFlow.h" +#include "Buttons.h" +#include "DialInFlow.h" +#include "DialOutFlow.h" +#endif #include "OperationModes.h" #include "ModeFault.h" + /** + * @addtogroup HDFaultMode + * @{ + */ + // ********** private data ********** // ********** private function prototypes ********** @@ -55,9 +66,38 @@ * Inputs : none * Outputs : * @param none - * @return none + * @return current state (sub-mode) *************************************************************************/ -void execFaultMode( void ) +U32 execFaultMode( void ) { +#ifdef EMC_TEST_BUILD // TODO - test code + static BOOL toggle = FALSE; + static BOOL button_state = FALSE; + BOOL stop = isStopButtonPressed(); + + if ( TRUE == stop ) + { + if ( stop != button_state ) + { + toggle = ( toggle == TRUE ? FALSE : TRUE ); + if ( TRUE == toggle ) + { + setBloodPumpTargetFlowRate( 500, 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 ); + } + else + { + 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 ); + } + } + } + button_state = stop; +#endif + + return 0; // TODO - return current state } +/**@}*/