Index: firmware/App/Controllers/AirTrap.c =================================================================== diff -u -r52c71d1f7ca375d7d08829a92ccf3f6363fe22a2 -r1e806f55dd70e314a8bbb70c5233443dc807998a --- firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 52c71d1f7ca375d7d08829a92ccf3f6363fe22a2) +++ firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 1e806f55dd70e314a8bbb70c5233443dc807998a) @@ -51,11 +51,12 @@ #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. + /// 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 (60 sec) 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 +/// 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 +#define QUADRATIC_COEFFICIENT 0.0005F ///< X2 quadratic coefficient +#define LINEAR_COEFFICIENT 00.2313 ///< X linear coefficient +#define CONSTANT_TERM 63.667F ///< Constant term /// Defined states for the air trap controller state machine. typedef enum AirTrap_States @@ -340,7 +341,7 @@ { F32 h14Pressure = getLongFilteredVenousPressure(); /// 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 (60 sec) H14 venous pressure in mmHg before air trap lower event + /// 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 F32 dutyCycle = ( ( QUADRATIC_COEFFICIENT * ( h14Pressure * h14Pressure ) ) - ( LINEAR_COEFFICIENT * ( h14Pressure ) ) ) + CONSTANT_TERM; dutyCycle = ( dutyCycle / (F32)AIR_PUMP_MAX_PWM ) * FRACTION_TO_PERCENT_FACTOR; @@ -553,6 +554,10 @@ data.h20State = get3WayValveState( H20_VALV ); data.isAutoControlling = isAirTrapControlling(); data.airTrapState = airTrapControllerState; + //TODO: remove after testing + data.AirPumpLowerPowerLevel = getAirPumpLowerPowerLevel(); + //TODO: remove after testing + data.AirPumpRaisePowerLevel = getAirPumpRaisePowerLevel(); broadcastData( MSG_ID_TD_AIR_TRAP_DATA, COMM_BUFFER_OUT_CAN_TD_BROADCAST, (U08*)&data, sizeof( AIR_TRAP_PAYLOAD_T ) ); airTrapDataPublicationTimerCounter = 0;