Index: firmware/App/Controllers/AirPump.c =================================================================== diff -u -re24a98a344ba13ceb0663b415268a7e1dd5ce99e -r470fde672305348c9a4f5002af814737fcfa00db --- firmware/App/Controllers/AirPump.c (.../AirPump.c) (revision e24a98a344ba13ceb0663b415268a7e1dd5ce99e) +++ firmware/App/Controllers/AirPump.c (.../AirPump.c) (revision 470fde672305348c9a4f5002af814737fcfa00db) @@ -273,11 +273,8 @@ AIR_PUMP_SET_CMD_PAYLOAD_T payload; memcpy( &payload, msgPayload, sizeof( AIR_PUMP_SET_CMD_PAYLOAD_T ) ); - if ( payload.h12Power <= AIR_PUMP_MOTOR_MAX_PWM ) - { - setAirPumpState( (AIR_PUMP_STATE_T)payload.h12State, (U08)payload.h12Power ); - result = TRUE; - } + setAirPumpState( (AIR_PUMP_STATE_T)payload.h12State, (U08)payload.h12Power ); + result = TRUE; } } Index: firmware/App/Controllers/Ejector.c =================================================================== diff -u -re24a98a344ba13ceb0663b415268a7e1dd5ce99e -r470fde672305348c9a4f5002af814737fcfa00db --- firmware/App/Controllers/Ejector.c (.../Ejector.c) (revision e24a98a344ba13ceb0663b415268a7e1dd5ce99e) +++ firmware/App/Controllers/Ejector.c (.../Ejector.c) (revision 470fde672305348c9a4f5002af814737fcfa00db) @@ -30,7 +30,7 @@ // ********** private definitions ********** -#define EJECTOR_RETRACT_OP_TIME ( ( MS_PER_SECOND * 5 ) / TASK_GENERAL_INTERVAL ) ///< Ejector retract operation interval. +#define EJECTOR_RETRACT_OP_TIME ( ( MS_PER_SECOND * 10 ) / TASK_GENERAL_INTERVAL ) ///< Ejector retract operation interval. #define EJECTOR_EXTEND_OP_TIME ( ( MS_PER_SECOND * 10 ) / TASK_GENERAL_INTERVAL ) ///< Ejector extend operation interval. #define EJECTOR_BACKOFF_OP_TIME ( 50 / TASK_GENERAL_INTERVAL ) ///< Ejector back-off operation interval. #define EJECTOR_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Ejector data publish interval. @@ -336,7 +336,7 @@ { EJECTOR_STATE_T state = EJECTOR_STATE_HOMING; - if ( ++ejectorOperationTimerCounter >= EJECTOR_RETRACT_OP_TIME ) + if ( ( ++ejectorOperationTimerCounter >= EJECTOR_RETRACT_OP_TIME ) || ( TRUE == isEjectorOpticalSensorActive( EJECTOR_OPT_SENSOR_RETRACT ) ) ) { ejectorOperationTimerCounter = 0; setEjectorSpeed( EJECTOR_OFF_MOTOR_SPEED_RPM ); Index: firmware/App/Controllers/Valves.c =================================================================== diff -u -r9ee85cc1a178b3b619478b9b4386d5184537d73c -r470fde672305348c9a4f5002af814737fcfa00db --- firmware/App/Controllers/Valves.c (.../Valves.c) (revision 9ee85cc1a178b3b619478b9b4386d5184537d73c) +++ firmware/App/Controllers/Valves.c (.../Valves.c) (revision 470fde672305348c9a4f5002af814737fcfa00db) @@ -540,17 +540,8 @@ // handle a home request if ( TRUE == currentValveStates[ valve ].hasHomingBeenRequested ) { - S16 tgtPos = currentValveStates[ valve ].positionsABC[ VALVE_POSITION_C_CLOSE ]; - S16 mag = currentValveStates[ valve ].currentEncPosition - tgtPos; // calculate magnitude of position change - - // Set commanded position and transition start time stamp - // Transition back to position C to try the next energized position. It has to start from position C - currentValveStates[ valve ].commandedPosition = VALVE_POSITION_C_CLOSE; - currentValveStates[ valve ].valveOpsStartTime = getMSTimerCount(); - currentValveStates[ valve ].hasValveBeenReset = FALSE; - nextState = VALVE_STATE_IN_TRANSITION; - // Command FPGA to move valve to commanded position - setValveCmdChangePosition( valve, (U16)(mag), MOTOR_DIR_REVERSE ); + // Transition to homing not started. Reseting and enabling the valve and encoder is not needed + nextState = VALVE_STATE_HOMING_NOT_STARTED; } // handle a position change request else if ( TRUE == currentValveStates[ valve ].hasTransitionBeenRequested ) @@ -598,6 +589,7 @@ if ( abs( delta ) < VALVE_TRANSITION_MIN_TGT_DELTA ) { currentValveStates[ valve ].currentPosition = currentValveStates[ valve ].commandedPosition; + nextState = VALVE_STATE_IDLE; } // is transition taking too long? else if ( ( TRUE == didTimeout( currentValveStates[ valve ].valveOpsStartTime, VALVE_TRANSITION_TIMEOUT_MS ) ) && Index: firmware/App/TDCommon.h =================================================================== diff -u -r978ca649500f35a67604fec5459e46e80d951b4b -r470fde672305348c9a4f5002af814737fcfa00db --- firmware/App/TDCommon.h (.../TDCommon.h) (revision 978ca649500f35a67604fec5459e46e80d951b4b) +++ firmware/App/TDCommon.h (.../TDCommon.h) (revision 470fde672305348c9a4f5002af814737fcfa00db) @@ -36,7 +36,7 @@ // #define TEST_PINCH_VALVES 1 // Alpha unit pinch valve testing // #define TEST_DEBUGGER 1 // Testing with debugger - prevents FPGA comm alarms caused by breakpoints // #define TEST_PROCESS_TASKS_WO_UI 1 // Allow task processing even when UI not connected -// #define TEST_UI_ONLY 1 // Alpha test with TD and UI only - no DD + #define TEST_UI_ONLY 1 // Alpha test with TD and UI only - no DD // #define TEST_USE_OFF_AS_STOP_BUTTON 1 // Alpha test re-purposing off button as a stop button #define TEST_NO_PRESSURE_CHECKS 1 // Alpha test with no pressure sensor checks // #define TEST_NO_STOP_CONSUME_CHECK 1 // Alpha test with no check for stop button timeout