Index: firmware/App/Drivers/PressureSensor.c =================================================================== diff -u -reaa0ce5fe4890d9c7ff14d14828ea90209c1ad97 -r6f961c6e113a4076ba9d5f97e078a398a8976d7c --- firmware/App/Drivers/PressureSensor.c (.../PressureSensor.c) (revision eaa0ce5fe4890d9c7ff14d14828ea90209c1ad97) +++ firmware/App/Drivers/PressureSensor.c (.../PressureSensor.c) (revision 6f961c6e113a4076ba9d5f97e078a398a8976d7c) @@ -39,36 +39,13 @@ #define BAR_TO_MMHG ( 750.062F ) ///< Conversion factor for converting bar to mmHg. #define PRES_SENSORS_READ_ERR_MAX_CNT 255 ///< Pressure sensor read and error max count value -/// Barometric sensor conversion coefficients -typedef struct -{ - U16 pressureSensitivity; ///< Barometric sensor pressure sensitivity constant. - U16 pressureOffset; ///< Barometric sensor pressure offset constant. - U16 pressureSensitivityTempCoeff; ///< Barometric sensor pressure sensitivity temperature coefficient. - U16 pressureOffsetTempCoeff; ///< Barometric sensor pressure offset temperature coefficient. -} BARO_SENSOR_CONSTS_T; - // ********** private data ********** static OVERRIDE_F32_T currentPressureReadings[ NUM_OF_PRESSURE_SENSORS ]; ///< Current pressure sensor pressure readings (overrideable). static OVERRIDE_F32_T currentPresTempReadings[ NUM_OF_PRESSURE_SENSORS ]; ///< Current pressure sensor temperature readings (overrideable). -static OVERRIDE_U32_T lastPressureReadCounter[ NUM_OF_PRESSURE_SENSORS ]; ///< Last pressure sensor read count (Overrideable). -static OVERRIDE_U32_T lastPressureErrorCounter[ NUM_OF_PRESSURE_SENSORS ]; ///< Last pressure sensor error count (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. - // ********** private function prototypes ********** -static void checkPressureSensors( void ); -static F32 convertBaroPressureReading2mmHg( U32 rawPressure ); -static F32 calculateBaroPressure( U32 pressure ); - /*********************************************************************//** * @brief * The initPressureSensor function initializes the Pressure Sensor unit. @@ -78,53 +55,21 @@ *************************************************************************/ void initPressureSensor( void ) { - U32 i; + U32 sensor; // Initialize override structures for each pressure sensor - for ( i = (U32)PRESSURE_SENSOR_FIRST; i < (U32)NUM_OF_PRESSURE_SENSORS; i++ ) + for ( sensor = (U32)FIRST_DD_PRESSURE_SENSOR; sensor < (U32)NUM_OF_PRESSURE_SENSORS; sensor++ ) { - currentPressureReadings[ i ].data = 0.0F; - currentPressureReadings[ i ].ovData = 0.0F; - currentPressureReadings[ i ].ovInitData = 0.0F; - currentPressureReadings[ i ].override = OVERRIDE_RESET; + currentPressureReadings[ sensor ].data = 0.0F; + currentPressureReadings[ sensor ].ovData = 0.0F; + currentPressureReadings[ sensor ].ovInitData = 0.0F; + currentPressureReadings[ sensor ].override = OVERRIDE_RESET; - currentPresTempReadings[ i ].data = 0.0F; - currentPresTempReadings[ i ].ovData = 0.0F; - currentPresTempReadings[ i ].ovInitData = 0.0F; - currentPresTempReadings[ i ].override = OVERRIDE_RESET; - - lastPressureReadCounter[ i ].data = 0; - lastPressureReadCounter[ i ].ovData = 0; - lastPressureReadCounter[ i ].ovInitData = 0; - lastPressureReadCounter[ i ].override = OVERRIDE_RESET; - - lastPressureErrorCounter[ i ].data = 0; - lastPressureErrorCounter[ i ].ovData = 0; - lastPressureErrorCounter[ i ].ovInitData = 0; - lastPressureErrorCounter[ i ].override = OVERRIDE_RESET; + currentPresTempReadings[ sensor ].data = 0.0F; + currentPresTempReadings[ sensor ].ovData = 0.0F; + currentPresTempReadings[ sensor ].ovInitData = 0.0F; + currentPresTempReadings[ sensor ].override = OVERRIDE_RESET; } - - //Initialize baro variable - baroConvConsts.pressureOffset = 0; - baroConvConsts.pressureOffsetTempCoeff = 0; - baroConvConsts.pressureSensitivity = 0; - baroConvConsts.pressureSensitivityTempCoeff = 0; - - // Initialize the FPGA persistent alarms - initFPGAPersistentAlarm( FPGA_PERS_ERROR_HYDRAULICS_OUTLET_PRESSURE, ALARM_ID_DD_HYD_OUTLET_PRES_TIMEOUT_FAULT, - PRES_SENSORS_COUNT_ERROR_TIMEOUT_MS, PRES_SENSORS_COUNT_ERROR_TIMEOUT_MS ); - initFPGAPersistentAlarm( FPGA_PERS_ERROR_BIBAG_PRESSURE, ALARM_ID_DD_BIBAG_PRES_TIMEOUT_FAULT, - PRES_SENSORS_COUNT_ERROR_TIMEOUT_MS, PRES_SENSORS_COUNT_ERROR_TIMEOUT_MS ); - initFPGAPersistentAlarm( FPGA_PERS_ERROR_SPENT_DIALYSATE_PRESSURE, ALARM_ID_DD_SPENT_DIALYSATE_PRES_TIMEOUT_FAULT, - PRES_SENSORS_COUNT_ERROR_TIMEOUT_MS, PRES_SENSORS_COUNT_ERROR_TIMEOUT_MS ); - initFPGAPersistentAlarm( FPGA_PERS_ERROR_FRESH_DIALYSATE_PRESSURE, ALARM_ID_DD_FRESH_DIALYSATE_PRES_TIMEOUT_FAULT, - PRES_SENSORS_COUNT_ERROR_TIMEOUT_MS, PRES_SENSORS_COUNT_ERROR_TIMEOUT_MS ); - initFPGAPersistentAlarm( FPGA_PERS_ERROR_TRANSMEMBRANE_PRESSURE, ALARM_ID_DD_TRANSMEMB_PRES_TIMEOUT_FAULT, - PRES_SENSORS_COUNT_ERROR_TIMEOUT_MS, PRES_SENSORS_COUNT_ERROR_TIMEOUT_MS ); - initFPGAPersistentAlarm( FPGA_PERS_ERROR_WATER_INLET_INPUT_PRESSURE, ALARM_ID_DD_WATER_INLET_INPUT_PRES_TIMEOUT_FAULT, - PRES_SENSORS_COUNT_ERROR_TIMEOUT_MS, PRES_SENSORS_COUNT_ERROR_TIMEOUT_MS ); - initFPGAPersistentAlarm( FPGA_PERS_ERROR_WATER_INLET_OUTPUT_PRESSURE, ALARM_ID_DD_WATER_INLET_OUTPUT_PRES_TIMEOUT_FAULT, - PRES_SENSORS_COUNT_ERROR_TIMEOUT_MS, PRES_SENSORS_COUNT_ERROR_TIMEOUT_MS ); } /*********************************************************************//** @@ -145,141 +90,32 @@ F32 presMinPSI = PRES_MIN_PSI; // Update and convert raw pressures to mmHg - if ( getTestConfigStatus( TEST_CONFIG_BETA_HW ) != TRUE ) - { - presMinPSI = PRES_MIN_PSI_ALPHA; - currentPressureReadings[ M1_PRES ].data = convertPressureReading( getFPGAM1PresRawPressure(), presMinPSI, HIGH_PRES_MAX_PSI ); - currentPressureReadings[ M3_PRES ].data = convertPressureReading( getFPGAM3PresRawPressure(), presMinPSI, HIGH_PRES_MAX_PSI ); - currentPressureReadings[ D9_PRES ].data = convertPressureReading( getFPGAD9PresRawPressure(), presMinPSI, HIGH_PRES_MAX_PSI ); - } - else - { - currentPressureReadings[ M1_PRES ].data = convertPressureReading( getFPGAM1PresRawPressure(), presMinPSI, LOW_PRES_MAX_PSI ); - currentPressureReadings[ M3_PRES ].data = convertPressureReading( getFPGAM3PresRawPressure(), presMinPSI, LOW_PRES_MAX_PSI ); - currentPressureReadings[ D9_PRES ].data = convertPressureReading( getFPGAD9PresRawPressure(), presMinPSI, LOW_PRES_MAX_PSI ); - } - + currentPressureReadings[ D9_PRES ].data = convertPressureReading( getFPGAD9PresRawPressure(), presMinPSI, LOW_PRES_MAX_PSI ); currentPressureReadings[ D66_PRES ].data = convertPressureReading( getFPGAD66PresRawPressure(), presMinPSI, LOW_PRES_MAX_PSI ); 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[ BARO_PRES ].data = convertBaroPressureReading2mmHg( getFPGABaroPressure() ); + currentPressureReadings[ M1_PRES ].data = convertPressureReading( getFPGAM1RawPressure(), presMinPSI, HIGH_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 ); + currentPressureReadings[ P17_PRES ].data = convertPressureReading( getFPGAP17RawPressure(), presMinPSI, HIGH_PRES_MAX_PSI ); // Update and convert raw pressure sensor temperatures to deg C - currentPresTempReadings[ M1_PRES ].data = convertPressureTempReading2DegC( getFPGAM1PresRawTemperature() ); - currentPresTempReadings[ M3_PRES ].data = convertPressureTempReading2DegC( getFPGAM3PresRawTemperature() ); currentPresTempReadings[ D9_PRES ].data = convertPressureTempReading2DegC( getFPGAD9PresRawTemperature() ); currentPresTempReadings[ D66_PRES ].data = convertPressureTempReading2DegC( getFPGAD66PresRawTemperature() ); currentPresTempReadings[ D51_PRES ].data = convertPressureTempReading2DegC( getFPGAD51PresRawTemperature() ); currentPresTempReadings[ D18_PRES ].data = convertPressureTempReading2DegC( getFPGAD18PresRawTemperature() ); currentPresTempReadings[ D41_PRES ].data = convertPressureTempReading2DegC( getFPGAD41PresRawTemperature() ); - - // Update read and error counters for each pressure sensor - lastPressureReadCounter[ M1_PRES ].data = (U32)getFPGAM1PresReadCount(); - lastPressureReadCounter[ M3_PRES ].data = (U32)getFPGAM3PresReadCount(); - lastPressureReadCounter[ D9_PRES ].data = (U32)getFPGAD9PresReadCount(); - lastPressureReadCounter[ D66_PRES ].data = (U32)getFPGAD66PresReadCount(); - lastPressureReadCounter[ D51_PRES ].data = (U32)getFPGAD51PresReadCount(); - lastPressureReadCounter[ D18_PRES ].data = (U32)getFPGAD18PresReadCount(); - lastPressureReadCounter[ D41_PRES ].data = (U32)getFPGAD41PresReadCount(); - - lastPressureErrorCounter[ M1_PRES ].data = (U32)getFPGAM1PresErrorCount(); - lastPressureErrorCounter[ M3_PRES ].data = (U32)getFPGAM3PresErrorCount(); - lastPressureErrorCounter[ D9_PRES ].data = (U32)getFPGAD9PresErrorCount(); - lastPressureErrorCounter[ D66_PRES ].data = (U32)getFPGAD66PresErrorCount(); - lastPressureErrorCounter[ D51_PRES ].data = (U32)getFPGAD51PresErrorCount(); - lastPressureErrorCounter[ D18_PRES ].data = (U32)getFPGAD18PresErrorCount(); - lastPressureErrorCounter[ D41_PRES ].data = (U32)getFPGAD41PresErrorCount(); - - // Monitor pressure sensor health - checkPressureSensors(); + currentPresTempReadings[ M1_PRES ].data = convertPressureTempReading2DegC( getFPGAM1RawTemperature() ); + currentPresTempReadings[ M3_PRES ].data = convertPressureTempReading2DegC( getFPGAM3RawTemperature() ); + currentPresTempReadings[ P8_PRES ].data = convertPressureTempReading2DegC( getFPGAP8RawTemperature() ); + currentPresTempReadings[ P13_PRES ].data = convertPressureTempReading2DegC( getFPGAP13RawTemperature() ); + currentPresTempReadings[ P17_PRES ].data = convertPressureTempReading2DegC( getFPGAP17RawTemperature() ); } /*********************************************************************//** * @brief - * The convertBaroPressureReading2mmHg function converts the raw pressure counts - * in to mmHg unit. - * @details \b Inputs: FPGA - * @details \b Outputs: baroConvConsts - * @param rawPressure the raw baro sensor reading from FPGA. - * @return the converted baro pressure (in mmHg). - *************************************************************************/ -static F32 convertBaroPressureReading2mmHg( U32 rawPressure ) -{ - F32 baroPressure = 0.0F; - - baroConvConsts.pressureSensitivity = getFPGABaroPressureSensitivity(); - baroConvConsts.pressureSensitivityTempCoeff = getFPGABaroTempCoeffOfPressSensitvity(); - baroConvConsts.pressureOffset = getFPGABaroPressureOffset(); - baroConvConsts.pressureOffsetTempCoeff = getFPGABaroTempCoeffOfPressOffset(); - baroPressure = calculateBaroPressure( rawPressure ); - - return baroPressure; -} - -/*********************************************************************//** - * @brief - * The calculateBaroPressure function performs the required calculations - * to compute the baro pressure readings. - * @details \b Inputs: baroConvConsts - * @details \b Outputs: none - * @param pressure the raw baro sensor reading from FPGA. - * @return converted baro pressure (in mmHg). - *************************************************************************/ -static F32 calculateBaroPressure( U32 pressure ) -{ - S32 tempDiff = getBaroSensorTemperatureDiff(); - S64 tempOffset = ( baroConvConsts.pressureOffsetTempCoeff * tempDiff ) / TWO_TO_POWER_OF_6; - S64 presOffset = baroConvConsts.pressureOffset * TWO_TO_POWER_OF_17; - S64 offset = presOffset + tempOffset; - S64 tempSensitivity = ( baroConvConsts.pressureSensitivityTempCoeff * tempDiff ) / TWO_TO_POWER_OF_7; - S64 presSensitivity = baroConvConsts.pressureSensitivity * TWO_TO_POWER_OF_16; - S64 sensitivity = tempSensitivity + presSensitivity; - S32 pres = (S32)( ( ( pressure * sensitivity ) / TWO_TO_POWER_OF_21 ) - offset ) / TWO_TO_POWER_OF_15; - F32 presmmHg = ( (F32)pres / (F32)( COUNTS_TO_MILLI_BAR * ONE_BAR_TO_MILLI_BAR ) ) * BAR_TO_MMHG; - - return presmmHg; -} - -/*********************************************************************//** - * @brief - * The checkPressureSensors function checks the read and error counters for - * each pressure sensor. - * @details \b Alarm: ALARM_ID_DD_HYD_OUTLET_PRES_TIMEOUT_FAULT if the - * hydraulics outlet pressure sensor is not able to be read. - * @details \b Alarm: ALARM_ID_DD_BIBAG_PRES_TIMEOUT_FAULT if the - * BiBag pressure sensor is not able to be read. - * @details \b Alarm: ALARM_ID_DD_SPENT_DIALYSATE_PRES_TIMEOUT_FAULT if the - * spent dialysate pressure sensor is not able to be read. - * @details \b Alarm: ALARM_ID_DD_FRESH_DIALYSATE_PRES_TIMEOUT_FAULT if the - * fresh dialysate pressure sensor is not able to be read. - * @details \b Alarm: ALARM_ID_DD_TRANSMEMB_PRES_TIMEOUT_FAULT if the - * Transmembrane pressure sensor is not able to be read. - * @details \b Inputs: lastPressureReadCounter, lastPressureErrorCounter - * @details \b Outputs: none - * @return none - *************************************************************************/ -static void checkPressureSensors( void ) -{ - checkFPGAPersistentAlarms( FPGA_PERS_ERROR_WATER_INLET_INPUT_PRESSURE, getPressureSensorReadCount( M1_PRES ) ); - checkFPGAPersistentAlarms( FPGA_PERS_ERROR_WATER_INLET_OUTPUT_PRESSURE, getPressureSensorReadCount( M3_PRES ) ); - checkFPGAPersistentAlarms( FPGA_PERS_ERROR_HYDRAULICS_OUTLET_PRESSURE, getPressureSensorReadCount( D9_PRES ) ); - checkFPGAPersistentAlarms( FPGA_PERS_ERROR_BIBAG_PRESSURE, getPressureSensorReadCount( D66_PRES ) ); - checkFPGAPersistentAlarms( FPGA_PERS_ERROR_SPENT_DIALYSATE_PRESSURE, getPressureSensorReadCount( D51_PRES ) ); - checkFPGAPersistentAlarms( FPGA_PERS_ERROR_FRESH_DIALYSATE_PRESSURE, getPressureSensorReadCount( D18_PRES ) ); - checkFPGAPersistentAlarms( FPGA_PERS_ERROR_TRANSMEMBRANE_PRESSURE, getPressureSensorReadCount( D41_PRES ) ); - - checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_WATER_INLET_INPUT_PRESSURE, getPressureSensorErrorCount( M1_PRES ) ); - checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_WATER_INLET_OUTPUT_PRESSURE, getPressureSensorErrorCount( M3_PRES ) ); - checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_HYDRAULICS_OUTLET_PRESSURE, getPressureSensorErrorCount( D9_PRES ) ); - checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_BIBAG_PRESSURE, getPressureSensorErrorCount( D66_PRES ) ); - checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_SPENT_DIALYSATE_PRESSURE, getPressureSensorErrorCount( D51_PRES ) ); - checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_FRESH_DIALYSATE_PRESSURE, getPressureSensorErrorCount( D18_PRES ) ); - checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_TRANSMEMBRANE_PRESSURE, getPressureSensorErrorCount( D41_PRES ) ); -} - -/*********************************************************************//** - * @brief * The getPressure function gets the current pressure (in mmHg) for a given * pressure sensor. * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if given sensor is invalid. @@ -338,137 +174,91 @@ return result; } -/*********************************************************************//** - * @brief - * The getPressureSensorReadCount function gets the current pressure sensor - * read count for a given pressure sensor. - * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if given sensor is invalid. - * @details \b Inputs: lastPressureReadCounter - * @details \b Outputs: none - * @param sensor ID of pressure sensor to get read count for. - * @return The current pressure sensor read count of a given pressure sensor. - *************************************************************************/ -U32 getPressureSensorReadCount( PRESSURE_SENSORS_T sensor ) -{ - U32 result = 0; - if ( sensor < NUM_OF_PRESSURE_SENSORS ) - { - result = lastPressureReadCounter[ sensor ].data; - if ( OVERRIDE_KEY == lastPressureReadCounter[ sensor ].override ) - { - result = lastPressureReadCounter[ sensor ].ovData; - } - } - else - { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_PRESSURE_SENSOR_INVALID_SENSOR3, sensor ) - } - - return result; -} - -/*********************************************************************//** - * @brief - * The getPressureSensorErrorCount function gets the current pressure sensor - * error count for a given pressure sensor. - * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if given sensor is invalid. - * @details \b Inputs: lastPressureErrorCounter - * @details \b Outputs: none - * @param sensor ID of pressure sensor to get error count for. - * @return The current pressure sensor error count of a given pressure sensor. - *************************************************************************/ -U32 getPressureSensorErrorCount( PRESSURE_SENSORS_T sensor ) -{ - U32 result = 0; - - if ( sensor < NUM_OF_PRESSURE_SENSORS ) - { - result = lastPressureErrorCounter[ sensor ].data; - if ( OVERRIDE_KEY == lastPressureErrorCounter[ sensor ].override ) - { - result = lastPressureErrorCounter[ sensor ].ovData; - } - } - else - { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_PRESSURE_SENSOR_INVALID_SENSOR4, sensor ) - } - - return result; -} - - /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/ /*********************************************************************//** * @brief - * The testPressureSensorReadingsOverride function overrides the value of the - * specified pressure sensor with a given value. + * The testDDPressureSensorReadingsOverride function overrides the value of the + * specified DD pressure sensor with a given value. * @details \b Inputs: none * @details \b Outputs: currentPressureReadings[] * @param message Override message from Dialin which includes an sensor - * ID and override value of the pressure sensor. + * ID and override value of the DD pressure sensor. * @return TRUE if override successful, FALSE if not *************************************************************************/ -BOOL testPressureSensorReadingsOverride( MESSAGE_T *message ) +BOOL testDDPressureSensorReadingsOverride( MESSAGE_T *message ) { - BOOL result = f32ArrayOverride( message, ¤tPressureReadings[0], NUM_OF_PRESSURE_SENSORS - 1 ); + BOOL result = f32ArrayOverride( message, ¤tPressureReadings[0], LAST_DD_PRESSURE_SENSOR ); return result; } /*********************************************************************//** * @brief - * The testPressureSensorTemperatureReadingsOverride function overrides the value of the - * specified pressure sensor temperature with a given value. + * The testDDPressureSensorTemperatureReadingsOverride function overrides the value of the + * specified DD pressure sensor temperature with a given value. * @details \b Inputs: none * @details \b Outputs: currentPresTempReadings[] * @param message Override message from Dialin which includes an sensor - * ID and override value of the pressure sensor temperature. + * ID and override value of the DD pressure sensor temperature. * @return TRUE if override successful, FALSE if not *************************************************************************/ -BOOL testPressureSensorTemperatureReadingsOverride( MESSAGE_T *message ) +BOOL testDDPressureSensorTemperatureReadingsOverride( MESSAGE_T *message ) { - BOOL result = f32ArrayOverride( message, ¤tPresTempReadings[0], NUM_OF_PRESSURE_SENSORS - 1 ); + BOOL result = f32ArrayOverride( message, ¤tPresTempReadings[0], LAST_DD_PRESSURE_SENSOR ); return result; } /*********************************************************************//** * @brief - * The testPressureSensorReadCounterOverride function overrides the value of the - * specified pressure sensor read counter with a given value. + * The testIOFPPressureSensorReadingsOverride function overrides the value of + * the specified IOFP pressure sensor with a given value. * @details \b Inputs: none - * @details \b Outputs: lastPressureReadCounter[] + * @details \b Outputs: currentPressureReadings[] * @param message Override message from Dialin which includes an sensor - * ID and override value of the pressure sensor read counter. + * ID and override value of the IOFP pressure sensor. * @return TRUE if override successful, FALSE if not *************************************************************************/ -BOOL testPressureSensorReadCounterOverride( MESSAGE_T *message ) +BOOL testIOFPPressureSensorReadingsOverride( MESSAGE_T *message ) { - BOOL result = u32ArrayOverride( message, &lastPressureReadCounter[0], NUM_OF_PRESSURE_SENSORS - 1, 0, PRES_SENSORS_READ_ERR_MAX_CNT ); + BOOL result = FALSE; + TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; + OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &payload ); + if ( ( payload.index >= FIRST_IO_PRESSURE_SENSOR ) && ( payload.index <= LAST_FP_PRESSURE_SENSOR ) ) + { + result = f32ArrayOverride( message, ¤tPressureReadings[0], NUM_OF_PRESSURE_SENSORS - 1 ); + } + return result; } /*********************************************************************//** * @brief - * The testPressureSensorErrorCounterOverride function overrides the value of the - * specified pressure sensor error counter with a given value. + * The testIOFPPressureSensorTemperatureReadingsOverride function overrides the + * value of the specified IOFP pressure sensor temperature with a given value. * @details \b Inputs: none - * @details \b Outputs: lastPressureErrorCounter[] + * @details \b Outputs: currentPresTempReadings[] * @param message Override message from Dialin which includes an sensor - * ID and override value of the pressure sensor error counter. + * ID and override value of the IOFP pressure sensor temperature. * @return TRUE if override successful, FALSE if not *************************************************************************/ -BOOL testPressureSensorErrorCounterOverride( MESSAGE_T *message ) +BOOL testIOFPPressureSensorTemperatureReadingsOverride( MESSAGE_T *message ) { - BOOL result = u32ArrayOverride( message, &lastPressureErrorCounter[0], NUM_OF_PRESSURE_SENSORS - 1, 0, PRES_SENSORS_READ_ERR_MAX_CNT ); + BOOL result = FALSE; + TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; + OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &payload ); + if ( ( payload.index >= FIRST_IO_PRESSURE_SENSOR ) && ( payload.index <= LAST_FP_PRESSURE_SENSOR ) ) + { + result = f32ArrayOverride( message, ¤tPresTempReadings[0], NUM_OF_PRESSURE_SENSORS - 1 ); + } + return result; }