Index: firmware/App/Controllers/Valves.c =================================================================== diff -u -r937362196a40d7d55b1b61e33f88c382184fbf2f -r9577444556a75d90a90331288eb8aeeedc4e12b1 --- firmware/App/Controllers/Valves.c (.../Valves.c) (revision 937362196a40d7d55b1b61e33f88c382184fbf2f) +++ firmware/App/Controllers/Valves.c (.../Valves.c) (revision 9577444556a75d90a90331288eb8aeeedc4e12b1) @@ -634,14 +634,31 @@ DD_BC_VALVE_OVERRIDE_PAYLOAD_T payload; DD_VALVES_T valve; BOOL result = FALSE; - + OVERRIDE_TYPE_T ovType = OVERRIDE_INVALID; memcpy( (U08*)(&payload), message->payload, sizeof( DD_BC_VALVE_OVERRIDE_PAYLOAD_T ) ); - for ( valve = FIRST_BC_VALVE; valve <= LAST_BC_VALVE; valve++ ) + ovType = ( TRUE == payload.reset ? OVERRIDE_RESET_OVERRIDE : OVERRIDE_OVERRIDE ); + + // Verify tester has logged in with f/w and override type is valid + if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) { - U32 mask = 0x1 << (valve - FIRST_BC_VALVE); - VALVE_STATE_NAMES_T pos = ( ( ( payload.valveStatesBits & mask ) != 0 ) ? VALVE_STATE_OPEN : VALVE_STATE_CLOSED ); + for ( valve = FIRST_BC_VALVE; valve <= LAST_BC_VALVE; valve++ ) + { + U32 mask = ( 0x1 << (valve - FIRST_BC_VALVE) ); + VALVE_STATE_NAMES_T pos = ( ( ( payload.valveStatesBits & mask ) != 0 ) ? VALVE_STATE_CLOSED : VALVE_STATE_OPEN); - result = setValveState( valve, pos ); + if ( OVERRIDE_OVERRIDE == ovType ) + { + result = TRUE; + valveStates[ valve ].ovData = pos; + valveStates[ valve ].override = OVERRIDE_KEY; + } + else + { + result = TRUE; + valveStates[ valve ].override = OVERRIDE_RESET; + valveStates[ valve ].ovData = valveStates[ valve ].ovInitData; + } + } } return result; Index: firmware/App/Controllers/Valves.h =================================================================== diff -u -r830213bc6dcc1a684610caf78c79d55f2cb41e93 -r9577444556a75d90a90331288eb8aeeedc4e12b1 --- firmware/App/Controllers/Valves.h (.../Valves.h) (revision 830213bc6dcc1a684610caf78c79d55f2cb41e93) +++ firmware/App/Controllers/Valves.h (.../Valves.h) (revision 9577444556a75d90a90331288eb8aeeedc4e12b1) @@ -63,6 +63,7 @@ /// Balancing chamber valve states override structure typedef struct { + BOOL reset; ///< Reset (bool) U32 valveStatesBits; ///< Bits indicating whether balancing chamber valve states should be open(1) or closed(0). } DD_BC_VALVE_OVERRIDE_PAYLOAD_T; #pragma pack(pop)