Index: firmware/App/Monitors/Level.c =================================================================== diff -u -rffd0828ba7d0c1ed6ae4624cfb2c502a2e7a203d -r98865667298d58132b40bceda1305b6bbc2204e0 --- firmware/App/Monitors/Level.c (.../Level.c) (revision ffd0828ba7d0c1ed6ae4624cfb2c502a2e7a203d) +++ firmware/App/Monitors/Level.c (.../Level.c) (revision 98865667298d58132b40bceda1305b6bbc2204e0) @@ -63,7 +63,6 @@ static void publishLevelsData( void ); static BOOL processLevelCount( U16 count ); static LEVEL_STATE_T readFloaterLevelstatus( LEVEL_T levelId ); -static LEVEL_STATE_T readBicarbChamberFLevelStatus( void ); /*********************************************************************//** * @brief @@ -124,11 +123,11 @@ break; case D63_LEVL: - currentLevelStatus = readBicarbChamberFLevelStatus(); + currentLevelStatus = ( processLevelCount( getFPGAD63LevelSensor() ) == 0 ? LEVEL_STATE_LOW : LEVEL_STATE_HIGH ); break; case D98_LEVL: - currentLevelStatus = readBicarbChamberFLevelStatus(); + currentLevelStatus = ( processLevelCount( getFPGAD98LevelSensor() ) == 0 ? LEVEL_STATE_LOW : LEVEL_STATE_HIGH ); break; case D46_LEVL: @@ -330,32 +329,35 @@ * @details \b Outputs: level * @return level status *************************************************************************/ -static LEVEL_STATE_T readBicarbChamberFLevelStatus( void ) +LEVEL_STATE_T getBicarbChamberLevelStatus( void ) { - BOOL upperlevel = FALSE; - BOOL lowerlevel = FALSE; + LEVEL_STATE_T status = LEVEL_STATE_ILLEGAL; + BOOL upperlevel = FALSE; + BOOL lowerlevel = FALSE; // These FPGA reads are raw counts upperlevel = processLevelCount( getFPGAD63LevelSensor() ); lowerlevel = processLevelCount( getFPGAD98LevelSensor() ); if ( ( FALSE == lowerlevel ) && ( FALSE == upperlevel ) ) { - return LEVEL_STATE_LOW; + status = LEVEL_STATE_LOW; } else if ( ( TRUE == lowerlevel ) && ( FALSE == upperlevel ) ) { - return LEVEL_STATE_MEDIUM; + status = LEVEL_STATE_MEDIUM; } else if ( ( TRUE == lowerlevel ) && ( TRUE == upperlevel ) ) { - return LEVEL_STATE_HIGH; + status = LEVEL_STATE_HIGH; } else { - //upperlevel == TRUE while lowerlevel == FALSE -> illegal - return LEVEL_STATE_ILLEGAL; + // upperlevel == TRUE while lowerlevel == FALSE - illegal + status = LEVEL_STATE_ILLEGAL; } + + return status; } /*********************************************************************//** @@ -374,10 +376,11 @@ { DD_LEVEL_DATA_T data; - data.d6Level = (U32)getLevelStatus( D6_LEVL ); - data.d63Level = (U32)getLevelStatus( D63_LEVL ); - data.d98Level = (U32)getLevelStatus( D98_LEVL ); - data.d46Level = (U32)getLevelStatus( D46_LEVL ); + data.d6Level = (U32)getLevelStatus( D6_LEVL ); + data.d63Level = (U32)getLevelStatus( D63_LEVL ); + data.d98Level = (U32)getLevelStatus( D98_LEVL ); + data.bicarbLevel = (U32)getBicarbChamberLevelStatus(); + data.d46Level = (U32)getLevelStatus( D46_LEVL ); levelsDataPublicationCounter = 0;