Index: firmware/App/Drivers/PressureSensor.c =================================================================== diff -u -r65824878503f019bf9db443c867e27df8de27c51 -raeffb83507735fc1c84773e868e20ac7aeb60afc --- firmware/App/Drivers/PressureSensor.c (.../PressureSensor.c) (revision 65824878503f019bf9db443c867e27df8de27c51) +++ firmware/App/Drivers/PressureSensor.c (.../PressureSensor.c) (revision aeffb83507735fc1c84773e868e20ac7aeb60afc) @@ -54,16 +54,15 @@ static OVERRIDE_F32_T currentPresTempReadings[ NUM_OF_PRESSURE_SENSORS ]; ///< Current pressure sensor temperature readings (overrideable). //static BARO_SENSOR_CONSTS_T baroConvConsts; ///< Barometric sensor conversion constants. -static const U32 TWO_TO_POWER_OF_6 = ( 1 << 6 ); ///< 2^6. -static const U32 TWO_TO_POWER_OF_7 = ( 1 << 7 ); ///< 2^7. -static const U32 TWO_TO_POWER_OF_15 = ( 1 << 15 ); ///< 2^15. -static const U32 TWO_TO_POWER_OF_16 = ( 1 << 16 ); ///< 2^16. -static const U32 TWO_TO_POWER_OF_17 = ( 1 << 17 ); ///< 2^17. -static const U32 TWO_TO_POWER_OF_21 = ( 1 << 21 ); ///< 2^21. +//static const U32 TWO_TO_POWER_OF_6 = ( 1 << 6 ); ///< 2^6. +//static const U32 TWO_TO_POWER_OF_7 = ( 1 << 7 ); ///< 2^7. +//static const U32 TWO_TO_POWER_OF_15 = ( 1 << 15 ); ///< 2^15. +//static const U32 TWO_TO_POWER_OF_16 = ( 1 << 16 ); ///< 2^16. +//static const U32 TWO_TO_POWER_OF_17 = ( 1 << 17 ); ///< 2^17. +//static const U32 TWO_TO_POWER_OF_21 = ( 1 << 21 ); ///< 2^21. // ********** private function prototypes ********** -static void checkPressureSensors( void ); //static F32 convertBaroPressureReading2mmHg( U32 rawPressure ); //static F32 calculateBaroPressure( U32 pressure ); @@ -137,10 +136,6 @@ currentPressureReadings[ P8_PRES ].data = convertPressureReading( getFPGAP8RawPressure(), presMinPSI, HIGH_PRES_MAX_PSI ); currentPressureReadings[ P13_PRES ].data = convertPressureReading( getFPGAP13RawPressure(), presMinPSI, HIGH_PRES_MAX_PSI ); currentPressureReadings[ P17_PRES ].data = convertPressureReading( getFPGAP17RawPressure(), presMinPSI, HIGH_PRES_MAX_PSI ); - currentPressureReadings[ X1_PRES ].data = convertPressureReading( getFPGAX1RawPressure(), presMinPSI, HIGH_PRES_MAX_PSI ); - currentPressureReadings[ X2_PRES ].data = convertPressureReading( getFPGAX2RawPressure(), presMinPSI, HIGH_PRES_MAX_PSI ); - currentPressureReadings[ X3_PRES ].data = convertPressureReading( getFPGAX3RawPressure(), presMinPSI, HIGH_PRES_MAX_PSI ); - currentPressureReadings[ X4_PRES ].data = convertPressureReading( getFPGAX4RawPressure(), presMinPSI, HIGH_PRES_MAX_PSI ); // Update and convert raw pressure sensor temperatures to deg C currentPresTempReadings[ D9_PRES ].data = convertPressureTempReading2DegC( getFPGAD9PresRawTemperature() ); @@ -153,10 +148,6 @@ currentPresTempReadings[ P8_PRES ].data = convertPressureTempReading2DegC( getFPGAP8RawTemperature() ); currentPresTempReadings[ P13_PRES ].data = convertPressureTempReading2DegC( getFPGAP13RawTemperature() ); currentPresTempReadings[ P17_PRES ].data = convertPressureTempReading2DegC( getFPGAP17RawTemperature() ); - currentPresTempReadings[ X1_PRES ].data = convertPressureTempReading2DegC( getFPGAX1RawTemperature() ); - currentPresTempReadings[ X2_PRES ].data = convertPressureTempReading2DegC( getFPGAX2RawTemperature() ); - currentPresTempReadings[ X3_PRES ].data = convertPressureTempReading2DegC( getFPGAX3RawTemperature() ); - currentPresTempReadings[ X4_PRES ].data = convertPressureTempReading2DegC( getFPGAX4RawTemperature() ); } ///*********************************************************************//** Index: firmware/App/Drivers/PressureSensor.h =================================================================== diff -u -r65824878503f019bf9db443c867e27df8de27c51 -raeffb83507735fc1c84773e868e20ac7aeb60afc --- firmware/App/Drivers/PressureSensor.h (.../PressureSensor.h) (revision 65824878503f019bf9db443c867e27df8de27c51) +++ firmware/App/Drivers/PressureSensor.h (.../PressureSensor.h) (revision aeffb83507735fc1c84773e868e20ac7aeb60afc) @@ -42,7 +42,7 @@ D18_PRES, ///< Fresh Dialysate pressure (PDf) D41_PRES, ///< Transmembrane pressure (Ptm) // BARO_PRES, ///< barometric pressure sensor ToDo moved to TD - LAST_DD_PRESSURE_SENSOR = D41_PRES, ///< End of DD pressure sensor group + LAST_DD_PRESSURE_SENSOR = D41_PRES, ///< End of DD pressure sensor group M1_PRES, ///< Water inlet pressure before regulator (PRi) FIRST_IO_PRESSURE_SENSOR = M1_PRES, ///< Start of IO pressure sensor group M3_PRES, ///< Water inlet pressure after regulator (PRo) @@ -51,11 +51,7 @@ FIRST_FP_PRESSURE_SENSOR = P8_PRES, ///< Start of FP pressure sensor group P13_PRES, ///< Pressure before RO filter P17_PRES, ///< Pressure after RO filter - X1_PRES, ///< Pressure before RO pump - X2_PRES, ///< Pressure RO Concentrate - X3_PRES, ///< Pressure after P32, concentrate drop - X4_PRES, ///< Pressure drain drop - LAST_FP_PRESSURE_SENSOR = X4_PRES, ///< End of FP pressure sensor group + LAST_FP_PRESSURE_SENSOR = P17_PRES, ///< End of FP pressure sensor group NUM_OF_PRESSURE_SENSORS ///< Number of pressure sensors } PRESSURE_SENSORS_T; Index: firmware/App/Monitors/Pressure.c =================================================================== diff -u -re0102a0a08c0d83bcc8e959551079063e2e60d9f -raeffb83507735fc1c84773e868e20ac7aeb60afc --- firmware/App/Monitors/Pressure.c (.../Pressure.c) (revision e0102a0a08c0d83bcc8e959551079063e2e60d9f) +++ firmware/App/Monitors/Pressure.c (.../Pressure.c) (revision aeffb83507735fc1c84773e868e20ac7aeb60afc) @@ -86,9 +86,10 @@ static FILTER_PRESSURE_READINGS_T filteredPressureReadings[NUM_OF_PRESSURE_SENSORS]; ///< Filtered pressure reading for pressure sensors. static FILTER_PRESSURE_TEMPERATURE_READINGS_T filteredPressureTempReadings[NUM_OF_PRESSURE_SENSORS]; ///< Filtered pressure reading for pressure sensors. static PRESSURE_STATE_T pressuresState; ///< current state of pressure monitor state machine. -static U32 pressuresDataPublicationTimerCounter; ///< used to schedule pressure data publication to CAN bus. -static OVERRIDE_U32_T pressuresDataPublishInterval = { PRESSURES_DATA_PUB_INTERVAL, - PRESSURES_DATA_PUB_INTERVAL, 0, 0 }; ///< Pressure data publish interval. +static U32 ddPressuresDataPublicationTimerCounter; ///< used to schedule DD pressure data publication to CAN bus. +static U32 fpPressuresDataPublicationTimerCounter; ///< used to schedule FP pressure data publication to CAN bus. +static OVERRIDE_U32_T ddPressuresDataPublishInterval; ///< DD Pressure data publish interval. +static OVERRIDE_U32_T fpPressuresDataPublishInterval; ///< FP Pressure data publish interval. // ********** private function prototypes ********** @@ -98,7 +99,8 @@ static F32 getConvertedPressure( PRESSURE_SENSORS_T sensor, F32 pressure ); static PRESSURE_STATE_T handlePressuresInitState( void ); static PRESSURE_STATE_T handlePressuresContReadState( void ); -static void publishPressuresData( void ); +static void publishDDPressuresData( void ); +static void publishFPPressuresData( void ); /*********************************************************************//** * @brief @@ -112,12 +114,13 @@ U32 i; pressuresState = PRESSURE_INIT_STATE; - pressuresDataPublicationTimerCounter = DATA_PUBLISH_COUNTER_START_COUNT; + ddPressuresDataPublicationTimerCounter = DATA_PUBLISH_COUNTER_START_COUNT; + fpPressuresDataPublicationTimerCounter = DATA_PUBLISH_COUNTER_START_COUNT; initPressureSensor(); // Initialize override structures for each pressure sensor - for ( i = (U32)PRESSURE_SENSOR_FIRST; i < (U32)NUM_OF_PRESSURE_SENSORS; i++ ) + for ( i = (U32)FIRST_DD_PRESSURE_SENSOR; i < (U32)NUM_OF_PRESSURE_SENSORS; i++ ) { filteredcurrentPressureReadings[ i ].data = 0.0F; filteredcurrentPressureReadings[ i ].ovData = 0.0F; @@ -137,6 +140,16 @@ filteredPressureTempReadings[i].pressureTempReadingsIdx = 0; filteredPressureTempReadings[i].pressureTempReadingsTotal = 0.0F; } + + ddPressuresDataPublishInterval.data = PRESSURES_DATA_PUB_INTERVAL; + ddPressuresDataPublishInterval.ovData = PRESSURES_DATA_PUB_INTERVAL; + ddPressuresDataPublishInterval.ovInitData = 0; + ddPressuresDataPublishInterval.override = OVERRIDE_RESET; + + fpPressuresDataPublishInterval.data = PRESSURES_DATA_PUB_INTERVAL; + fpPressuresDataPublishInterval.ovData = PRESSURES_DATA_PUB_INTERVAL; + fpPressuresDataPublishInterval.ovInitData = 0; + fpPressuresDataPublishInterval.override = OVERRIDE_RESET; } /*********************************************************************//** @@ -247,7 +260,8 @@ } // publish pressure/occlusion data on interval - publishPressuresData(); + publishDDPressuresData(); + publishFPPressuresData(); } /*********************************************************************//** @@ -260,22 +274,22 @@ *************************************************************************/ static void filterPressureSensorReadings( void ) { - PRESSURE_SENSORS_T i; + PRESSURE_SENSORS_T sensor; - for ( i = PRESSURE_SENSOR_FIRST; i < NUM_OF_PRESSURE_SENSORS; i++ ) + for ( sensor = FIRST_DD_PRESSURE_SENSOR; sensor < NUM_OF_PRESSURE_SENSORS; sensor++ ) { - F32 pressureinPSI = getPressure( i ); - F32 pressure = getConvertedPressure( i, pressureinPSI ); + F32 pressureinPSI = getPressure( sensor ); + F32 pressure = getConvertedPressure( sensor, pressureinPSI ); - if ( filteredPressureReadings[i].pressureReadingsCount >= SIZE_OF_PRESSURE_ROLLING_AVG ) + if ( filteredPressureReadings[sensor].pressureReadingsCount >= SIZE_OF_PRESSURE_ROLLING_AVG ) { - filteredPressureReadings[i].pressureReadingsTotal -= filteredPressureReadings[i].pressureReadings[ filteredPressureReadings[i].pressureReadingsIdx ]; + filteredPressureReadings[sensor].pressureReadingsTotal -= filteredPressureReadings[sensor].pressureReadings[ filteredPressureReadings[sensor].pressureReadingsIdx ]; } - filteredPressureReadings[i].pressureReadings[ filteredPressureReadings[i].pressureReadingsIdx ] = pressure; - filteredPressureReadings[i].pressureReadingsTotal += pressure; - filteredPressureReadings[i].pressureReadingsIdx = INC_WRAP( filteredPressureReadings[i].pressureReadingsIdx, 0, SIZE_OF_PRESSURE_ROLLING_AVG - 1 ); - filteredPressureReadings[i].pressureReadingsCount = INC_CAP( filteredPressureReadings[i].pressureReadingsCount, SIZE_OF_PRESSURE_ROLLING_AVG ); - filteredcurrentPressureReadings[i].data = filteredPressureReadings[i].pressureReadingsTotal / (F32)filteredPressureReadings[i].pressureReadingsCount; + filteredPressureReadings[sensor].pressureReadings[ filteredPressureReadings[sensor].pressureReadingsIdx ] = pressure; + filteredPressureReadings[sensor].pressureReadingsTotal += pressure; + filteredPressureReadings[sensor].pressureReadingsIdx = INC_WRAP( filteredPressureReadings[sensor].pressureReadingsIdx, 0, SIZE_OF_PRESSURE_ROLLING_AVG - 1 ); + filteredPressureReadings[sensor].pressureReadingsCount = INC_CAP( filteredPressureReadings[sensor].pressureReadingsCount, SIZE_OF_PRESSURE_ROLLING_AVG ); + filteredcurrentPressureReadings[sensor].data = filteredPressureReadings[sensor].pressureReadingsTotal / (F32)filteredPressureReadings[sensor].pressureReadingsCount; } } @@ -289,24 +303,25 @@ *************************************************************************/ static void filterPressureSensorTemperatureReadings( void ) { - PRESSURE_SENSORS_T i; + PRESSURE_SENSORS_T sensor; - for ( i = PRESSURE_SENSOR_FIRST; i < NUM_OF_PRESSURE_SENSORS; i++ ) + for ( sensor = FIRST_DD_PRESSURE_SENSOR; sensor < NUM_OF_PRESSURE_SENSORS; sensor++ ) { - F32 pressureTemperature = getPressureSensorTemperature( i ); + F32 pressureTemperature = getPressureSensorTemperature( sensor ); - if ( filteredPressureTempReadings[i].pressureTempReadingsCount >= SIZE_OF_PRESSURETEMP_ROLLING_AVG ) + if ( filteredPressureTempReadings[sensor].pressureTempReadingsCount >= SIZE_OF_PRESSURETEMP_ROLLING_AVG ) { - filteredPressureTempReadings[i].pressureTempReadingsTotal -= filteredPressureTempReadings[i].pressureTempReadings[ filteredPressureTempReadings[i].pressureTempReadingsIdx ]; + filteredPressureTempReadings[sensor].pressureTempReadingsTotal -= filteredPressureTempReadings[sensor].pressureTempReadings[ filteredPressureTempReadings[sensor].pressureTempReadingsIdx ]; } - filteredPressureTempReadings[i].pressureTempReadings[ filteredPressureTempReadings[i].pressureTempReadingsIdx ] = pressureTemperature; - filteredPressureTempReadings[i].pressureTempReadingsTotal += pressureTemperature; - filteredPressureTempReadings[i].pressureTempReadingsIdx = INC_WRAP( filteredPressureTempReadings[i].pressureTempReadingsIdx, 0, SIZE_OF_PRESSURETEMP_ROLLING_AVG - 1 ); - filteredPressureTempReadings[i].pressureTempReadingsCount = INC_CAP( filteredPressureTempReadings[i].pressureTempReadingsCount, SIZE_OF_PRESSURETEMP_ROLLING_AVG ); - filteredcurrentPresTempReadings[i].data = filteredPressureTempReadings[i].pressureTempReadingsTotal / (F32)filteredPressureTempReadings[i].pressureTempReadingsCount; + filteredPressureTempReadings[sensor].pressureTempReadings[ filteredPressureTempReadings[sensor].pressureTempReadingsIdx ] = pressureTemperature; + filteredPressureTempReadings[sensor].pressureTempReadingsTotal += pressureTemperature; + filteredPressureTempReadings[sensor].pressureTempReadingsIdx = INC_WRAP( filteredPressureTempReadings[sensor].pressureTempReadingsIdx, 0, SIZE_OF_PRESSURETEMP_ROLLING_AVG - 1 ); + filteredPressureTempReadings[sensor].pressureTempReadingsCount = INC_CAP( filteredPressureTempReadings[sensor].pressureTempReadingsCount, SIZE_OF_PRESSURETEMP_ROLLING_AVG ); + filteredcurrentPresTempReadings[sensor].data = filteredPressureTempReadings[sensor].pressureTempReadingsTotal / (F32)filteredPressureTempReadings[sensor].pressureTempReadingsCount; } } +// ToDo decide once BARO sensor location is finalized /*********************************************************************//** * @brief * The getConvertedPressure function converts the pressure in PSI unit and @@ -319,7 +334,7 @@ *************************************************************************/ static F32 getConvertedPressure( PRESSURE_SENSORS_T sensor, F32 pressure ) { - F32 baroPressurePSI = getPressure( BARO_PRES ) * MMHG_TO_PSI_CONVERSION; +// F32 baroPressurePSI = getPressure( BARO_PRES ) * MMHG_TO_PSI_CONVERSION; // calibrated pressure //F32 calPressure = getCalibrationAppliedPressure( sensor, pressure ); @@ -383,64 +398,108 @@ /*********************************************************************//** * @brief - * The publishPressuresData function publishes DD pressures data at a set interval. - * @details \b Inputs: pressuresDataPublicationTimerCounter - * @details \b Outputs: pressuresDataPublicationTimerCounter + * The publishDDPressuresData function publishes DD pressures data at a set interval. + * @details \b Inputs: ddPressuresDataPublicationTimerCounter + * @details \b Outputs: ddPressuresDataPublicationTimerCounter * @details \b Message \b Sent: MSG_ID_DD_PRESSURES_DATA to publish pressure data. * @return none *************************************************************************/ -static void publishPressuresData( void ) +static void publishDDPressuresData( void ) { // publish pressure/occlusion data on interval - if ( ++pressuresDataPublicationTimerCounter >= getU32OverrideValue( &pressuresDataPublishInterval ) ) + if ( ++ddPressuresDataPublicationTimerCounter >= getU32OverrideValue( &ddPressuresDataPublishInterval ) ) { - PRESSURE_TEMP_DATA_T data; + PRESSURE_DD_TEMP_DATA_T data; - data.m1Pressure = getFilteredPressure( M1_PRES ); - data.m3Pressure = getFilteredPressure( M3_PRES ); data.d9Pressure = getFilteredPressure( D9_PRES ); data.d66Pressure = getFilteredPressure( D66_PRES ); data.d51Pressure = getFilteredPressure( D51_PRES ); data.d18Pressure = getFilteredPressure( D18_PRES ); data.d41Pressure = getFilteredPressure( D41_PRES ); - data.m1PresTemp = getFilteredPressureSensorTemperature( M1_PRES ); - data.m3PresTemp = getFilteredPressureSensorTemperature( M3_PRES ); data.d9PresTemp = getFilteredPressureSensorTemperature( D9_PRES ); data.d66PresTemp = getFilteredPressureSensorTemperature( D66_PRES ); data.d51PresTemp = getFilteredPressureSensorTemperature( D51_PRES ); data.d18PresTemp = getFilteredPressureSensorTemperature( D18_PRES ); data.d41PresTemp = getFilteredPressureSensorTemperature( D41_PRES ); - pressuresDataPublicationTimerCounter = 0; + ddPressuresDataPublicationTimerCounter = 0; - broadcastData( MSG_ID_DD_PRESSURES_DATA, COMM_BUFFER_OUT_CAN_DD_BROADCAST, (U08*)&data, sizeof( PRESSURE_TEMP_DATA_T ) ); + broadcastData( MSG_ID_DD_PRESSURES_DATA, COMM_BUFFER_OUT_CAN_DD_BROADCAST, (U08*)&data, sizeof( PRESSURE_DD_TEMP_DATA_T ) ); } } +/*********************************************************************//** + * @brief + * The publishFPPressuresData function publishes FP pressures data at a set interval. + * @details \b Inputs: fpPressuresDataPublicationTimerCounter + * @details \b Outputs: fpPressuresDataPublicationTimerCounter + * @details \b Message \b Sent: MSG_ID_FP_PRESSURES_DATA to publish pressure data. + * @return none + *************************************************************************/ +static void publishFPPressuresData( void ) +{ + // publish pressure/occlusion data on interval + if ( ++fpPressuresDataPublicationTimerCounter >= getU32OverrideValue( &fpPressuresDataPublishInterval ) ) + { + PRESSURE_FP_TEMP_DATA_T data; + data.m1Pressure = getFilteredPressure( M1_PRES ); + data.m3Pressure = getFilteredPressure( M3_PRES ); + data.p8Pressure = getFilteredPressure( P8_PRES ); + data.p13Pressure = getFilteredPressure( P13_PRES ); + data.p17Pressure = getFilteredPressure( P17_PRES ); + data.m1PresTemp = getFilteredPressureSensorTemperature( M1_PRES ); + data.m3PresTemp = getFilteredPressureSensorTemperature( M3_PRES ); + data.p8PresTemp = getFilteredPressureSensorTemperature( P8_PRES ); + data.p13PresTemp = getFilteredPressureSensorTemperature( P13_PRES ); + data.p17PresTemp = getFilteredPressureSensorTemperature( P17_PRES ); + + broadcastData( MSG_ID_FP_PRESSURES_DATA, COMM_BUFFER_OUT_CAN_FP_BROADCAST, (U08*)&data, sizeof( PRESSURE_FP_TEMP_DATA_T ) ); + fpPressuresDataPublicationTimerCounter = 0; + } +} + + /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/ /*********************************************************************//** * @brief - * The testPressureSensorDataPublishIntervalOverride function overrides the - * pressure sensor data publish interval. + * The testDDPressureSensorDataPublishIntervalOverride function overrides the + * DD pressure sensor data publish interval. * @details \b Inputs: none - * @details \b Outputs: pressuresDataPublishInterval + * @details \b Outputs: ddPressuresDataPublishInterval * @param message Override message from Dialin which includes the value - * that override valves states publish interval with (in ms) + * that override DD pressure data publish interval with (in ms) * @return TRUE if override successful, FALSE if not *************************************************************************/ -BOOL testPressureSensorDataPublishIntervalOverride( MESSAGE_T *message ) +BOOL testDDPressureSensorDataPublishIntervalOverride( MESSAGE_T *message ) { - BOOL result = u32BroadcastIntervalOverride( message, &pressuresDataPublishInterval, TASK_PRIORITY_INTERVAL ); + BOOL result = u32BroadcastIntervalOverride( message, &ddPressuresDataPublishInterval, TASK_PRIORITY_INTERVAL ); return result; } /*********************************************************************//** * @brief + * The testFPPressureSensorDataPublishIntervalOverride function overrides the + * FP pressure sensor data publish interval. + * @details \b Inputs: none + * @details \b Outputs: fpPressuresDataPublishInterval + * @param message Override message from Dialin which includes the value + * that override FP pressure data publish interval with (in ms) + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testFPPressureSensorDataPublishIntervalOverride( MESSAGE_T *message ) +{ + BOOL result = u32BroadcastIntervalOverride( message, &fpPressuresDataPublishInterval, TASK_PRIORITY_INTERVAL ); + + return result; +} + +/*********************************************************************//** + * @brief * The testPressureSensorFilteredReadingsOverride function overrides the * filtered value of the specified pressure sensor with a given value. * @details \b Inputs: none @@ -451,7 +510,7 @@ *************************************************************************/ BOOL testPressureSensorFilteredReadingsOverride( MESSAGE_T *message ) { - BOOL result = f32ArrayOverride( message, &filteredcurrentPressureReadings[0], NUM_OF_PRESSURE_SENSORS - 1 ); + BOOL result = f32ArrayOverride( message, &filteredcurrentPressureReadings[0], LAST_DD_PRESSURE_SENSOR ); return result; } @@ -468,7 +527,7 @@ *************************************************************************/ BOOL testPressureSensorFilteredTemperatureReadingsOverride( MESSAGE_T *message ) { - BOOL result = f32ArrayOverride( message, &filteredcurrentPresTempReadings[0], NUM_OF_PRESSURE_SENSORS - 1 ); + BOOL result = f32ArrayOverride( message, &filteredcurrentPresTempReadings[0], LAST_DD_PRESSURE_SENSOR ); return result; } Index: firmware/App/Monitors/Pressure.h =================================================================== diff -u -r67731d57db9a620418b3b848d8f75ff204902c36 -raeffb83507735fc1c84773e868e20ac7aeb60afc --- firmware/App/Monitors/Pressure.h (.../Pressure.h) (revision 67731d57db9a620418b3b848d8f75ff204902c36) +++ firmware/App/Monitors/Pressure.h (.../Pressure.h) (revision aeffb83507735fc1c84773e868e20ac7aeb60afc) @@ -32,25 +32,36 @@ // ********** public definitions ********** -/// Pressure data struct. +/// DD Pressure data struct. typedef struct { - F32 m1Pressure; ///< Water Inlet Input pressure - F32 m3Pressure; ///< Water Inlet Output pressure F32 d9Pressure; ///< Hydraulics outlet pressure F32 d66Pressure; ///< Bicarb bag pressure F32 d51Pressure; ///< Spent Dialysate pressure F32 d18Pressure; ///< Fresh Dialysate pressure F32 d41Pressure; ///< Transmembrane pressure - F32 m1PresTemp; ///< Water Inlet Input temperature - F32 m3PresTemp; ///< Water Inlet Output temperature F32 d9PresTemp; ///< Hydraulics outlet pressure temperature F32 d66PresTemp; ///< Bicarb bag temperature F32 d51PresTemp; ///< Spent Dialysate temperature F32 d18PresTemp; ///< Fresh Dialysate temperature F32 d41PresTemp; ///< Transmembrane temperature -} PRESSURE_TEMP_DATA_T; +} PRESSURE_DD_TEMP_DATA_T; +/// FP Pressure data struct. +typedef struct +{ + F32 m1Pressure; ///< Water Inlet Input pressure + F32 m3Pressure; ///< Water Inlet Output pressure + F32 p8Pressure; ///< Pressure before inlet conductivity sensor (P8) + F32 p13Pressure; ///< Pressure before RO filter (P13) + F32 p17Pressure; ///< Pressure after RO filter (P17) + F32 m1PresTemp; ///< Water Inlet Input temperature + F32 m3PresTemp; ///< Water Inlet Output temperature + F32 p8PresTemp; ///< temperature before inlet conductivity sensor (P8) + F32 p13PresTemp; ///< temperature before RO filter (P13) + F32 p17PresTemp; ///< temperature after RO filter (P17) +} PRESSURE_FP_TEMP_DATA_T; + // ********** public function prototypes ********** void initPressure( void ); @@ -59,7 +70,8 @@ F32 getFilteredPressure( PRESSURE_SENSORS_T sensor ); F32 getFilteredPressureSensorTemperature( PRESSURE_SENSORS_T sensor ); -BOOL testPressureSensorDataPublishIntervalOverride( MESSAGE_T *message ); +BOOL testDDPressureSensorDataPublishIntervalOverride( MESSAGE_T *message ); +BOOL testFPPressureSensorDataPublishIntervalOverride( MESSAGE_T *message ); BOOL testPressureSensorFilteredReadingsOverride( MESSAGE_T *message ); BOOL testPressureSensorFilteredTemperatureReadingsOverride( MESSAGE_T *message ); Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r65824878503f019bf9db443c867e27df8de27c51 -raeffb83507735fc1c84773e868e20ac7aeb60afc --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 65824878503f019bf9db443c867e27df8de27c51) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision aeffb83507735fc1c84773e868e20ac7aeb60afc) @@ -117,7 +117,7 @@ { MSG_ID_DD_VALVE_SENSED_STATE_OVERRIDE_REQUEST, &testValveSensedStateOverride }, { MSG_ID_DD_PRESSURE_SENSOR_READINGS_OVERRIDE_REQUEST, &testDDPressureSensorReadingsOverride }, { MSG_ID_DD_PRESSURE_SENSOR_TEMPERATURE_OVERRIDE_REQUEST, &testDDPressureSensorTemperatureReadingsOverride }, - { MSG_ID_DD_PRESSURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testPressureSensorDataPublishIntervalOverride }, + { MSG_ID_DD_PRESSURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testDDPressureSensorDataPublishIntervalOverride }, { MSG_ID_DD_PRESSURE_SENSOR_FILTER_READINGS_OVERRIDE_REQUEST, &testPressureSensorFilteredReadingsOverride }, { MSG_ID_DD_PRESSURE_SENSOR_FILTER_TEMPERATURE_OVERRIDE_REQUEST, &testPressureSensorFilteredTemperatureReadingsOverride }, { MSG_ID_DD_CONDUCTIVITY_SENSOR_READINGS_OVERRIDE_REQUEST, &testConductivitySensorReadingsOverride }, @@ -206,6 +206,7 @@ { MSG_ID_FP_RO_PUMP_TARGET_PWM_OVERRIDE_REQUEST, &testROPumpTargetDutyCycleOverride }, { MSG_ID_FP_PRESSURE_OVERRIDE_REQUEST, &testFPPressureSensorReadingsOverride }, { MSG_ID_FP_PRESSURE_TEMP_OVERRIDE_REQUEST, &testFPPressureSensorTemperatureReadingsOverride }, + { MSG_ID_FP_PRESSURE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testFPPressureSensorDataPublishIntervalOverride }, }; #define NUM_OF_FUNCTION_HANDLERS (sizeof(MSG_FUNCTION_HANDLER_LOOKUP) / sizeof(MSG_HANDLER_LOOKUP_T))