Index: firmware/App/Controllers/AirTrap.c =================================================================== diff -u -r1c2d9db3310c4924ba75ded55dd8960f272ac253 -r4ed766fe84660297858a9af1651e93ff0c4d71f1 --- firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 1c2d9db3310c4924ba75ded55dd8960f272ac253) +++ firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 4ed766fe84660297858a9af1651e93ff0c4d71f1) @@ -52,11 +52,20 @@ #define AIR_PUMP_MOTOR_FILL_PWM 60.0F ///< Power level setting (PWM) in percentage for H12 air pump to fill (raise level) the air trap. #define AIR_PUMP_MOTOR_LOWER_PWM 24.0F ///< Power level setting (PWM) in percentage for H12 air pump to lower the level of the air trap. +// keeping it here till i get the system team's test result +#ifndef AIR_PUMP_PERCENTAGE_DUTY_CYCLE /// LDT-2384 test formula for air trap lower events for air pump duty cycle based on venous pressure -/// air pump lowering duty cycle (% PWM) = 0.0005x^2 + 0.2313x + 63.667, where x is long filtered (60 sec) H14 venous pressure in mmHg before air pump lower event +/// air pump lowering scalar PWM = 0.0005x^2 + 0.2313x + 63.667, where x is long filtered (60 sec) H14 venous pressure in mmHg before air pump lower event #define QUADRATIC_COEFFICIENT 0.0005F ///< X2 quadratic coefficient #define LINEAR_COEFFICIENT 0.2313F ///< X linear coefficient #define CONSTANT_TERM 63.667F ///< Constant term +#else +/// LDT-2384 test formula for air trap lower events for air pump duty cycle based on venous pressure +/// air pump duty cycle (% PWM) = 0.0002x^2 + 0.0925x + 25.467, where x is long filtered H14 venous pressure in mmHg before air trap lower event +#define QUADRATIC_COEFFICIENT 0.0002F ///< X2 quadratic coefficient +#define LINEAR_COEFFICIENT 0.0925F ///< X linear coefficient +#define CONSTANT_TERM 25.467F ///< Constant term +#endif /// Defined states for the air trap controller state machine. typedef enum AirTrap_States @@ -340,13 +349,23 @@ F32 getCalculatedAirPumpDutyCycle( void ) { F32 h14Pressure = getLongFilteredVenousPressure(); +#ifndef AIR_PUMP_PERCENTAGE_DUTY_CYCLE /// LDT-2384 test formula for air trap lower events for air pump duty cycle based on venous pressure /// air pump lowering PWM (scalar PWM) = 0.0005x^2 + 0.2313x + 63.667, where x is long filtered (60 sec) H14 venous pressure in mmHg before air pump lower event F32 dutyCycle = ( ( QUADRATIC_COEFFICIENT * ( h14Pressure * h14Pressure ) ) - ( LINEAR_COEFFICIENT * ( h14Pressure ) ) ) + CONSTANT_TERM; // covert to percentage dutyCycle = ( dutyCycle / (F32)AIR_PUMP_MAX_PWM ) * FRACTION_TO_PERCENT_FACTOR; +#else + /// LDT-2384 test formula for air trap lower events for air pump duty cycle based on venous pressure + /// air pump duty cycle (% PWM) = 0.0002x^2 + 0.0925x + 25.467, where x is long filtered H14 venous pressure in mmHg before air trap lower event + F32 duticycleInPct = ( ( QUADRATIC_COEFFICIENT * ( h14Pressure * h14Pressure ) ) - ( LINEAR_COEFFICIENT * ( h14Pressure ) ) ) + CONSTANT_TERM; +#endif +#ifndef AIR_PUMP_PERCENTAGE_DUTY_CYCLE return dutyCycle; +#else + return duticycleInPct; +#endif } /*********************************************************************//**