Index: firmware/App/Controllers/Pressures.c =================================================================== diff -u -rda0deea71ed5770d98a00943369b9c17321e139f -r8f4a39b5e2161444c61d3fa52734d218259ee001 --- firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision da0deea71ed5770d98a00943369b9c17321e139f) +++ firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 8f4a39b5e2161444c61d3fa52734d218259ee001) @@ -16,46 +16,46 @@ ***************************************************************************/ #include -#include "AlarmMgmt.h" -#include "FPGA.h" +#include "AlarmMgmt.h" +#include "FPGA.h" #include "InternalADC.h" #include "MessageSupport.h" -#include "NVDataMgmt.h" +#include "NVDataMgmt.h" #include "OperationModes.h" -#include "PersistentAlarm.h" -#include "Pressures.h" +#include "PersistentAlarm.h" +#include "Pressures.h" #include "SystemCommMessages.h" #include "TaskGeneral.h" #include "TaskPriority.h" -#include "TemperatureSensors.h" +#include "TemperatureSensors.h" #include "Timers.h" #include "Utilities.h" -#include "Valves.h" - -/** - * @addtogroup DGPressures - * @{ - */ - -// ********** private definitions ********** - +#include "Valves.h" + +/** + * @addtogroup DGPressures + * @{ + */ + +// ********** private definitions ********** + #define PUMP_PRESSURE_ZERO 759 ///< ADC counts equivalent to 0 PSI for pump in/out pressure sensors. -#define PUMP_PRESSURE_PSIA_PER_COUNT 0.06583F ///< PSIA per ADC count conversion factor for pump in/out pressure sensors. +#define PUMP_PRESSURE_PSIA_PER_COUNT 0.06583F ///< PSIA per ADC count conversion factor for pump in/out pressure sensors. #define PUMP_V3_PRESSURE_ZERO 782 ///< Beta ADC counts equivalent to 0 psi for pump in/out pressure sensors. #define PUMP_V3_PRESSURE_PSIA_PER_COUNT 0.065359F ///< Beta PSIA ADC count conversion factor for pump in/out pressure sensors. -#define PUMP_PRESSURE_PSIA_TO_PSI_OFFSET 14.7F ///< Subtract this offset to convert PSIA to PSI. +#define PUMP_PRESSURE_PSIA_TO_PSI_OFFSET 14.7F ///< Subtract this offset to convert PSIA to PSI. #define ONE_BAR_TO_PSI_CONVERSION 14.5F ///< 1 bar to PSI conversion. #define ONE_BAR_TO_MILLI_BAR 1000 ///< 1 bar to milli-bar conversion. #define COUNTS_TO_MILLI_BAR 100 ///< Counts to milli-bar conversion. - -#define PRESSURE_SAMPLES_TO_AVERAGE ( 200 / TASK_PRIORITY_INTERVAL ) ///< Averaging pressure data over the reporting interval. -#define PRESSURE_AVERAGE_MULTIPLIER ( 1.0F / (F32)PRESSURE_SAMPLES_TO_AVERAGE ) ///< Optimization - multiplying is faster than dividing. +#define PRESSURE_SAMPLES_TO_AVERAGE ( 200 / TASK_PRIORITY_INTERVAL ) ///< Averaging pressure data over the reporting interval. +#define PRESSURE_AVERAGE_MULTIPLIER ( 1.0F / (F32)PRESSURE_SAMPLES_TO_AVERAGE ) ///< Optimization - multiplying is faster than dividing. + #define MIN_VALID_PRESSURE_RANGE_PSIA 0.0F ///< Minimum valid range on pressure psia. #define MAX_VALID_PRESSURE_RANGE_PSIA 200.0F ///< Maximum valid range on pressure psia. #define MIN_VALID_BARO_PRESSURE_PSIA 10.1F ///< Minimum valid barometric pressure in psia. #define MAX_VALID_BARO_PRESSURE_PSIA 15.4F ///< Maximum valid barometric pressure in psia. - + #define MIN_INLET_WATER_PRESSURE_WARNING_LOW_PSIG 23.0F ///< Minimum allowed low pressure value in psig. #define MIN_FLUSH_INLET_PRESSURE_WARNING_LOW_PSIG 14.0F ///< Minimum allowed low pressure value for Flush in psig. #define MIN_FLUSH_INLET_PRESSURE_TO_CLEAR_PSIG 15.0F ///< Minimum allowed low pressure value for flush in psig. @@ -78,22 +78,22 @@ 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. - -/// Defined states for the pressures monitor state machine. -typedef enum PresOccl_States -{ - PRESSURE_INIT_STATE = 0, ///< Initialization state. - PRESSURE_CONTINUOUS_READ_STATE, ///< Continuous read sensors state. - NUM_OF_PRESSURE_STATES ///< Number of pressure monitor states. -} PRESSURE_STATE_T; - -/// Defined states for the pressures self-test state machine. -typedef enum Pressures_Self_Test_States -{ - PRESSURE_SELF_TEST_STATE_START = 0, ///< Self-test start state. - PRESSURE_TEST_STATE_IN_PROGRESS, ///< Self-test in progress state. - PRESSURE_TEST_STATE_COMPLETE, ///< Self-test completed state. - NUM_OF_PRESSURE_SELF_TEST_STATES ///< Number of pressure self-test states. + +/// Defined states for the pressures monitor state machine. +typedef enum PresOccl_States +{ + PRESSURE_INIT_STATE = 0, ///< Initialization state. + PRESSURE_CONTINUOUS_READ_STATE, ///< Continuous read sensors state. + NUM_OF_PRESSURE_STATES ///< Number of pressure monitor states. +} PRESSURE_STATE_T; + +/// Defined states for the pressures self-test state machine. +typedef enum Pressures_Self_Test_States +{ + PRESSURE_SELF_TEST_STATE_START = 0, ///< Self-test start state. + PRESSURE_TEST_STATE_IN_PROGRESS, ///< Self-test in progress state. + PRESSURE_TEST_STATE_COMPLETE, ///< Self-test completed state. + NUM_OF_PRESSURE_SELF_TEST_STATES ///< Number of pressure self-test states. } PRESSURE_SELF_TEST_STATE_T; /// Barometric sensor conversion coefficients @@ -103,54 +103,54 @@ 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 PRESSURE_STATE_T pressuresState; ///< current state of pressure monitor state machine. +} BARO_SENSOR_CONSTS_T; + +// ********** private data ********** + +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 OVERRIDE_F32_T pressures[ NUM_OF_PRESSURE_SENSORS ]; ///< Measured pressure from sensors. -static S32 msrdPressureSum[ NUM_OF_PRESSURE_SENSORS ]; ///< Raw pressure sensor sums for averaging. + PRESSURES_DATA_PUB_INTERVAL, 0, 0 }; /// Pressure data publish interval. +static OVERRIDE_F32_T pressures[ NUM_OF_PRESSURE_SENSORS ]; ///< Measured pressure from sensors. +static S32 msrdPressureSum[ NUM_OF_PRESSURE_SENSORS ]; ///< Raw pressure sensor sums for averaging. static U32 pressureFilterCounter; ///< Used to schedule pressure sensor filtering. static BARO_SENSOR_CONSTS_T baroConvConsts; ///< Barometric sensor conversion constants. static PRESSURE_SELF_TEST_STATE_T pressuresSelfTestState; ///< Current pressure self-test state. static SELF_TEST_STATUS_T pressuresSelfTestResult; ///< Self-test result of the Pressures module. -static DG_PRES_SENSORS_CAL_RECORD_T pressuresCalRecord; ///< Pressures calibration record. - -// ********** private function prototypes ********** - -static PRESSURE_STATE_T handlePressuresInitState( void ); -static PRESSURE_STATE_T handlePressuresContReadState( void ); +static DG_PRES_SENSORS_CAL_RECORD_T pressuresCalRecord; ///< Pressures calibration record. + +// ********** private function prototypes ********** + +static PRESSURE_STATE_T handlePressuresInitState( void ); +static PRESSURE_STATE_T handlePressuresContReadState( void ); static void publishPressuresData( void ); static F32 calculateBaroPressure( U32 adcSum ); static F32 getCalibrationAppliedPressure( U08 sensorId, F32 pressure ); static F32 getBaroPressurePSI( void ); static void monitorPressureSensors( void ); - -/*********************************************************************//** - * @brief - * The initPressures function initializes the Pressures module. - * @details Inputs: none - * @details Outputs: Pressures module initialized. - * @return none - *************************************************************************/ -void initPressures( void ) -{ + +/*********************************************************************//** + * @brief + * The initPressures function initializes the Pressures module. + * @details Inputs: none + * @details Outputs: Pressures module initialized. + * @return none + *************************************************************************/ +void initPressures( void ) +{ U08 i; pressuresState = PRESSURE_INIT_STATE; pressuresSelfTestState = PRESSURE_SELF_TEST_STATE_START; pressuresDataPublicationTimerCounter = DATA_PUBLISH_COUNTER_START_COUNT; pressureFilterCounter = 0; - - for ( i = 0; i < NUM_OF_PRESSURE_SENSORS; i++ ) - { - pressures[ i ].data = 0.0F; - pressures[ i ].ovData = 0.0F; - pressures[ i ].ovInitData = 0.0F; - pressures[ i ].override = OVERRIDE_RESET; - msrdPressureSum[ i ] = 0; + + for ( i = 0; i < NUM_OF_PRESSURE_SENSORS; i++ ) + { + pressures[ i ].data = 0.0F; + pressures[ i ].ovData = 0.0F; + pressures[ i ].ovInitData = 0.0F; + pressures[ i ].override = OVERRIDE_RESET; + msrdPressureSum[ i ] = 0; } initPersistentAlarm( ALARM_ID_DG_INLET_WATER_PRESSURE_IN_LOW_RANGE, INLET_WATER_PRES_OUT_OF_RANGE_CLEAR_MS, INLET_WATER_PRES_OUT_OF_RANGE_TIMEOUT_MS ); @@ -305,36 +305,36 @@ { pressuresSelfTestState = PRESSURE_SELF_TEST_STATE_START; } - -/*********************************************************************//** - * @brief + +/*********************************************************************//** + * @brief * The execPressures function executes the pressures' monitor state machine - * and publish pressures' data. - * @details Inputs: pressuresState - * @details Outputs: pressuresState - * @return none - *************************************************************************/ -void execPressures( void ) -{ - // state machine - switch ( pressuresState ) - { - case PRESSURE_INIT_STATE: - pressuresState = handlePressuresInitState(); - break; - - case PRESSURE_CONTINUOUS_READ_STATE: - pressuresState = handlePressuresContReadState(); - break; - - default: + * and publish pressures' data. + * @details Inputs: pressuresState + * @details Outputs: pressuresState + * @return none + *************************************************************************/ +void execPressures( void ) +{ + // state machine + switch ( pressuresState ) + { + case PRESSURE_INIT_STATE: + pressuresState = handlePressuresInitState(); + break; + + case PRESSURE_CONTINUOUS_READ_STATE: + pressuresState = handlePressuresContReadState(); + break; + + default: SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_PRESSURE_INVALID_EXEC_STATE, pressuresState ) - pressuresState = PRESSURE_INIT_STATE; - break; - } - - // publish pressure/occlusion data on interval - publishPressuresData(); + pressuresState = PRESSURE_INIT_STATE; + break; + } + + // publish pressure/occlusion data on interval + publishPressuresData(); } /*********************************************************************//** @@ -382,31 +382,31 @@ } return pressuresSelfTestResult; -} - -/*********************************************************************//** - * @brief - * The handlePressuresInitState function handles the pressures initialize state - * of the pressures monitor state machine. - * @details Inputs: none - * @details Outputs: none - * @return next state - *************************************************************************/ -static PRESSURE_STATE_T handlePressuresInitState( void ) -{ - return PRESSURE_CONTINUOUS_READ_STATE; -} - -/*********************************************************************//** - * @brief - * The handlePressuresContReadState function handles the continuous read state - * of the pressures monitor state machine. - * @details Inputs: pressureFilterCounter - * @details Outputs: pressure sensor values updated - * @return next state - *************************************************************************/ -static PRESSURE_STATE_T handlePressuresContReadState( void ) +} + +/*********************************************************************//** + * @brief + * The handlePressuresInitState function handles the pressures initialize state + * of the pressures monitor state machine. + * @details Inputs: none + * @details Outputs: none + * @return next state + *************************************************************************/ +static PRESSURE_STATE_T handlePressuresInitState( void ) { + return PRESSURE_CONTINUOUS_READ_STATE; +} + +/*********************************************************************//** + * @brief + * The handlePressuresContReadState function handles the continuous read state + * of the pressures monitor state machine. + * @details Inputs: pressureFilterCounter + * @details Outputs: pressure sensor values updated + * @return next state + *************************************************************************/ +static PRESSURE_STATE_T handlePressuresContReadState( void ) +{ PRESSURE_STATE_T result = PRESSURE_CONTINUOUS_READ_STATE; U32 zeroPressureOffset = PUMP_PRESSURE_ZERO; F32 count2PressureConv = PUMP_PRESSURE_PSIA_PER_COUNT; @@ -432,10 +432,10 @@ { getNVRecord2Driver( GET_CAL_PRESSURE_SENOSRS, (U08*)&pressuresCalRecord, sizeof( DG_PRES_SENSORS_CAL_RECORD_T ), NUM_OF_CAL_DATA_PRES_SENSORS, ALARM_ID_NO_ALARM ); - } - - // filter every 200ms - if ( ++pressureFilterCounter >= PRESSURE_SAMPLES_TO_AVERAGE ) + } + + // filter every 200ms + if ( ++pressureFilterCounter >= PRESSURE_SAMPLES_TO_AVERAGE ) { F32 adcSum; F32 pressureBeforeCal = 0.0F; @@ -458,13 +458,21 @@ break; case PRESSURE_SENSOR_BAROMETRIC: - baroConvConsts.pressureSensitivity = getFPGABaroPressureSensitivity(); - baroConvConsts.pressureSensitivityTempCoeff = getFPGABaroTempCoeffOfPressSensitvity(); - baroConvConsts.pressureOffset = getFPGABaroPressureOffset(); - baroConvConsts.pressureOffsetTempCoeff = getFPGABaroTempCoeffOfPressOffset(); - pressureBeforeCal = calculateBaroPressure( (U32)adcSum ); - pressures[ sensorId ].data = getCalibrationAppliedPressure( sensorId, pressureBeforeCal ); - msrdPressureSum[ sensorId ] = 0; + { + DG_OP_MODE_T opMode = getCurrentOperationMode(); + // Do not read the barometric pressure in treatment modes. + // Baro pressure is not read during treatment and it keeps the value that it was last read prior to treatment modes. + if ( ( opMode != DG_MODE_GENE ) && ( opMode != DG_MODE_FILL ) && ( opMode != DG_MODE_DRAI ) ) + { + baroConvConsts.pressureSensitivity = getFPGABaroPressureSensitivity(); + baroConvConsts.pressureSensitivityTempCoeff = getFPGABaroTempCoeffOfPressSensitvity(); + baroConvConsts.pressureOffset = getFPGABaroPressureOffset(); + baroConvConsts.pressureOffsetTempCoeff = getFPGABaroTempCoeffOfPressOffset(); + pressureBeforeCal = calculateBaroPressure( (U32)adcSum ); + pressures[ sensorId ].data = getCalibrationAppliedPressure( sensorId, pressureBeforeCal ); + msrdPressureSum[ sensorId ] = 0; + } + } break; #ifndef _VECTORCAST_ @@ -474,38 +482,38 @@ #endif } } - } + } - monitorPressureSensors(); - - return result; + monitorPressureSensors(); + + return result; } -/*********************************************************************//** - * @brief - * The publishPressuresData function publishes DG pressures data at a set interval. - * @details Inputs: pressuresDataPublicationTimerCounter - * @details Outputs: pressuresDataPublicationTimerCounter - * @return none - *************************************************************************/ -static void publishPressuresData( void ) -{ - // publish pressure/occlusion data on interval - if ( ++pressuresDataPublicationTimerCounter >= getU32OverrideValue( &pressuresDataPublishInterval ) ) +/*********************************************************************//** + * @brief + * The publishPressuresData function publishes DG pressures data at a set interval. + * @details Inputs: pressuresDataPublicationTimerCounter + * @details Outputs: pressuresDataPublicationTimerCounter + * @return none + *************************************************************************/ +static void publishPressuresData( void ) +{ + // publish pressure/occlusion data on interval + if ( ++pressuresDataPublicationTimerCounter >= getU32OverrideValue( &pressuresDataPublishInterval ) ) { PRESSURES_DATA_T data; - - data.roPumpInletPressure = getMeasuredDGPressure( PRESSURE_SENSOR_RO_PUMP_INLET ); - data.roPumpOutletPressure = getMeasuredDGPressure( PRESSURE_SENSOR_RO_PUMP_OUTLET ); - data.drainPumpInletPressure = getMeasuredDGPressure( PRESSURE_SENSOR_DRAIN_PUMP_INLET ); + + data.roPumpInletPressure = getMeasuredDGPressure( PRESSURE_SENSOR_RO_PUMP_INLET ); + data.roPumpOutletPressure = getMeasuredDGPressure( PRESSURE_SENSOR_RO_PUMP_OUTLET ); + data.drainPumpInletPressure = getMeasuredDGPressure( PRESSURE_SENSOR_DRAIN_PUMP_INLET ); data.drainPumpOutletPressure = getMeasuredDGPressure( PRESSURE_SENSOR_DRAIN_PUMP_OUTLET ); data.barometricPressure = getMeasuredDGPressure( PRESSURE_SENSOR_BAROMETRIC ); - pressuresDataPublicationTimerCounter = 0; - - broadcastData( MSG_ID_DG_PRESSURES_DATA, COMM_BUFFER_OUT_CAN_DG_BROADCAST, (U08*)&data, sizeof( PRESSURES_DATA_T ) ); - } -} - + pressuresDataPublicationTimerCounter = 0; + + broadcastData( MSG_ID_DG_PRESSURES_DATA, COMM_BUFFER_OUT_CAN_DG_BROADCAST, (U08*)&data, sizeof( PRESSURES_DATA_T ) ); + } +} + /*********************************************************************//** * @brief * The calculateBaroPressure function calculates the barometric pressure @@ -613,10 +621,16 @@ case PRESSURE_SENSOR_BAROMETRIC: if ( baroConvConsts.pressureSensitivity != 0 ) { - // Check the baro and alarm if out of range. Make sure the conversion coefficients of the sensor has been read and received from FPGA - pressureReading = getBaroPressurePSI(); - isBaroOutOfRange = ( ( pressureReading < MIN_VALID_BARO_PRESSURE_PSIA ) || ( pressureReading > MAX_VALID_BARO_PRESSURE_PSIA ) ? TRUE : FALSE ); - checkPersistentAlarm( ALARM_ID_DG_BARO_PRESSURE_OUT_OF_RANGE, isBaroOutOfRange, (F32)sensorId, pressureReading ); + DG_OP_MODE_T opMode = getCurrentOperationMode(); + + // Do not check the barometric pressure during the treatment modes. + if ( ( opMode != DG_MODE_GENE ) && ( opMode != DG_MODE_FILL ) && ( opMode != DG_MODE_DRAI ) ) + { + // Check the baro and alarm if out of range. Make sure the conversion coefficients of the sensor has been read and received from FPGA + pressureReading = getBaroPressurePSI(); + isBaroOutOfRange = ( ( pressureReading < MIN_VALID_BARO_PRESSURE_PSIA ) || ( pressureReading > MAX_VALID_BARO_PRESSURE_PSIA ) ? TRUE : FALSE ); + checkPersistentAlarm( ALARM_ID_DG_BARO_PRESSURE_OUT_OF_RANGE, isBaroOutOfRange, (F32)sensorId, pressureReading ); + } } break; @@ -631,111 +645,111 @@ // Once the sensors were all checked to be out of range, check the persistent alarm checkPersistentAlarm( ALARM_ID_DG_PRESSURE_OUT_OF_RANGE, isPressureOutOfRange, sensorInAlarm, alarmPressure ); } - - -/************************************************************************* - * TEST SUPPORT FUNCTIONS - *************************************************************************/ -/*********************************************************************//** - * @brief - * The testSetPressuresDataPublishIntervalOverride function overrides the - * pressure data publish interval. - * @details Inputs: none - * @details Outputs: pressuresDataPublishInterval - * @param value value to override pressure data publish interval with (in ms) - * @return TRUE if override successful, FALSE if not - *************************************************************************/ -BOOL testSetPressuresDataPublishIntervalOverride( U32 value ) -{ - BOOL result = FALSE; - - if ( TRUE == isTestingActivated() ) - { - U32 intvl = value / TASK_PRIORITY_INTERVAL; - - result = TRUE; - pressuresDataPublishInterval.ovData = intvl; - pressuresDataPublishInterval.override = OVERRIDE_KEY; - } - - return result; -} - -/*********************************************************************//** - * @brief - * The testResetPressuresDataPublishIntervalOverride function resets the override - * of the pressure and occlusion data publish interval. - * @details Inputs: none - * @details Outputs: pressuresDataPublishInterval - * @return TRUE if override reset successful, FALSE if not - *************************************************************************/ -BOOL testResetPressuresDataPublishIntervalOverride( void ) -{ - BOOL result = FALSE; - - if ( TRUE == isTestingActivated() ) - { - result = TRUE; - pressuresDataPublishInterval.override = OVERRIDE_RESET; - pressuresDataPublishInterval.ovData = pressuresDataPublishInterval.ovInitData; - } - - return result; -} - -/*********************************************************************//** - * @brief - * The testSetDGPressureSensorOverride function overrides the value of the - * specified pressure sensor with a given value. - * @details Inputs: none - * @details Outputs: pressures[] - * @param sensor pressure sensor ID - * @param value override value for pressure data - * @return TRUE if override successful, FALSE if not - *************************************************************************/ -BOOL testSetDGPressureSensorOverride( U32 sensor, F32 value ) -{ - BOOL result = FALSE; - - if ( sensor < NUM_OF_PRESSURE_SENSORS ) - { - if ( TRUE == isTestingActivated() ) - { - result = TRUE; - pressures[ sensor ].ovData = value; - pressures[ sensor ].override = OVERRIDE_KEY; - } - } - - return result; -} - -/*********************************************************************//** - * @brief - * The testResetDGPressureSensorOverride function resets the override of the \n - * specified DG pressure sensor. - * @details Inputs: none - * @details Outputs: pressures[] - * @param sensor pressure sensor ID - * @return TRUE if override successful, FALSE if not - *************************************************************************/ -BOOL testResetDGPressureSensorOverride( U32 sensor ) -{ - BOOL result = FALSE; - - if ( sensor < NUM_OF_PRESSURE_SENSORS ) - { - if ( TRUE == isTestingActivated() ) - { - result = TRUE; - pressures[ sensor ].override = OVERRIDE_RESET; - pressures[ sensor ].ovData = pressures[ sensor ].ovInitData; - } - } - - return result; -} - -/**@}*/ +/************************************************************************* + * TEST SUPPORT FUNCTIONS + *************************************************************************/ + + +/*********************************************************************//** + * @brief + * The testSetPressuresDataPublishIntervalOverride function overrides the + * pressure data publish interval. + * @details Inputs: none + * @details Outputs: pressuresDataPublishInterval + * @param value value to override pressure data publish interval with (in ms) + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testSetPressuresDataPublishIntervalOverride( U32 value ) +{ + BOOL result = FALSE; + + if ( TRUE == isTestingActivated() ) + { + U32 intvl = value / TASK_PRIORITY_INTERVAL; + + result = TRUE; + pressuresDataPublishInterval.ovData = intvl; + pressuresDataPublishInterval.override = OVERRIDE_KEY; + } + + return result; +} + +/*********************************************************************//** + * @brief + * The testResetPressuresDataPublishIntervalOverride function resets the override + * of the pressure and occlusion data publish interval. + * @details Inputs: none + * @details Outputs: pressuresDataPublishInterval + * @return TRUE if override reset successful, FALSE if not + *************************************************************************/ +BOOL testResetPressuresDataPublishIntervalOverride( void ) +{ + BOOL result = FALSE; + + if ( TRUE == isTestingActivated() ) + { + result = TRUE; + pressuresDataPublishInterval.override = OVERRIDE_RESET; + pressuresDataPublishInterval.ovData = pressuresDataPublishInterval.ovInitData; + } + + return result; +} + +/*********************************************************************//** + * @brief + * The testSetDGPressureSensorOverride function overrides the value of the + * specified pressure sensor with a given value. + * @details Inputs: none + * @details Outputs: pressures[] + * @param sensor pressure sensor ID + * @param value override value for pressure data + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testSetDGPressureSensorOverride( U32 sensor, F32 value ) +{ + BOOL result = FALSE; + + if ( sensor < NUM_OF_PRESSURE_SENSORS ) + { + if ( TRUE == isTestingActivated() ) + { + result = TRUE; + pressures[ sensor ].ovData = value; + pressures[ sensor ].override = OVERRIDE_KEY; + } + } + + return result; +} + +/*********************************************************************//** + * @brief + * The testResetDGPressureSensorOverride function resets the override of the \n + * specified DG pressure sensor. + * @details Inputs: none + * @details Outputs: pressures[] + * @param sensor pressure sensor ID + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testResetDGPressureSensorOverride( U32 sensor ) +{ + BOOL result = FALSE; + + if ( sensor < NUM_OF_PRESSURE_SENSORS ) + { + if ( TRUE == isTestingActivated() ) + { + result = TRUE; + pressures[ sensor ].override = OVERRIDE_RESET; + pressures[ sensor ].ovData = pressures[ sensor ].ovInitData; + } + } + + return result; +} + +/**@}*/