Index: firmware/App/Controllers/AirPump.c =================================================================== diff -u -rda7e8c1b71db9273f83e9d0ba7d20e74e758a8ad -r33c3a81272ce8c9bae64ae20537e9be45b11edd0 --- firmware/App/Controllers/AirPump.c (.../AirPump.c) (revision da7e8c1b71db9273f83e9d0ba7d20e74e758a8ad) +++ firmware/App/Controllers/AirPump.c (.../AirPump.c) (revision 33c3a81272ce8c9bae64ae20537e9be45b11edd0) @@ -62,6 +62,7 @@ static void publishAirPumpData( void ); static void execAirPumpMonitor( void ); static void setAirPumpMotor( AIR_PUMP_MOTOR_STATE_T state ); +static AIR_PUMP_MOTOR_STATE_T getAirPumpMotorState( void ); /*********************************************************************//** * @brief @@ -185,10 +186,12 @@ { if ( MODE_TREA == getCurrentOperationMode() ) { - if ( TRUE == isPersistentAlarmTriggered( ALARM_ID_HD_AIR_PUMP_TIMEOUT, (BOOL)getAirPumpMotorState() ) ) + BOOL isAirPumpOn = ( AIR_PUMP_MOTOR_OFF == getAirPumpMotorState() ? FALSE : TRUE ); + + if ( TRUE == isPersistentAlarmTriggered( ALARM_ID_HD_AIR_PUMP_TIMEOUT, isAirPumpOn ) ) { - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_AIR_PUMP_TIMEOUT, getAirPumpMotorState() ); - setAirPumpState(AIR_PUMP_STATE_OFF); + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_AIR_PUMP_TIMEOUT, isAirPumpOn ); + setAirPumpState( AIR_PUMP_STATE_OFF ); } } }