Index: firmware/App/Controllers/AirPump.c =================================================================== diff -u -r2db157fa0b39912cdf03e39c5ff3090c300ff32c -r6e30feb28cf365c5c26a9a7283e944b4c24a11cb --- firmware/App/Controllers/AirPump.c (.../AirPump.c) (revision 2db157fa0b39912cdf03e39c5ff3090c300ff32c) +++ firmware/App/Controllers/AirPump.c (.../AirPump.c) (revision 6e30feb28cf365c5c26a9a7283e944b4c24a11cb) @@ -47,8 +47,6 @@ // ********** private data ********** -static const U32 AIR_PUMP_STATUS_PERSISTENCE = ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ); -static AIR_PUMP_MOTOR_STATE_T currentAirPumpMotorState; static AIR_PUMP_STATE_T currentAirPumpState; static U32 airPumpDataPublicationTimerCounter; static OVERRIDE_U32_T airPumpDataPublishInterval = { AIR_PUMP_DATA_PUB_INTERVAL, AIR_PUMP_DATA_PUB_INTERVAL, 0, 0 }; @@ -150,7 +148,7 @@ break; default: - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_HD_AIR_PUMP_INVALID_STATE, (U32)state ) + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_HD_AIR_PUMP_INVALID_STATE, (U32)currentAirPumpState ) break; } publishAirPumpData(); Index: firmware/App/Controllers/AirTrap.c =================================================================== diff -u -r34d0843fa73e79ba3b085dd4aaa393a1ec126fd4 -r6e30feb28cf365c5c26a9a7283e944b4c24a11cb --- firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 34d0843fa73e79ba3b085dd4aaa393a1ec126fd4) +++ firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 6e30feb28cf365c5c26a9a7283e944b4c24a11cb) @@ -15,6 +15,7 @@ * ***************************************************************************/ +#include "AirPump.h" #include "AirTrap.h" #include "AlarmMgmt.h" #include "FPGA.h" @@ -348,7 +349,13 @@ fillStartTime = getMSTimerCount(); result = AIR_TRAP_VALVE_OPEN_STATE; } - + //Turn on air pump if fluid reaches upper level. + else if ( AIR_TRAP_LEVEL_FLUID == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_UPPER ) ) + { + setValveAirTrap( STATE_OPEN ); + fillStartTime = getMSTimerCount(); + result = AIR_TRAP_VALVE_OPEN_STATE; + } return result; } @@ -376,7 +383,15 @@ setValveAirTrap( STATE_CLOSED ); result = AIR_TRAP_VALVE_CLOSED_STATE; } + else if ( AIR_TRAP_LEVEL_AIR == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_LOWER ) ) + { + if ( AIR_PUMP_STATE_ON == getAirPumpState()) + { + setAirPumpState( AIR_PUMP_STATE_OFF ); + } + } + return result; }