Index: firmware/App/Controllers/AirPump.c =================================================================== diff -u -rf29f8b63b7b690e23e11d8e519f35e100220fe35 -r81106b694c47757fb36aaf58942b63fa18faec96 --- firmware/App/Controllers/AirPump.c (.../AirPump.c) (revision f29f8b63b7b690e23e11d8e519f35e100220fe35) +++ firmware/App/Controllers/AirPump.c (.../AirPump.c) (revision 81106b694c47757fb36aaf58942b63fa18faec96) @@ -35,7 +35,7 @@ // ********** private definitions ********** #define AIR_PUMP_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) -#define DATA_PUBLISH_COUNTER_START_COUNT +#define DATA_PUBLISH_COUNTER_START_COUNT 13 #define AIR_PUMP_GPIO_PIN 0x04 #define AIR_PUMP_OPERATION_TIMEOUT ( 5 * MS_PER_SECOND ) @@ -72,6 +72,7 @@ *************************************************************************/ void initAirPump(void) { + airPumpDataPublicationTimerCounter = DATA_PUBLISH_COUNTER_START_COUNT; currentAirPumpState = AIR_PUMP_STATE_INIT; currentAirPumpMotorState = AIR_PUMP_MOTOR_OFF; initPersistentAlarm( ALARM_ID_HD_AIR_PUMP_TIMEOUT, 0, AIR_PUMP_OPERATION_TIMEOUT ); @@ -98,6 +99,13 @@ } } +/*********************************************************************//** + * @brief + * The getAirPumpMotorState function returns the current air pump motor state. + * @details Inputs: currentAirPumpMotorState + * @details Outputs: currentAirPumpMotorState + * @return current state of the air pump state machine. + *************************************************************************/ static AIR_PUMP_MOTOR_STATE_T getAirPumpMotorState( void ) { return currentAirPumpMotorState; @@ -166,6 +174,13 @@ publishAirPumpData(); } +/*********************************************************************//** + * @brief + * The execAirPumpMonitor function executes the air pump monitor. + * @details Inputs: HD operation mode + * @details Outputs: none + * @return none + *************************************************************************/ void execAirPumpMonitor( void ) { if ( MODE_TREA == getCurrentOperationMode() ) Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -r71370c9aead6b97b6e70cd3780cd6b1f39b1ec1d -r81106b694c47757fb36aaf58942b63fa18faec96 --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 71370c9aead6b97b6e70cd3780cd6b1f39b1ec1d) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 81106b694c47757fb36aaf58942b63fa18faec96) @@ -573,7 +573,8 @@ if ( SW_CONFIG_DISABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_AIR_PUMP ) ) #endif { - + // When the Air Pump is enabled, we must handle the increase in venous pressure without triggering the alarm. We increase the + // venous high limit while the air pump is on + 1s for the pressure to stabilize once the pump is off. if ( AIR_PUMP_STATE_ON == getAirPumpState() ) { venHighLimit = (F32)getS32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_VEN_PRESSURE_HIGH_LIMIT ) + VENOUS_OFFSET_WITH_AIRPUMP_MMHG; Index: firmware/source/sys_main.c =================================================================== diff -u -r4bcafe45ae40939d6b3471f4ccca7e2b4fa7c0f5 -r81106b694c47757fb36aaf58942b63fa18faec96 --- firmware/source/sys_main.c (.../sys_main.c) (revision 4bcafe45ae40939d6b3471f4ccca7e2b4fa7c0f5) +++ firmware/source/sys_main.c (.../sys_main.c) (revision 81106b694c47757fb36aaf58942b63fa18faec96) @@ -64,8 +64,8 @@ #include "HDCommon.h" #include "Accel.h" -#include "AirTrap.h" #include "AirPump.h" +#include "AirTrap.h" #include "AlarmLamp.h" #include "Battery.h" #include "BloodFlow.h" @@ -207,8 +207,8 @@ initTemperatures(); initSwitches(); // Initialize controllers - initAirTrap(); initAirPump(); + initAirTrap(); initAlarmLamp(); initBloodFlow(); initDialInFlow();