Index: firmware/App/Controllers/Pressures.c =================================================================== diff -u -r544e9782a1b8d444224f41efef38a5204c262722 -r3dd12fb9d032f85126db82ca48812a4652a5b75f --- firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 544e9782a1b8d444224f41efef38a5204c262722) +++ firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 3dd12fb9d032f85126db82ca48812a4652a5b75f) @@ -85,21 +85,19 @@ /// Barometric sensor conversion coefficients typedef struct { - U16 pressureSensitivity; - U16 pressureOffset; - U16 pressureSensitivityTempCoeff; - U16 pressureOffsetTempCoeff; + 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 PRESSURE_STATE_T pressuresState; ///< current state of pressure monitor state machine. -static U32 pressuresDataPublicationTimerCounter; ///< used to schedule pressure data publication to CAN bus. - +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. static U32 pressureFilterCounter; ///< Used to schedule pressure sensor filtering. static BARO_SENSOR_CONSTS_T baroConvConsts; ///< Barometric sensor conversion constants. @@ -303,26 +301,10 @@ static PRESSURE_STATE_T handlePressuresContReadState( void ) { PRESSURE_STATE_T result = PRESSURE_CONTINUOUS_READ_STATE; - S32 measuredPressureReadingsRaw[ NUM_OF_PRESSURE_SENSORS ]; U08 sensorId; F32 pressureReading; BOOL isPressureOutOfRange; - - // Get latest raw pressure readings - /*measuredPressureReadingsRaw[ PRESSURE_SENSOR_RO_PUMP_INLET ] = (S32)getIntADCReading( INT_ADC_RO_PUMP_INLET_PRESSURE ) - PUMP_PRESSURE_ZERO; - measuredPressureReadingsRaw[ PRESSURE_SENSOR_RO_PUMP_OUTLET ] = (S32)getIntADCReading( INT_ADC_RO_PUMP_OUTLET_PRESSURE ) - PUMP_PRESSURE_ZERO; - measuredPressureReadingsRaw[ PRESSURE_SENSOR_DRAIN_PUMP_INLET ] = (S32)getIntADCReading( INT_ADC_DRAIN_PUMP_INLET_PRESSURE ) - PUMP_PRESSURE_ZERO; - measuredPressureReadingsRaw[ PRESSURE_SENSOR_DRAIN_PUMP_OUTLET ] = (S32)getIntADCReading( INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE ) - PUMP_PRESSURE_ZERO; - measuredPressureReadingsRaw[ PRESSURE_SENSOR_BAROMETRIC ] = (S32)getFPGABaroPressure(); - // TODO why is this needed? - // Update sums for pressure average calculations - msrdPressureSum[ PRESSURE_SENSOR_RO_PUMP_INLET ] += measuredPressureReadingsRaw[ PRESSURE_SENSOR_RO_PUMP_INLET ]; - msrdPressureSum[ PRESSURE_SENSOR_RO_PUMP_OUTLET ] += measuredPressureReadingsRaw[ PRESSURE_SENSOR_RO_PUMP_OUTLET ]; - msrdPressureSum[ PRESSURE_SENSOR_DRAIN_PUMP_INLET ] += measuredPressureReadingsRaw[ PRESSURE_SENSOR_DRAIN_PUMP_INLET ]; - msrdPressureSum[ PRESSURE_SENSOR_DRAIN_PUMP_OUTLET ] += measuredPressureReadingsRaw[ PRESSURE_SENSOR_DRAIN_PUMP_OUTLET ]; - msrdPressureSum[ PRESSURE_SENSOR_BAROMETRIC ] += measuredPressureReadingsRaw[ PRESSURE_SENSOR_BAROMETRIC ];*/ - // Update sums for pressure average calculations msrdPressureSum[ PRESSURE_SENSOR_RO_PUMP_INLET ] += (S32)getIntADCReading( INT_ADC_RO_PUMP_INLET_PRESSURE ) - PUMP_PRESSURE_ZERO; msrdPressureSum[ PRESSURE_SENSOR_RO_PUMP_OUTLET ] += (S32)getIntADCReading( INT_ADC_RO_PUMP_OUTLET_PRESSURE ) - PUMP_PRESSURE_ZERO; @@ -367,37 +349,6 @@ break; } } - - // TODO remove - // Calculate average pressures - /*F32 avgRoIn = (F32)msrdPressureSum[ PRESSURE_SENSOR_RO_PUMP_INLET ] * PRESSURE_AVERAGE_MULTIPLIER; - F32 avgRoOut = (F32)msrdPressureSum[ PRESSURE_SENSOR_RO_PUMP_OUTLET ] * PRESSURE_AVERAGE_MULTIPLIER; - F32 avgDrnIn = (F32)msrdPressureSum[ PRESSURE_SENSOR_DRAIN_PUMP_INLET ] * PRESSURE_AVERAGE_MULTIPLIER; - F32 avgDrnOut = (F32)msrdPressureSum[ PRESSURE_SENSOR_DRAIN_PUMP_OUTLET ] * PRESSURE_AVERAGE_MULTIPLIER; - - // Convert average pressure readings to PSI - pressuresBeforeCal[ PRESSURE_SENSOR_RO_PUMP_INLET ] = avgRoIn * PUMP_PRESSURE_PSIA_PER_COUNT - PUMP_PRESSURE_PSIA_TO_PSI_OFFSET; - pressuresBeforeCal[ PRESSURE_SENSOR_RO_PUMP_OUTLET ] = avgRoOut * PUMP_PRESSURE_PSIA_PER_COUNT - PUMP_PRESSURE_PSIA_TO_PSI_OFFSET; - pressuresBeforeCal[ PRESSURE_SENSOR_DRAIN_PUMP_INLET ] = avgDrnIn * PUMP_PRESSURE_PSIA_PER_COUNT - PUMP_PRESSURE_PSIA_TO_PSI_OFFSET; - pressuresBeforeCal[ PRESSURE_SENSOR_DRAIN_PUMP_OUTLET ] = avgDrnOut * PUMP_PRESSURE_PSIA_PER_COUNT - PUMP_PRESSURE_PSIA_TO_PSI_OFFSET; - - - - // Apply calibration to the pressure values prior to storing them - for ( sensorId = 0; sensorId < NUM_OF_PRESSURE_SENSORS; sensorId++ ) - { - pressures[ sensorId ].data = pow( pressuresBeforeCal[ sensorId ], 4 ) * pressuresCalRecord.pressureSensors[ sensorId ].fourthOrderCoeff + - pow( pressuresBeforeCal[ sensorId ], 3 ) * pressuresCalRecord.pressureSensors[ sensorId ].thirdOrderCoeff + - pow( pressuresBeforeCal[ sensorId ], 2 ) * pressuresCalRecord.pressureSensors[ sensorId ].secondOrderCoeff + - pressuresBeforeCal[ sensorId ] * pressuresCalRecord.pressureSensors[ sensorId ].gain + - pressuresCalRecord.pressureSensors[ sensorId ].offset; - } - - // reset sums for next averaging - msrdPressureSum[ PRESSURE_SENSOR_RO_PUMP_INLET ] = 0; - msrdPressureSum[ PRESSURE_SENSOR_RO_PUMP_OUTLET ] = 0; - msrdPressureSum[ PRESSURE_SENSOR_DRAIN_PUMP_INLET ] = 0; - msrdPressureSum[ PRESSURE_SENSOR_DRAIN_PUMP_OUTLET ] = 0;*/ } for ( sensorId = 0; sensorId < NUM_OF_PRESSURE_SENSORS; sensorId++ )