Index: firmware/App/Controllers/AirTrap.c =================================================================== diff -u -r961784c895cb8f551a2623cd02dcbfe42d04b7c2 -r552a7de419344b43a3307c61141c99bfbbee7345 --- firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 961784c895cb8f551a2623cd02dcbfe42d04b7c2) +++ firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 552a7de419344b43a3307c61141c99bfbbee7345) @@ -26,7 +26,7 @@ #include "TaskGeneral.h" #include "Timers.h" #include "Utilities.h" -#include "Valve2Way.h" +#include "Valve3Way.h" /** * @addtogroup AirTrap @@ -93,7 +93,7 @@ { // Initialize level sensors and valve drivers initLevelSensors(); - init2WayValves(); + init3WayValves(); // Initialize controller variables resetAirTrap(); @@ -151,7 +151,7 @@ if ( TRUE == isAirTrapControlling() ) { pendingStopAirTrapController = TRUE; - set2WayValveState( H13_VALV, STATE_CLOSED ); // Always exit air trap valve control w/ valve closed. + set3WayValveState( H13_VALV, STATE_CLOSED ); // Always exit air trap valve control w/ valve closed. SEND_EVENT_WITH_2_U32_DATA( TD_EVENT_AIR_TRAP_FILL, STATE_CLOSED, 0 ); signalLowVenousPressureCheck(); // Venous pressure check should continue even after ending auto air trap control } @@ -258,7 +258,7 @@ if ( MODE_FAUL == getCurrentOperationMode() ) { airTrapControllerState = AIR_TRAP_MANUAL_CONTROL_STATE; - set2WayValveState( H13_VALV, STATE_CLOSED ); + set3WayValveState( H13_VALV, STATE_CLOSED ); SEND_EVENT_WITH_2_U32_DATA( TD_EVENT_AIR_TRAP_FILL, STATE_CLOSED, 0 ); pendingStartAirTrapController = FALSE; } @@ -308,7 +308,7 @@ if ( TRUE == pendingStartAirTrapController ) { pendingStartAirTrapController = FALSE; - set2WayValveState( H13_VALV, STATE_CLOSED ); + set3WayValveState( H13_VALV, STATE_CLOSED ); SEND_EVENT_WITH_2_U32_DATA( TD_EVENT_AIR_TRAP_FILL, STATE_CLOSED, 0 ); result = AIR_TRAP_VALVE_CLOSED_STATE; } @@ -342,7 +342,7 @@ if ( AIR_PUMP_STATE_ON == getAirPumpState() ) { - setAirPumpState( AIR_PUMP_STATE_OFF ); + setAirPumpState( AIR_PUMP_STATE_OFF, AIR_PUMP_MOTOR_OFF ); } } @@ -352,10 +352,10 @@ airTrapValveOpenAtStartOfTreatement = FALSE; if ( AIR_PUMP_STATE_ON == getAirPumpState() ) { - setAirPumpState( AIR_PUMP_STATE_OFF ); + setAirPumpState( AIR_PUMP_STATE_OFF, AIR_PUMP_MOTOR_OFF ); } - set2WayValveState( H13_VALV, STATE_OPEN ); + set3WayValveState( H13_VALV, STATE_OPEN ); fillStartTime = getMSTimerCount(); SEND_EVENT_WITH_2_U32_DATA( TD_EVENT_AIR_TRAP_FILL, STATE_OPEN, 0 ); result = AIR_TRAP_VALVE_OPEN_STATE; @@ -368,7 +368,7 @@ ( AIR_TRAP_LEVEL_FLUID == getLevelSensorState( H17_LEVL ) ) ) ) ) { - setAirPumpState( AIR_PUMP_STATE_OFF ); + setAirPumpState( AIR_PUMP_STATE_OFF, AIR_PUMP_MOTOR_OFF ); airPumpOnDelayStartTime = getMSTimerCount(); } @@ -378,7 +378,7 @@ if ( ( AIR_PUMP_STATE_OFF == getAirPumpState() ) && ( TRUE == didTimeout( airPumpOnDelayStartTime, AIR_PUMP_ON_DELAY_TIME_MS ) ) ) { - setAirPumpState( AIR_PUMP_STATE_ON ); + setAirPumpState( AIR_PUMP_STATE_ON, 100 ); // TODO - set this depending on level direction, make #define for it stopAirPumpStartTime = getMSTimerCount(); signalInitiatePressureStabilization( USE_SHORT_STABILIZATION_PERIOD ); } @@ -390,10 +390,10 @@ { if ( AIR_PUMP_STATE_ON == getAirPumpState() ) { - setAirPumpState( AIR_PUMP_STATE_OFF ); + setAirPumpState( AIR_PUMP_STATE_OFF, AIR_PUMP_MOTOR_OFF ); } - set2WayValveState( H13_VALV, STATE_OPEN ); + set3WayValveState( H13_VALV, STATE_OPEN ); fillStartTime = getMSTimerCount(); SEND_EVENT_WITH_2_U32_DATA( TD_EVENT_AIR_TRAP_FILL, STATE_OPEN, 0 ); result = AIR_TRAP_VALVE_OPEN_STATE; @@ -424,7 +424,7 @@ // Transition to closed valve state when fluid detected at upper level else if ( AIR_TRAP_LEVEL_FLUID == getRawLevelSensorState( H16_LEVL ) ) { - set2WayValveState( H13_VALV, STATE_CLOSED ); + set3WayValveState( H13_VALV, STATE_CLOSED ); airPumpOnDelayStartTime = u32DiffWithWrap( AIR_PUMP_ON_DELAY_ADJUST_AFTER_FILL, getMSTimerCount() ); signalLowVenousPressureCheck(); SEND_EVENT_WITH_2_U32_DATA( TD_EVENT_AIR_TRAP_FILL, STATE_CLOSED, 0 ); @@ -454,8 +454,9 @@ data.h16State = getLevelSensorState( H16_LEVL ); data.h17RawState = getRawLevelSensorState( H17_LEVL ); data.h16RawState = getRawLevelSensorState( H16_LEVL ); - data.h13State = get2WayValveState( H13_VALV ); - data.controlling = isAirTrapControlling(); + data.h13State = get3WayValveState( H13_VALV ); + data.h20State = get3WayValveState( H20_VALV ); + data.controlling = isAirTrapControlling(); broadcastData( MSG_ID_TD_AIR_TRAP_DATA, COMM_BUFFER_OUT_CAN_TD_BROADCAST, (U08*)&data, sizeof( AIR_TRAP_PAYLOAD_T ) ); airTrapDataPublicationTimerCounter = 0;