Index: firmware/App/Services/Reservoirs.c =================================================================== diff -u -r3e7b064885d99793bb56d940bd613555b1cdbdfa -ra52e41cc2219362d433149ca034908c8763d8378 --- firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision 3e7b064885d99793bb56d940bd613555b1cdbdfa) +++ firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision a52e41cc2219362d433149ca034908c8763d8378) @@ -21,6 +21,7 @@ #include "OperationModes.h" #include "SystemCommMessages.h" #include "TaskGeneral.h" +#include "Valves.h" #include "Reservoirs.h" /** @@ -61,7 +62,11 @@ *************************************************************************/ void initReservoirs( void ) { - activeReservoir.data = RESERVOIR_1; + activeReservoir.data = RESERVOIR_2; + setValveState( VRF, VALVE_STATE_R1_C_TO_NC ); + setValveState( VRD, VALVE_STATE_R1_C_TO_NC ); + setValveState( VRO, VALVE_STATE_R2_C_TO_NC ); + setValveState( VRI, VALVE_STATE_R2_C_TO_NC ); fillVolumeTargetMl.data = DEFAULT_FILL_VOLUME_ML; drainVolumeTargetMl.data = DEFAULT_DRAIN_VOLUME_ML; } @@ -104,11 +109,29 @@ // switch reservoir command only valid in re-circulate mode if ( DG_MODE_CIRC == getCurrentOperationMode() ) { - // validate parameters - if ( resID < NUM_OF_RESERVOIRS ) + switch ( resID ) { - activeReservoir.data = (U32)resID; - result = TRUE; + case RESERVOIR_1: + activeReservoir.data = (U32)resID; + result = TRUE; + setValveState( VRF, VALVE_STATE_R2_C_TO_NO ); + setValveState( VRD, VALVE_STATE_R2_C_TO_NO ); + setValveState( VRO, VALVE_STATE_R1_C_TO_NO ); + setValveState( VRI, VALVE_STATE_R1_C_TO_NO ); + break; + + case RESERVOIR_2: + activeReservoir.data = (U32)resID; + result = TRUE; + setValveState( VRF, VALVE_STATE_R1_C_TO_NC ); + setValveState( VRD, VALVE_STATE_R1_C_TO_NC ); + setValveState( VRO, VALVE_STATE_R2_C_TO_NC ); + setValveState( VRI, VALVE_STATE_R2_C_TO_NC ); + break; + + default: + // invalid reservoir given - cmd will be NAK'd w/ false result. + break; } }