Index: firmware/App/Controllers/PermeateTank.c =================================================================== diff -u -rfd21f03d28eec499fb5c01bf595c57893db94406 -r65fc5c36624e283aca69aae3f35542ecfec0f24c --- firmware/App/Controllers/PermeateTank.c (.../PermeateTank.c) (revision fd21f03d28eec499fb5c01bf595c57893db94406) +++ firmware/App/Controllers/PermeateTank.c (.../PermeateTank.c) (revision 65fc5c36624e283aca69aae3f35542ecfec0f24c) @@ -160,42 +160,48 @@ void execPermeateTankController( void ) { PERMEATE_TANK_STATE_T prevState = permeateTankControllerState; + FP_OP_MODE_T opMode = getCurrentFPOperationMode(); + // If we have faulted, close valve and go to manual control - if ( FP_MODE_FAUL == getCurrentFPOperationMode() ) + if ( FP_MODE_FAUL == opMode ) { endPermeateTankControl(); } - // Execute air trap state machine - switch( permeateTankControllerState ) + // do not execute state machine if in defeatured modes. + // BETA's will still have featured HW installed. + if ( FALSE == isFPDefeatured() ) { - case PERMEATE_TANK_INIT_STATE: - permeateTankControllerState = PERMEATE_TANK_MANUAL_CONTROL_STATE; - break; + // Execute permeate tank state machine + switch( permeateTankControllerState ) + { + case PERMEATE_TANK_INIT_STATE: + permeateTankControllerState = PERMEATE_TANK_MANUAL_CONTROL_STATE; + break; - case PERMEATE_TANK_MANUAL_CONTROL_STATE: - permeateTankControllerState = handlePermeateTankManualControlState(); - break; + case PERMEATE_TANK_MANUAL_CONTROL_STATE: + permeateTankControllerState = handlePermeateTankManualControlState(); + break; - case PERMEATE_TANK_FILL_STATE: - permeateTankControllerState = handlePermeateTankFillState(); - break; + case PERMEATE_TANK_FILL_STATE: + permeateTankControllerState = handlePermeateTankFillState(); + break; - case PERMEATE_TANK_FULL_STATE: - permeateTankControllerState = handlePermeateTankFullState(); - break; + case PERMEATE_TANK_FULL_STATE: + permeateTankControllerState = handlePermeateTankFullState(); + break; - default: - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_FP_SOFTWARE_FAULT, (U32)FP_FAULT_ID_FP_INVALID_PERMEATE_TANK_STATE, (U32)permeateTankControllerState ) - permeateTankControllerState = PERMEATE_TANK_INIT_STATE; - break; - } + default: + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_FP_SOFTWARE_FAULT, (U32)FP_FAULT_ID_FP_INVALID_PERMEATE_TANK_STATE, (U32)permeateTankControllerState ) + permeateTankControllerState = PERMEATE_TANK_INIT_STATE; + break; + } - if ( prevState != permeateTankControllerState ) - { - setPermeateTankTransition( permeateTankControllerState ); + if ( prevState != permeateTankControllerState ) + { + setPermeateTankTransition( permeateTankControllerState ); + } } - // Publish permeate tank data if due publishPermeateTankData(); }