Index: firmware/App/Drivers/PressureSensor.c =================================================================== diff -u -r9d11c51da60da3f8d2917433938a583f8a105318 -r3dc5ec51673ac89383872d7adec04ebae3ea5eb6 --- firmware/App/Drivers/PressureSensor.c (.../PressureSensor.c) (revision 9d11c51da60da3f8d2917433938a583f8a105318) +++ firmware/App/Drivers/PressureSensor.c (.../PressureSensor.c) (revision 3dc5ec51673ac89383872d7adec04ebae3ea5eb6) @@ -1,16 +1,16 @@ /************************************************************************** * -* Copyright (c) 2024-2024 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file PressureSensor.c * -* @author (last) Sean -* @date (last) 22-Aug-2024 +* @author (last) Dara Navaei +* @date (last) 19-Dec-2025 * -* @author (original) Sean +* @author (original) Sean Nash * @date (original) 22-Aug-2024 * ***************************************************************************/ @@ -32,8 +32,15 @@ #define PRES_SENSORS_ZERO_OFFSET ( 1638.0F ) ///< Zero offset for pressure sensor readings. #define PRES_SENSORS_DIVISOR ( 14745.0F - PRES_SENSORS_ZERO_OFFSET ) ///< Divisor for pressure sensor conversion from counts to bars. +#if 0 +// This is for the 15psi pressure sensors in the future +#define PRESSURE_MIN_PSI ( -15.0F ) ///< Minimum of scale for pressure sensor reading (in PSI). +#define PRESSURE_MAX_PSI ( 15.0F ) ///< Maximum of scale for pressure sensor reading (in PSI). +#else +// Current pressure sensors are 30psi range #define PRESSURE_MIN_PSI ( -30.0F ) ///< Minimum of scale for pressure sensor reading (in PSI). #define PRESSURE_MAX_PSI ( 30.0F ) ///< Maximum of scale for pressure sensor reading (in PSI). +#endif #define PSI_TO_MMHG ( 51.7149F ) ///< Conversion factor for converting PSI to mmHg. #define PRES_SENSORS_COUNT_ERROR_TIMEOUT_MS ( 2 * MS_PER_SECOND ) ///< Pressure sensors read and error count timeout in milliseconds. @@ -217,15 +224,28 @@ *************************************************************************/ 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 = presPSI * PSI_TO_MMHG; + if ( getTestConfigStatus( TEST_CONFIG_ENABLE_BETA_1_HW ) == TRUE ) + { + // Beta 1 Hardware: 30 PSI + minPsi = -30.0F; + maxPsi = 30.0F; + } + else + { + // Beta 1.9 Hardware: 15 PSI + minPsi = -15.0F; + maxPsi = 15.0F; + } - return mmHg; + presPSI = ( ( (F32)rdg - PRES_SENSORS_ZERO_OFFSET ) * ( maxPsi - minPsi ) / PRES_SENSORS_DIVISOR ) + minPsi; + + return ( presPSI * PSI_TO_MMHG ); + } /*********************************************************************//**