Index: firmware/App/Controllers/AirPump.c =================================================================== diff -u -r2075fb989d74d881f2e73c19052aa32fa9d760a6 -rc8bc16e4ab55a0995f5282bc1b10bd9ee8656a87 --- firmware/App/Controllers/AirPump.c (.../AirPump.c) (revision 2075fb989d74d881f2e73c19052aa32fa9d760a6) +++ firmware/App/Controllers/AirPump.c (.../AirPump.c) (revision c8bc16e4ab55a0995f5282bc1b10bd9ee8656a87) @@ -32,7 +32,10 @@ #define AIR_PUMP_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Air pump data publish interval. #define DATA_PUBLISH_COUNTER_START_COUNT 13 ///< Air pump data publish start counter. +#define AIR_PUMP_DUTY_CYCLE_MIN 0.0F ///< Air pump minimum duty cycle in percentage +#define AIR_PUMP_DUTY_CYCLE_MAX 100.0F ///< Air pump maximum duty cycle in percentage + #pragma pack(push, 1) /// Payload record structure for air pump test set command message payload. typedef struct @@ -274,8 +277,15 @@ AIR_PUMP_SET_CMD_PAYLOAD_T payload; memcpy( &payload, msgPayload, sizeof( AIR_PUMP_SET_CMD_PAYLOAD_T ) ); - setAirPumpState( (AIR_PUMP_STATE_T)payload.h12State, payload.h12Power ); - result = TRUE; + if ( payload.h12Power >= AIR_PUMP_DUTY_CYCLE_MIN && payload.h12Power <= AIR_PUMP_DUTY_CYCLE_MAX ) + { + setAirPumpState( (AIR_PUMP_STATE_T)payload.h12State, payload.h12Power ); + result = TRUE; + } + else + { + result = FALSE; + } } } Index: firmware/App/Drivers/GLXferPump.c =================================================================== diff -u -r2075fb989d74d881f2e73c19052aa32fa9d760a6 -rc8bc16e4ab55a0995f5282bc1b10bd9ee8656a87 --- firmware/App/Drivers/GLXferPump.c (.../GLXferPump.c) (revision 2075fb989d74d881f2e73c19052aa32fa9d760a6) +++ firmware/App/Drivers/GLXferPump.c (.../GLXferPump.c) (revision c8bc16e4ab55a0995f5282bc1b10bd9ee8656a87) @@ -72,8 +72,8 @@ // if state is changing, set the air pump to the given on/off state and send event if ( power != currentAirPumpMotorPowerLevel ) { - SEND_EVENT_WITH_2_F32_DATA( TD_EVENT_AIR_PUMP_ON_OFF, currentAirPumpMotorPowerLevel, power ); setH12AirPumpMotorPowerLevel( scalarPower ); + SEND_EVENT_WITH_2_F32_DATA( TD_EVENT_AIR_PUMP_ON_OFF, currentAirPumpMotorPowerLevel, power ); currentAirPumpMotorPowerLevel = power; } } Index: firmware/App/Drivers/GLXferPump.h =================================================================== diff -u -rf2e5da3b659f99aaa0eec9174a472529cf11b95a -rc8bc16e4ab55a0995f5282bc1b10bd9ee8656a87 --- firmware/App/Drivers/GLXferPump.h (.../GLXferPump.h) (revision f2e5da3b659f99aaa0eec9174a472529cf11b95a) +++ firmware/App/Drivers/GLXferPump.h (.../GLXferPump.h) (revision c8bc16e4ab55a0995f5282bc1b10bd9ee8656a87) @@ -33,7 +33,7 @@ // ********** public definitions ********** -#define AIR_PUMP_MOTOR_OFF 0.0f ///< Power level setting (PWM) for H12 air pump to turn pump off. +#define AIR_PUMP_MOTOR_OFF 0.0F ///< Power level setting (PWM) for H12 air pump to turn pump off. // ********** public function prototypes **********