Index: firmware/App/Drivers/TemperatureSensors.c =================================================================== diff -u -rffd0828ba7d0c1ed6ae4624cfb2c502a2e7a203d -r98865667298d58132b40bceda1305b6bbc2204e0 --- firmware/App/Drivers/TemperatureSensors.c (.../TemperatureSensors.c) (revision ffd0828ba7d0c1ed6ae4624cfb2c502a2e7a203d) +++ firmware/App/Drivers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 98865667298d58132b40bceda1305b6bbc2204e0) @@ -34,8 +34,6 @@ // ********** private definitions ********** -#define USE_PT_100 1 ///< flag to check PT100 use in calculations - #define PRIMARY_HEATER_TEMP_SENSORS_GAIN 8U ///< Primary heater temperature sensors gain. #define PRIMARY_HEATER_TEMP_SENSORS_REF_RESISTANCE 20000 ///< Primary heater temperature sensors reference resistance. #define PRIMARY_HEATER_TEMP_SENSORS_0_DEGREE_RESISTANCE 1000U ///< Primary heater temperature sensors zero degree resistance. 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; Index: firmware/App/Monitors/Level.h =================================================================== diff -u -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 -r98865667298d58132b40bceda1305b6bbc2204e0 --- firmware/App/Monitors/Level.h (.../Level.h) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) +++ firmware/App/Monitors/Level.h (.../Level.h) (revision 98865667298d58132b40bceda1305b6bbc2204e0) @@ -67,6 +67,7 @@ U32 d6Level; ///< Floater level U32 d63Level; ///< Bicarb upper level U32 d98Level; ///< Bicarb lower level + U32 bicarbLevel; ///< Bicarb chamber level combination ( D63 + D98 ) U32 d46Level; ///< Spent dialysate level } DD_LEVEL_DATA_T; @@ -81,6 +82,7 @@ void initLevels( void ); void execLevels( void ); LEVEL_STATE_T getLevelStatus( LEVEL_T levelId ); +LEVEL_STATE_T getBicarbChamberLevelStatus( void ); BOOL testLevelsDataPublishIntervalOverride( MESSAGE_T *message ); BOOL testLevelStatusOverride( MESSAGE_T *message ); Index: firmware/App/Services/FpgaDD.c =================================================================== diff -u -rffd0828ba7d0c1ed6ae4624cfb2c502a2e7a203d -r98865667298d58132b40bceda1305b6bbc2204e0 --- firmware/App/Services/FpgaDD.c (.../FpgaDD.c) (revision ffd0828ba7d0c1ed6ae4624cfb2c502a2e7a203d) +++ firmware/App/Services/FpgaDD.c (.../FpgaDD.c) (revision 98865667298d58132b40bceda1305b6bbc2204e0) @@ -185,10 +185,9 @@ U32 fpgaD4Temp; ///< Reg 614. Hydraulics primary heater temperature U32 fpgaD50Temp; ///< Reg 618. Trimmer heater temperature U16 fpgaD98LevelSensor; ///< Reg 622. Lower level Sensor - U08 fpgaRTDReadCnt; ///< Reg 623. Read count for all RTD sensors U16 fpgaD12MeasuredSpeed; ///< Reg 624. Fresh dialysate pump measured speed U16 fpgaD48MeasuredSpeed; ///< Reg 626. Spent dialysate pump measured speed - U08 fpga_UnUsed_2; ///< Reg 628. Not used + U08 fpgaRTDReadCnt; ///< Reg 628. Read count for all RTD sensors U08 fpgaD12D48PumpStatus; ///< Reg 629. Dialysate pumps Error status U16 fpgaD12CurrentFeedback; ///< Reg 630. Fresh dialysate pump current feedback U16 fpgaD48CurrentFeedback; ///< Reg 632. Spent dialysate pump current feedback