Index: firmware/App/Drivers/PressureSensor.c =================================================================== diff -u -r97027242ca6b31c429dbfae0a840c27fba1bd10e -r58beb1056549181c679c3fe0bf8900017d9beb51 --- firmware/App/Drivers/PressureSensor.c (.../PressureSensor.c) (revision 97027242ca6b31c429dbfae0a840c27fba1bd10e) +++ firmware/App/Drivers/PressureSensor.c (.../PressureSensor.c) (revision 58beb1056549181c679c3fe0bf8900017d9beb51) @@ -104,7 +104,6 @@ static F32 calculateBaroTemperatureC( U32 baroTempCount ); static void checkBaroSensorCoeffsCRC( void ); static F32 getCalibrationAppliedPressure( U08 sensorId, F32 pressure ); -static F32 convertPsiToMmhg( F32 psi ); /*********************************************************************//** * @brief @@ -225,15 +224,29 @@ *************************************************************************/ static F32 convertPressureRdg2mmHg( U16 counts ) { - S16 rdg = (S16)( counts & FPGA_PRESSURE_READING_BITS_MASK ); + S16 rdg = (S16)( counts & FPGA_PRESSURE_READING_BITS_MASK ); F32 presPSI; - F32 mmHg; + F32 minPsi; + F32 maxPsi; - // If the arterial pressure status is normal, convert the counts to pressure in mmHg - presPSI = ( ( (F32)rdg - PRES_SENSORS_ZERO_OFFSET ) *( PRESSURE_MAX_PSI - PRESSURE_MIN_PSI ) / PRES_SENSORS_DIVISOR ) + PRESSURE_MIN_PSI; - mmHg = convertPsiToMmhg( presPSI ); + // Select pressure sensor range based on test configuration + if ( getTestConfigStatus( TEST_CONFIG_ENABLE_BETA_1_HW ) == TRUE ) + { + // Beta 1 hardware: 30 PSI + minPsi = PRESSURE_MIN_PSI; + maxPsi = PRESSURE_MAX_PSI; + } + else + { + // Beta 1.9 hardware: 15 PSI + minPsi = PRESSURE_MIN_PSI; + maxPsi = PRESSURE_MAX_PSI; + } - return mmHg; + // Convert raw sensor reading to PSI + presPSI = ( ( (F32)rdg - PRES_SENSORS_ZERO_OFFSET ) * ( maxPsi - minPsi ) / PRES_SENSORS_DIVISOR ) + minPsi; + + return ( presPSI * PSI_TO_MMHG ); } /*********************************************************************//** @@ -521,33 +534,7 @@ return result; } -/*********************************************************************//** - * @brief - * The convertPsiToMmhg function handles the pressure sensor - * @details \b Inputs: none - * @details \b Outputs: none - * @param psi Pressure value (PSI). - * @return the pressure in mmHg - *************************************************************************/ -static F32 convertPsiToMmhg( F32 psi ) -{ - F32 psiToMmhgConversionFactor; - if ( getTestConfigStatus( TEST_CONFIG_ENABLE_BETA_1_HW ) == TRUE ) - { - // Beta 1: 30 PSI - psiToMmhgConversionFactor = ( PRESSURE_MAX_PSI / 30.0F ); - } - else - { - // Beta 1.9: 15 PSI - psiToMmhgConversionFactor = ( PRESSURE_MAX_PSI / 15.0F ); - } - - return ( psi * psiToMmhgConversionFactor ); -} - - /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/