Index: firmware/App/Drivers/PressureSensor.c =================================================================== diff -u -r3417933e6edf61a914c428e2fa944b3b349272a4 -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 --- firmware/App/Drivers/PressureSensor.c (.../PressureSensor.c) (revision 3417933e6edf61a914c428e2fa944b3b349272a4) +++ firmware/App/Drivers/PressureSensor.c (.../PressureSensor.c) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) @@ -95,6 +95,7 @@ currentPressureReadings[ D51_PRES ].data = convertPressureReading( getFPGAD51PresRawPressure(), presMinPSI, LOW_PRES_MAX_PSI ); currentPressureReadings[ D18_PRES ].data = convertPressureReading( getFPGAD18PresRawPressure(), presMinPSI, LOW_PRES_MAX_PSI ); currentPressureReadings[ D41_PRES ].data = convertPressureReading( getFPGAD41PresRawPressure(), presMinPSI, LOW_PRES_MAX_PSI ); + currentPressureReadings[ D87_PRES ].data = convertPressureReading( getFPGAD87PresRawPressure(), presMinPSI, LOW_PRES_MAX_PSI ); currentPressureReadings[ M3_PRES ].data = convertPressureReading( getFPGAM3RawPressure(), presMinPSI, HIGH_PRES_MAX_PSI ); currentPressureReadings[ P8_PRES ].data = convertPressureReading( getFPGAP8RawPressure(), presMinPSI, HIGH_PRES_MAX_PSI ); currentPressureReadings[ P13_PRES ].data = convertPressureReading( getFPGAP13RawPressure(), presMinPSI, HIGH_PRES_MAX_PSI ); @@ -107,6 +108,7 @@ currentPresTempReadings[ D51_PRES ].data = convertPressureTempReading2DegC( getFPGAD51PresRawTemperature() ); currentPresTempReadings[ D18_PRES ].data = convertPressureTempReading2DegC( getFPGAD18PresRawTemperature() ); currentPresTempReadings[ D41_PRES ].data = convertPressureTempReading2DegC( getFPGAD41PresRawTemperature() ); + currentPresTempReadings[ D87_PRES ].data = convertPressureTempReading2DegC( getFPGAD87PresRawTemperature() ); currentPresTempReadings[ M3_PRES ].data = convertPressureTempReading2DegC( getFPGAM3RawTemperature() ); currentPresTempReadings[ P8_PRES ].data = convertPressureTempReading2DegC( getFPGAP8RawTemperature() ); currentPresTempReadings[ P13_PRES ].data = convertPressureTempReading2DegC( getFPGAP13RawTemperature() ); Index: firmware/App/Drivers/PressureSensor.h =================================================================== diff -u -r3417933e6edf61a914c428e2fa944b3b349272a4 -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 --- firmware/App/Drivers/PressureSensor.h (.../PressureSensor.h) (revision 3417933e6edf61a914c428e2fa944b3b349272a4) +++ firmware/App/Drivers/PressureSensor.h (.../PressureSensor.h) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) @@ -7,8 +7,8 @@ * * @file PressureSensor.h * -* @author (last) “rkallala” -* @date (last) 23-Oct-2025 +* @author (last) Varshini Nagabooshanam +* @date (last) 22-Dec-2025 * * @author (original) Vinayakam Mani * @date (original) 12-Sep-2024 @@ -41,7 +41,8 @@ D51_PRES, ///< Spent Dialysate pressure (PDs) D18_PRES, ///< Fresh Dialysate pressure (PDf) D41_PRES, ///< Transmembrane pressure (Ptm) - LAST_DD_PRESSURE_SENSOR = D41_PRES, ///< End of DD pressure sensor group + D87_PRES, ///< Dialysate pressure + LAST_DD_PRESSURE_SENSOR = D87_PRES, ///< End of DD pressure sensor group M3_PRES, ///< Water inlet pressure after regulator (PR0) FIRST_IO_PRESSURE_SENSOR = M3_PRES, ///< Start of IO pressure sensor group LAST_IO_PRESSURE_SENSOR = M3_PRES, ///< End of IO pressure sensor group Index: firmware/App/Drivers/TemperatureSensors.c =================================================================== diff -u -r3417933e6edf61a914c428e2fa944b3b349272a4 -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 --- firmware/App/Drivers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 3417933e6edf61a914c428e2fa944b3b349272a4) +++ firmware/App/Drivers/TemperatureSensors.c (.../TemperatureSensors.c) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) @@ -34,6 +34,8 @@ // ********** 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. @@ -132,6 +134,12 @@ tempSensors[ D50_TEMP ].zeroDegreeResistance = PRIMARY_HEATER_TEMP_SENSORS_0_DEGREE_RESISTANCE; tempSensors[ D50_TEMP ].maxAllowedTemp = TEMP_SENSORS_MAX_ALLOWED_DEGREE_C; + tempSensors[ D99_TEMP ].gain = PRIMARY_HEATER_TEMP_SENSORS_GAIN; + tempSensors[ D99_TEMP ].refResistance = PRIMARY_HEATER_TEMP_SENSORS_REF_RESISTANCE; + tempSensors[ D99_TEMP ].zeroDegreeResistance = PRIMARY_HEATER_TEMP_SENSORS_0_DEGREE_RESISTANCE; + tempSensors[ D99_TEMP ].maxAllowedTemp = TEMP_SENSORS_MAX_ALLOWED_DEGREE_C; + + // Board temperature sensors conversion coefficient tempSensors[ BRD_TEMP ].conversionCoeff = conversionCoeff; tempSensors[ BRD_TEMP ].maxAllowedTemp = NON_FLUID_PATH_TEMP_SENSORS_MAX_ALLOWED_DEGREE_C; @@ -189,6 +197,7 @@ processTempSnsrsADCRead( D78_TEMP, getFPGAD78Temp() ); processTempSnsrsADCRead( D4_TEMP, getFPGAD4Temp() ); processTempSnsrsADCRead( D50_TEMP, getFPGAD50Temp() ); + processTempSnsrsADCRead( D99_TEMP, getFPGAD99Temp() ); //TODO: Read Board temperature //processTempSnsrsADCRead( TEMPSENSORS_INTERNAL_COND_TEMP_SENSOR, getFPGACondSnsrInternalTemp() ); @@ -314,6 +323,7 @@ case D78_TEMP: case D4_TEMP: case D50_TEMP: + case D99_TEMP: temperature = getADC2TempConversion( avgADCReads, (U32)tempSensors [ sensorIndex ].gain, (U32)tempSensors [ sensorIndex ].refResistance, (U32)tempSensors [ sensorIndex ].zeroDegreeResistance, tempSensors [ sensorIndex ].conversionCoeff ); break; @@ -408,6 +418,10 @@ //calId = CAL_DATA_TRIM_HEATER_TEMP; break; + case D99_TEMP: + //calId = CAL_DATA_DIALYSATE_TEMP; + break; + default: // Set the calibration temperature value as num of meaning calibration is not needed for the provided sensor //calId = NUM_OF_CAL_DATA_TEMP_SENSORS; Index: firmware/App/Drivers/TemperatureSensors.h =================================================================== diff -u -r3417933e6edf61a914c428e2fa944b3b349272a4 -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 --- firmware/App/Drivers/TemperatureSensors.h (.../TemperatureSensors.h) (revision 3417933e6edf61a914c428e2fa944b3b349272a4) +++ firmware/App/Drivers/TemperatureSensors.h (.../TemperatureSensors.h) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) @@ -40,6 +40,7 @@ D78_TEMP, ///< Heat exchanger Outlet temperature sensor D4_TEMP, ///< Hydraulics primary heater temperature sensor D50_TEMP, ///< Trimmer heater temperature sensor + D99_TEMP, ///< Temperature sensor BRD_TEMP, ///< DD board temperature sensor ( thermistor ) NUM_OF_TEMPERATURE_SENSORS ///< Number of temperature sensors } TEMPERATURE_SENSORS_T; Index: firmware/App/Modes/ModeGenDialysate.c =================================================================== diff -u -r3417933e6edf61a914c428e2fa944b3b349272a4 -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 --- firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 3417933e6edf61a914c428e2fa944b3b349272a4) +++ firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) @@ -1020,6 +1020,7 @@ data.isDialDelInProgress = (BOOL)getDialDeliveryProgressStatus(); 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.d9Pressure = getFilteredPressure( D9_PRES ); data.d18Pressure = getFilteredPressure( D18_PRES ); Index: firmware/App/Modes/ModeGenDialysate.h =================================================================== diff -u -r3417933e6edf61a914c428e2fa944b3b349272a4 -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 --- firmware/App/Modes/ModeGenDialysate.h (.../ModeGenDialysate.h) (revision 3417933e6edf61a914c428e2fa944b3b349272a4) +++ firmware/App/Modes/ModeGenDialysate.h (.../ModeGenDialysate.h) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) @@ -41,7 +41,8 @@ U32 genDialysateExecState; ///< Generate dialysate execution state BOOL isDialDelInProgress; ///< Whether Dialysate Delivery in progress or not U32 d6Level; ///< Floater level (low, medium and high) - U32 d63Level; ///< BiCarb Chamber level + U32 d63Level; ///< BiCarb Chamber Upper level + U32 d98Level; ///< BiCarb Chamber Lower level U32 d46Level; ///< Spent dialysate chamber level F32 d9Pressure; ///< Hydraulics chamber negative pressure F32 d18Pressure; ///< Hydraulics chamber positive pressure Index: firmware/App/Monitors/Level.c =================================================================== diff -u -r3417933e6edf61a914c428e2fa944b3b349272a4 -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 --- firmware/App/Monitors/Level.c (.../Level.c) (revision 3417933e6edf61a914c428e2fa944b3b349272a4) +++ firmware/App/Monitors/Level.c (.../Level.c) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) @@ -28,9 +28,10 @@ */ // ********** private definitions ********** -#define FPGA_LEVEL_LOW 5 ///< Floater low level status -#define FPGA_LEVEL_MEDIUM 4 ///< Floater medium level status -#define FPGA_LEVEL_HIGH 6 ///< Floater high level status +#define FPGA_LEVEL_EMPTY 3 ///< Floater empty level status +#define FPGA_LEVEL_LOW 2 ///< Floater low level status +#define FPGA_LEVEL_MEDIUM 0 ///< Floater medium level status +#define FPGA_LEVEL_HIGH 4 ///< Floater high level status #define LEVEL_COUNT_LOW 0xFFFF ///< Level sensor count when fluid level is low or non submerged #define LEVEL_COUNT_HIGH_START 0x0000 ///< Start range of level sensor count when fluid level is high or submerged #define LEVEL_COUNT_HIGH_END 0x2FFF ///< End range of level sensor count when fluid level is high or submerged @@ -125,6 +126,10 @@ currentLevelStatus = ( processLevelCount( getFPGAD63LevelSensor() ) == 0 ? LEVEL_STATE_LOW : LEVEL_STATE_HIGH ); break; + case D98_LEVL: + currentLevelStatus = ( processLevelCount( getFPGAD63LevelSensor() ) == 0 ? LEVEL_STATE_LOW : LEVEL_STATE_HIGH ); + break; + case D46_LEVL: currentLevelStatus = ( processLevelCount( getFPGAD46LevelSensor() ) == 0 ? LEVEL_STATE_LOW : LEVEL_STATE_HIGH ); break; @@ -161,6 +166,10 @@ SEND_EVENT_WITH_2_U32_DATA( DD_EVENT_D63_LEVL_CHANGE, (U32)status[ i ].data, (U32)currentLevelStatus ); break; + case D98_LEVL: + SEND_EVENT_WITH_2_U32_DATA( DD_EVENT_D98_LEVL_CHANGE, (U32)status[ i ].data, (U32)currentLevelStatus ); + break; + case D46_LEVL: SEND_EVENT_WITH_2_U32_DATA( DD_EVENT_D46_LEVL_CHANGE, (U32)status[ i ].data, (U32)currentLevelStatus ); break; @@ -257,8 +266,12 @@ { levelStatus = getFPGAD6LevelStatus(); - if ( FPGA_LEVEL_LOW == levelStatus ) + 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 ) @@ -279,8 +292,12 @@ { levelStatus = getFPGAP25FloaterState(); - if ( FPGA_LEVEL_LOW == levelStatus ) + 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 ) @@ -323,6 +340,7 @@ data.d6Level = (U32)getLevelStatus( D6_LEVL ); data.d63Level = (U32)getLevelStatus( D63_LEVL ); + data.d98Level = (U32)getLevelStatus( D98_LEVL ); data.d46Level = (U32)getLevelStatus( D46_LEVL ); levelsDataPublicationCounter = 0; Index: firmware/App/Monitors/Level.h =================================================================== diff -u -r3417933e6edf61a914c428e2fa944b3b349272a4 -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 --- firmware/App/Monitors/Level.h (.../Level.h) (revision 3417933e6edf61a914c428e2fa944b3b349272a4) +++ firmware/App/Monitors/Level.h (.../Level.h) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) @@ -37,7 +37,8 @@ { D6_LEVL = 0, ///< floater switch low, medium and high status FIRST_DD_LEVL = D6_LEVL, ///< First DD level - D63_LEVL, ///< bicarb level low or high status + D63_LEVL, ///< Bicarb upper level low or high status + D98_LEVL, ///< Bicarb lower level low or high status D46_LEVL, ///< Spent dialysate air separation chamber level low or high status LAST_DD_LEVL = D46_LEVL, ///< Last DD level P25_LEVL, ///< FP level sensor @@ -52,7 +53,8 @@ /// floater and level sensor states. typedef enum level_States { - LEVEL_STATE_LOW = 0, ///< Low level + LEVEL_STATE_EMPTY = 0, ///< Empty level + LEVEL_STATE_LOW, ///< Low level LEVEL_STATE_HIGH, ///< High level LEVEL_STATE_MEDIUM, ///< Medium level LEVEL_STATE_ILLEGAL, ///< Illegal level @@ -63,7 +65,8 @@ typedef struct { U32 d6Level; ///< Floater level - U32 d63Level; ///< Bicarb level + U32 d63Level; ///< Bicarb upper level + U32 d98Level; ///< Bicarb lower level U32 d46Level; ///< Spent dialysate level } DD_LEVEL_DATA_T; Index: firmware/App/Monitors/Pressure.c =================================================================== diff -u -r3417933e6edf61a914c428e2fa944b3b349272a4 -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 --- firmware/App/Monitors/Pressure.c (.../Pressure.c) (revision 3417933e6edf61a914c428e2fa944b3b349272a4) +++ firmware/App/Monitors/Pressure.c (.../Pressure.c) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) @@ -7,8 +7,8 @@ * * @file Pressure.c * -* @author (last) “rkallala” -* @date (last) 23-Oct-2025 +* @author (last) Varshini Nagabooshanam +* @date (last) 22-Dec-2025 * * @author (original) Vinayakam Mani * @date (original) 12-Sep-2024 @@ -413,6 +413,7 @@ data.d51Pressure = getFilteredPressure( D51_PRES ); data.d18Pressure = getFilteredPressure( D18_PRES ); data.d41Pressure = getFilteredPressure( D41_PRES ); + data.d87Pressure = getFilteredPressure( D87_PRES ); ddPressuresDataPublicationTimerCounter = 0; broadcastData( MSG_ID_DD_PRESSURES_DATA, COMM_BUFFER_OUT_CAN_DD_BROADCAST, (U08*)&data, sizeof( PRESSURE_DD_DATA_T ) ); Index: firmware/App/Monitors/Pressure.h =================================================================== diff -u -r3417933e6edf61a914c428e2fa944b3b349272a4 -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 --- firmware/App/Monitors/Pressure.h (.../Pressure.h) (revision 3417933e6edf61a914c428e2fa944b3b349272a4) +++ firmware/App/Monitors/Pressure.h (.../Pressure.h) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) @@ -40,6 +40,7 @@ F32 d51Pressure; ///< Spent Dialysate pressure F32 d18Pressure; ///< Fresh Dialysate pressure F32 d41Pressure; ///< Transmembrane pressure + F32 d87Pressure; ///< Dialysate pressure } PRESSURE_DD_DATA_T; /// FP Pressure data struct. Index: firmware/App/Monitors/Temperature.c =================================================================== diff -u -r2cdff97cc76e7a7b9ec3c087dacf767f2c022b31 -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 --- firmware/App/Monitors/Temperature.c (.../Temperature.c) (revision 2cdff97cc76e7a7b9ec3c087dacf767f2c022b31) +++ firmware/App/Monitors/Temperature.c (.../Temperature.c) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) @@ -7,8 +7,8 @@ * * @file Temperature.c * -* @author (last) Zoltan Miskolci -* @date (last) 10-Dec-2025 +* @author (last) Varshini Nagabooshanam +* @date (last) 22-Dec-2025 * * @author (original) Vinayakam Mani * @date (original) 25-Sep-2024 @@ -43,6 +43,7 @@ #define TEMP_SENSORS_FPGA_ERROR_TIMEOUT_MS ( 2 * MS_PER_SECOND ) ///< Temperature sensors FPGA error timeout in milliseconds. #define D4_TEMP_MOVING_AVG_NUM_OF_SAMPLES 50 ///< D4 temperature sensor moving average number of samples. #define D50_TEMP_MOVING_AVG_NUM_OF_SAMPLES 25 ///< D50 temperature sensor moving average number of samples ( 250ms filter ). +#define D99_TEMP_MOVING_AVG_NUM_OF_SAMPLES ///< D99 temperature sensor moving average number of samples //TODO #define DATA_PUBLISH_COUNTER_START_COUNT 30 ///< Data publish counter start count. #define DIAL_TEMP_MOVING_AVG_NUM_OF_SAMPLES 30 ///< Dialysate temperature sensors moving average number of samples. #define D28_D30_DATA_COLLECTION_TIME_MS ( 1 * MS_PER_SECOND ) ///< Dialysate temperature sensors data collection time in milliseconds. @@ -99,6 +100,12 @@ static U32 d50TempSamplesNextIndex; ///< D50 temperature sample next index number. static U32 d50TempCount; ///< D50 Number of samples in average buffer. +static F32 d99TempAvgC; ///< D99 temperature average in C. +static F32 d99TempRunningSumC; ///< D99 temperature running sum in C. +static F32 d99TempSamplesC[ D99_TEMP_MOVING_AVG_NUM_OF_SAMPLES ]; ///< D99 temperature samples array in C. +static U32 d99TempSamplesNextIndex; ///< D99 temperature sample next index number. +static U32 d99TempCount; ///< D99 Number of samples in average buffer. + static U32 ddTempDataPublicationTimerCounter; ///< DD Temperature sensors data publish timer counter. static U32 fpTempDataPublicationTimerCounter; ///< FP Temperature sensors data publish timer counter. static OVERRIDE_U32_T ddTempSensorsPublishInterval; ///< DD Temperature sensors publish time interval override. @@ -478,6 +485,7 @@ data.d51PresTemp = getFilteredPressureSensorTemperature( D51_PRES ); data.d18PresTemp = getFilteredPressureSensorTemperature( D18_PRES ); data.d41PresTemp = getFilteredPressureSensorTemperature( D41_PRES ); + data.d87PresTemp = getFilteredPressureSensorTemperature( D87_PRES ); broadcastData( MSG_ID_DD_TEMPERATURE_DATA, COMM_BUFFER_OUT_CAN_DD_BROADCAST, (U08*)&data, sizeof( TEMPERATURE_SENSORS_DD_DATA_T ) ); ddTempDataPublicationTimerCounter = 0; Index: firmware/App/Monitors/Temperature.h =================================================================== diff -u -r2cdff97cc76e7a7b9ec3c087dacf767f2c022b31 -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 --- firmware/App/Monitors/Temperature.h (.../Temperature.h) (revision 2cdff97cc76e7a7b9ec3c087dacf767f2c022b31) +++ firmware/App/Monitors/Temperature.h (.../Temperature.h) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) @@ -7,8 +7,8 @@ * * @file Temperature.h * -* @author (last) Zoltan Miskolci -* @date (last) 10-Dec-2025 +* @author (last) Varshini Nagabooshanam +* @date (last) 22-Dec-2025 * * @author (original) Vinayakam Mani * @date (original) 25-Sep-2024 @@ -53,6 +53,7 @@ F32 d51PresTemp; ///< Spent Dialysate temperature F32 d18PresTemp; ///< Fresh Dialysate temperature F32 d41PresTemp; ///< Transmembrane temperature + F32 d87PresTemp; ///< Dialysate temperature } TEMPERATURE_SENSORS_DD_DATA_T; /// Temperature sensors data structure. Index: firmware/App/Services/FpgaDD.c =================================================================== diff -u -r7d963ca43801628920617ce0b904a62effcd2722 -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 --- firmware/App/Services/FpgaDD.c (.../FpgaDD.c) (revision 7d963ca43801628920617ce0b904a62effcd2722) +++ firmware/App/Services/FpgaDD.c (.../FpgaDD.c) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) @@ -8,8 +8,8 @@ * * @file FpgaDD.c * -* @author (last) Michael Garthwaite -* @date (last) 08-Dec-2025 +* @author (last) Varshini Nagabooshanam +* @date (last) 29-Dec-2025 * * @author (original) Vinayakam Mani * @date (original) 26-Aug-2024 @@ -184,7 +184,7 @@ U32 fpgaD1Temp; ///< Reg 610. Inlet heat exchanger temperature U32 fpgaD4Temp; ///< Reg 614. Hydraulics primary heater temperature U32 fpgaD50Temp; ///< Reg 618. Trimmer heater temperature - U08 fpga_UnUsed_1; ///< Reg 622. Not used + U16 fpgaD98LevelSensor; ///< Reg 622. 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 @@ -245,8 +245,9 @@ U16 p40PumpPWMReadback; ///< Reg 720. P40 pump PWM read back. U08 p7flowReadCount; ///< Reg 722. P7 Flow sensor read counter. U08 p7flowErrorCount; ///< Reg 723. P7 Flow sensor error counter. - U32 tempP23; ///< Reg 724. P23 temperature sensor reading. - U32 tempP22; ///< Reg 728. P22 ( TRO2 ) temperature sensor reading. + U16 fpgaD87PresPressure; ///< Reg 724. D87 MPM pressure sensor RAW pressure data + U16 fpgaD87PresTemp; ///< Reg 726. D87 MPM pressure sensor RAW temperature data + U32 fpgaD99Temp; ///< Reg 728. D99 temperature sensor U32 tempTax1; ///< Reg 732. ( Tax1 ) temperature sensor reading. U32 tempRTD; ///< Reg 736. spare temperature sensor reading. U08 ad7124errcnt; ///< Reg 740. Counter which increments when an invalid transaction happen between FPGA and AD7124. @@ -2427,6 +2428,32 @@ /*********************************************************************//** * @brief + * The getFPGAD87PresRawPressure function gets transmembrane pressure sensor raw + * pressure value. + * @details \b Inputs: fpgaSensorReadings.fpgaD87PresPressure + * @details \b Outputs: none + * @return Latest transmembrane pressure sensor raw pressure data + *************************************************************************/ +U16 getFPGAD87PresRawPressure( void ) +{ + return fpgaSensorReadings.fpgaD87PresPressure; +} + +/*********************************************************************//** + * @brief + * The getFPGAD87PresRawTemperature function gets transmembrane pressure sensor raw + * temperature value. + * @details \b Inputs: fpgaSensorReadings.fpgaD87PresTemp + * @details \b Outputs: none + * @return Latest transmembrane pressure sensor raw temperature data + *************************************************************************/ +U16 getFPGAD87PresRawTemperature( void ) +{ + return fpgaSensorReadings.fpgaD87PresTemp; +} + +/*********************************************************************//** + * @brief * The getFPGACD1ReadCount function gets D17 conductivity sensor read count. * @details \b Inputs: fpgaSensorReadings.fpgaD17CondReadCnt * @details \b Outputs: none @@ -2842,6 +2869,18 @@ /*********************************************************************//** * @brief + * The getFPGAD99Temp function gets the trimmer heater temperature. + * @details \b Inputs: fpgaSensorReadings + * @details \b Outputs: none + * @return trimmer heater temperature + *************************************************************************/ +U32 getFPGAD99Temp( void ) +{ + return fpgaSensorReadings.fpgaD99Temp; +} + +/*********************************************************************//** + * @brief * The getFPGARTDReadCount function gets the RTD sensors group read count. * @details \b Inputs: fpgaSensorReadings * @details \b Outputs: none @@ -2976,6 +3015,19 @@ /*********************************************************************//** * @brief + * The getFPGAD98LevelSensor function gets the latest FPGA D98 level sensor + * reading. + * @details \b Inputs: fpgaSensorReadings.fpgaD98LevelSensor + * @details \b Outputs: none + * @return last FPGA D98 level sensor reading + *************************************************************************/ +U16 getFPGAD98LevelSensor( void ) +{ + return fpgaSensorReadings.fpgaD98LevelSensor; +} + +/*********************************************************************//** + * @brief * The setFPGABloodLeakUARTControl function sets the blood leak sensor UART * control value. * @details \b Inputs: none @@ -3426,30 +3478,6 @@ /*********************************************************************//** * @brief - * The getFPGAP23Temperature function gets the P23 temperature sensor reading. - * @details \b Inputs: fpgaSensorReadings.tempP23 - * @details \b Outputs: none - * @return P23 temperature sensor reading - *************************************************************************/ -U32 getFPGAP23Temperature( void ) -{ - return fpgaSensorReadings.tempP23; -} - -/*********************************************************************//** - * @brief - * The getFPGAP22Temperature function gets the P22 temperature sensor reading. - * @details \b Inputs: fpgaSensorReadings.tempP22 - * @details \b Outputs: none - * @return P22 temperature sensor reading - *************************************************************************/ -U32 getFPGAP22Temperature( void ) -{ - return fpgaSensorReadings.tempP22; -} - -/*********************************************************************//** - * @brief * The getFPGAP25FloaterState function gets the P25 floater level state. * @details \b Inputs: fpgaSensorReadings.levelSwitch * @details \b Outputs: none Index: firmware/App/Services/FpgaDD.h =================================================================== diff -u -r7d963ca43801628920617ce0b904a62effcd2722 -rae7a7f0dc06fd31a53b0db564d515ce4c39acf67 --- firmware/App/Services/FpgaDD.h (.../FpgaDD.h) (revision 7d963ca43801628920617ce0b904a62effcd2722) +++ firmware/App/Services/FpgaDD.h (.../FpgaDD.h) (revision ae7a7f0dc06fd31a53b0db564d515ce4c39acf67) @@ -7,8 +7,8 @@ * * @file FpgaDD.h * -* @author (last) Michael Garthwaite -* @date (last) 08-Dec-2025 +* @author (last) Varshini Nagabooshanam +* @date (last) 29-Dec-2025 * * @author (original) Vinayakam Mani * @date (original) 26-Aug-2024 @@ -222,8 +222,12 @@ U16 getFPGAD41PresRawPressure( void ); U16 getFPGAD41PresRawTemperature( void ); +U16 getFPGAD87PresRawPressure( void ); +U16 getFPGAD87PresRawTemperature( void ); + //Level sensor U16 getFPGAD63LevelSensor( void ); +U16 getFPGAD98LevelSensor( void ); U16 getFPGAD46LevelSensor( void ); BOOL getFPGAD6LevelStatus( void ); U08 getFPGAFloater2Status( void ); @@ -233,6 +237,7 @@ U32 getFPGAD78Temp( void ); U32 getFPGAD4Temp( void ); U32 getFPGAD50Temp( void ); +U32 getFPGAD99Temp( void ); U08 getFPGARTDReadCount( void ); U08 getFPGARTDCountErrorCycles( void ); @@ -289,8 +294,6 @@ S16 getFPGAP13RawTemperature( void ); S16 getFPGAP17RawPressure( void ); S16 getFPGAP17RawTemperature( void ); -U32 getFPGAP23Temperature( void ); -U32 getFPGAP22Temperature( void ); U08 getFPGAP25FloaterState( void );