Index: firmware/App/Controllers/Valves.c =================================================================== diff -u -r937362196a40d7d55b1b61e33f88c382184fbf2f -r8d27c30384b9bce99420fc0751d359c4b3871ea4 --- firmware/App/Controllers/Valves.c (.../Valves.c) (revision 937362196a40d7d55b1b61e33f88c382184fbf2f) +++ firmware/App/Controllers/Valves.c (.../Valves.c) (revision 8d27c30384b9bce99420fc0751d359c4b3871ea4) @@ -524,6 +524,48 @@ /*********************************************************************//** * @brief + * The setRecoveryValvesConfig function sets all recovery valves per + * recovery configuration from institutional record. + * @details \b Inputs: none + * @details \b Outputs: valve states + * @return none. + *************************************************************************/ +void setRecoveryValvesConfig( void ) +{ + // TODO define hdInstitutionalRecord and get the NVData when it's ready +// RECOVERY_STATE_T recoveryState = (RECOVERY_STATE_T)hdInstitutionalRecord.recoveryConfig; + RECOVERY_STATE_T recoveryState = MAX_RECOVERY; + + // Set all P33, P34 and P37 valves per recovery configuration + switch( recoveryState ) + { + case NO_RECOVERY: + setValveState( P33_VALV, VALVE_STATE_CLOSED ); + setValveState( P34_VALV, VALVE_STATE_CLOSED ); + setValveState( P37_VALV, VALVE_STATE_CLOSED ); + break; + + case MEDIUM_RECOVERY: + setValveState( P33_VALV, VALVE_STATE_OPEN ); + setValveState( P34_VALV, VALVE_STATE_CLOSED ); + setValveState( P37_VALV, VALVE_STATE_OPEN ); + break; + + case MAX_RECOVERY: + setValveState( P33_VALV, VALVE_STATE_OPEN ); + setValveState( P34_VALV, VALVE_STATE_CLOSED ); + setValveState( P37_VALV, VALVE_STATE_CLOSED ); + break; + + default: + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_FP_SOFTWARE_FAULT, FP_FAULT_ID_FP_INVALID_RECOVERY_VALVE_STATE, recoveryState ) + break; + } + +} + +/*********************************************************************//** + * @brief * The publishValvesStates function publishes DD valves states at the set interval. * @details \b Inputs: valvesStatesPublicationTimerCounter * @details \b Outputs: valvesStatesPublicationTimerCounter