Index: firmware/App/Monitors/Level.c =================================================================== diff -u -r4440a7a6b86afcaed7573596abe30bcf5820aba4 -r9ed40798a5f4779db8a07bb6e256f7de99660108 --- firmware/App/Monitors/Level.c (.../Level.c) (revision 4440a7a6b86afcaed7573596abe30bcf5820aba4) +++ firmware/App/Monitors/Level.c (.../Level.c) (revision 9ed40798a5f4779db8a07bb6e256f7de99660108) @@ -131,15 +131,36 @@ break; case D63_LEVL: - currentLevelStatus = ( processLevelCount( getFPGAD63LevelSensor() ) == 0 ? LEVEL_STATE_LOW : LEVEL_STATE_HIGH ); + if ( TRUE == getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) ) + { + currentLevelStatus = ( 0U == getFPGAD63LevelSensor() ) ? LEVEL_STATE_LOW : LEVEL_STATE_HIGH; + } + else + { + currentLevelStatus = ( processLevelCount( getFPGAD63LevelSensor() ) == 0 ? LEVEL_STATE_LOW : LEVEL_STATE_HIGH ); + } break; case D98_LEVL: - currentLevelStatus = ( processLevelCount( getFPGAD98LevelSensor() ) == 0 ? LEVEL_STATE_LOW : LEVEL_STATE_HIGH ); + if ( TRUE == getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) ) + { + currentLevelStatus = ( 0U == getFPGAD98LevelSensor() ) ? LEVEL_STATE_LOW : LEVEL_STATE_HIGH; + } + else + { + currentLevelStatus = ( processLevelCount( getFPGAD98LevelSensor() ) == 0 ? LEVEL_STATE_LOW : LEVEL_STATE_HIGH ); + } break; case D46_LEVL: - currentLevelStatus = ( processLevelCount( getFPGAD46LevelSensor() ) == 0 ? LEVEL_STATE_LOW : LEVEL_STATE_HIGH ); + if ( TRUE == getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) ) + { + currentLevelStatus = ( 0U == getFPGAD46LevelSensor() ) ? LEVEL_STATE_LOW : LEVEL_STATE_HIGH; + } + else + { + currentLevelStatus = ( processLevelCount( getFPGAD46LevelSensor() ) == 0 ? LEVEL_STATE_LOW : LEVEL_STATE_HIGH ); + } break; case P25_LEVL: @@ -260,6 +281,116 @@ /*********************************************************************//** * @brief + * The getLevelStateBeta19 function maps the raw floater/level status reported + * by FPGA to the corresponding LEVEL_STATE_T for Beta 1.9 hardware. + * @details \b Inputs: levelStatus + * @details \b Outputs: none + * @param levelStatus Raw FPGA level status value + * @return mapped level state + *************************************************************************/ +static LEVEL_STATE_T getLevelStateBeta19( U32 levelStatus ) +{ + LEVEL_STATE_T currentLevelStatus = LEVEL_STATE_ILLEGAL; + + if ( FPGA_LEVEL_EMPTY == levelStatus ) + { + currentLevelStatus = LEVEL_STATE_EMPTY; + } + else if ( FPGA_LEVEL_LOW == levelStatus ) + { + currentLevelStatus = LEVEL_STATE_LOW; + } + else if ( FPGA_LEVEL_MEDIUM == levelStatus ) + { + currentLevelStatus = LEVEL_STATE_MEDIUM; + } + else if ( FPGA_LEVEL_HIGH == levelStatus ) + { + currentLevelStatus = LEVEL_STATE_HIGH; + } + else + { + // TODO - Handle invalid level alarm + currentLevelStatus = LEVEL_STATE_ILLEGAL; + } + + return currentLevelStatus; +} + +/*********************************************************************//** + * @brief + * The getLevelStateBeta20 function maps the raw floater/level status reported + * by FPGA to the corresponding LEVEL_STATE_T for Beta 2.0 hardware. + * @details \b Inputs: levelStatus + * @details \b Outputs: none + * @param levelStatus Raw FPGA level status value + * @return mapped level state + *************************************************************************/ +static LEVEL_STATE_T getLevelStateBeta20( U32 levelStatus ) +{ + LEVEL_STATE_T currentLevelStatus = LEVEL_STATE_ILLEGAL; + + if ( FPGA_B2_LEVEL_EMPTY == levelStatus ) + { + currentLevelStatus = LEVEL_STATE_EMPTY; + } + else if ( FPGA_B2_LEVEL_LOW == levelStatus ) + { + currentLevelStatus = LEVEL_STATE_LOW; + } + else if ( FPGA_B2_LEVEL_MEDIUM == levelStatus ) + { + currentLevelStatus = LEVEL_STATE_MEDIUM; + } + else if ( FPGA_B2_LEVEL_HIGH == levelStatus ) + { + currentLevelStatus = LEVEL_STATE_HIGH; + } + else + { + // TODO - Handle invalid level alarm + currentLevelStatus = LEVEL_STATE_ILLEGAL; + } + + return currentLevelStatus; +} + +/*********************************************************************//** + * @brief + * The getLevelStateBeta10 function maps the raw floater/level status reported + * by FPGA to the corresponding LEVEL_STATE_T for Beta 1.0 hardware. + * @details \b Inputs: levelStatus + * @details \b Outputs: none + * @param levelStatus Raw FPGA level status value + * @return mapped level state + *************************************************************************/ +static LEVEL_STATE_T getLevelStateBeta10( U32 levelStatus ) +{ + LEVEL_STATE_T currentLevelStatus = LEVEL_STATE_ILLEGAL; + + if ( FPGA_B1_HW_LEVEL_LOW == levelStatus ) + { + currentLevelStatus = LEVEL_STATE_LOW; + } + else if ( FPGA_B1_HW_LEVEL_MEDIUM == levelStatus ) + { + currentLevelStatus = LEVEL_STATE_MEDIUM; + } + else if ( FPGA_B1_HW_LEVEL_HIGH == levelStatus ) + { + currentLevelStatus = LEVEL_STATE_HIGH; + } + else + { + // TODO - Handle invalid level alarm + currentLevelStatus = LEVEL_STATE_ILLEGAL; + } + + return currentLevelStatus; +} + +/*********************************************************************//** + * @brief * The getFloaterLevelstatus function gets the floater level reported by FPGA * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if the current state is invalid. * @details \b Inputs: FPGA level sensor data @@ -274,153 +405,44 @@ if ( D6_LEVL == levelId ) { levelStatus = getFPGAD6LevelStatus(); - if ( getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_1_0_HW ) != TRUE && getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) != TRUE ) + + if ( ( getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_1_0_HW ) != TRUE ) && + ( getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) != TRUE ) ) { // Beta 1.9 behavior - if ( FPGA_LEVEL_EMPTY == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_EMPTY; - } - else if ( FPGA_LEVEL_LOW == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_LOW; - } - else if ( FPGA_LEVEL_MEDIUM == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_MEDIUM; - } - else if ( FPGA_LEVEL_HIGH == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_HIGH; - } - else - { - // TODO - Handle invalid level alarm - currentLevelStatus = LEVEL_STATE_ILLEGAL; - } + currentLevelStatus = getLevelStateBeta19( levelStatus ); } else if ( getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) == TRUE ) { // Beta 2.0 behavior - if ( FPGA_B2_LEVEL_EMPTY == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_EMPTY; - } - else if ( FPGA_B2_LEVEL_LOW == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_LOW; - } - else if ( FPGA_B2_LEVEL_MEDIUM == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_MEDIUM; - } - else if ( FPGA_B2_LEVEL_HIGH == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_HIGH; - } - else - { - // TODO - Handle invalid level alarm - currentLevelStatus = LEVEL_STATE_ILLEGAL; - } + currentLevelStatus = getLevelStateBeta20( levelStatus ); } else { // Beta 1.0 behavior - if ( FPGA_B1_HW_LEVEL_LOW == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_LOW; - } - else if ( FPGA_B1_HW_LEVEL_MEDIUM == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_MEDIUM; - } - else if ( FPGA_B1_HW_LEVEL_HIGH == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_HIGH; - } - else - { - // TODO - Handle invalid level alarm - currentLevelStatus = LEVEL_STATE_ILLEGAL; - } + currentLevelStatus = getLevelStateBeta10( levelStatus ); } } else if ( P25_LEVL == levelId ) { levelStatus = getFPGAP25FloaterState(); - if ( getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_1_0_HW ) != TRUE && getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) != TRUE) + if ( ( getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_1_0_HW ) != TRUE ) && + ( getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) != TRUE ) ) { // Beta 1.9 behavior - if ( FPGA_LEVEL_EMPTY == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_EMPTY; - } - else if ( FPGA_LEVEL_LOW == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_LOW; - } - else if ( FPGA_LEVEL_MEDIUM == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_MEDIUM; - } - else if ( FPGA_LEVEL_HIGH == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_HIGH; - } - else - { - // TODO - Handle invalid level alarm - currentLevelStatus = LEVEL_STATE_ILLEGAL; - } + currentLevelStatus = getLevelStateBeta19( levelStatus ); } else if ( getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) == TRUE ) { // Beta 2.0 behavior - if ( FPGA_B2_LEVEL_EMPTY == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_EMPTY; - } - else if ( FPGA_B2_LEVEL_LOW == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_LOW; - } - else if ( FPGA_B2_LEVEL_MEDIUM == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_MEDIUM; - } - else if ( FPGA_B2_LEVEL_HIGH == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_HIGH; - } - else - { - // TODO - Handle invalid level alarm - currentLevelStatus = LEVEL_STATE_ILLEGAL; - } + currentLevelStatus = getLevelStateBeta20( levelStatus ); } else { // Beta 1.0 behavior - if ( FPGA_B1_HW_LEVEL_LOW == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_LOW; - } - else if ( FPGA_B1_HW_LEVEL_MEDIUM == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_MEDIUM; - } - else if ( FPGA_B1_HW_LEVEL_HIGH == levelStatus ) - { - currentLevelStatus = LEVEL_STATE_HIGH; - } - else - { - // TODO - Handle invalid level alarm - currentLevelStatus = LEVEL_STATE_ILLEGAL; - } + currentLevelStatus = getLevelStateBeta10( levelStatus ); } }