Index: firmware/App/Controllers/Valves.c =================================================================== diff -u -r3479c42f6bf13fb6c565cc48ba13936e1ec22be9 -ra43e8d7086cdfa6f6208306e5b23de13ffb8a014 --- firmware/App/Controllers/Valves.c (.../Valves.c) (revision 3479c42f6bf13fb6c565cc48ba13936e1ec22be9) +++ firmware/App/Controllers/Valves.c (.../Valves.c) (revision a43e8d7086cdfa6f6208306e5b23de13ffb8a014) @@ -37,7 +37,7 @@ #define VALVES_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Valves data publish interval. #define DATA_PUBLISH_COUNTER_START_COUNT 13 ///< Valves data publish start counter. #define VALVE_TRANSITION_MIN_TGT_DELTA 50 ///< Minimum encoder position delta from target position to end transition state. -#define VALVE_TRANSITION_TIMEOUT_MS ( 11 * MS_PER_SECOND ) ///< Valves transition time out in ms. +#define VALVE_TRANSITION_TIMEOUT_MS ( 3 * MS_PER_SECOND ) ///< Valves transition time out in ms. #define VALVE_HOMING_TIMEOUT_MS ( 15 * MS_PER_SECOND ) ///< Valves homing time out in ms. /// Valve status structure Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r3479c42f6bf13fb6c565cc48ba13936e1ec22be9 -ra43e8d7086cdfa6f6208306e5b23de13ffb8a014 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 3479c42f6bf13fb6c565cc48ba13936e1ec22be9) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision a43e8d7086cdfa6f6208306e5b23de13ffb8a014) @@ -19,7 +19,7 @@ #include "AirTrap.h" #include "BloodFlow.h" #include "Buttons.h" -//#include "DrySelfTests.h" +#include "DrySelfTests.h" #include "DDInterface.h" #include "Messaging.h" #include "ModePreTreat.h" @@ -314,7 +314,7 @@ if ( TRUE == goToInstallStateRequested ) { goToInstallStateRequested = FALSE; - initTubeSetInstall(); + state = TD_PRE_TREATMENT_TUBING_SET_INSTALL_STATE; } else if ( DRY_SELF_TESTS_COMPLETE_STATE == getDrySelfTestsState() ) Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r3479c42f6bf13fb6c565cc48ba13936e1ec22be9 -ra43e8d7086cdfa6f6208306e5b23de13ffb8a014 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 3479c42f6bf13fb6c565cc48ba13936e1ec22be9) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision a43e8d7086cdfa6f6208306e5b23de13ffb8a014) @@ -48,7 +48,6 @@ static BOOL homingInitiated; ///< Flag indicates actuators have been homed. static FLUID_TYPE_T fluidType; ///< Fluid type assigned based on user selection. static TREATMENT_TYPE_T modality; ///< Modality from the treatment initiation. -static BOOL positionARequested; // Temporay // ********** private function prototypes ********** @@ -67,7 +66,6 @@ currentStandbyState = STANDBY_START_STATE; treatStartReqReceived = FALSE; homingInitiated = FALSE; - positionARequested = FALSE; //Temp fluidType = FLUID_TYPE_UNKNOWN; modality = TREATMENT_MODALITY_HD_SALINE_FLUID; } @@ -164,78 +162,34 @@ * @details \b Outputs: homingInitiated * @return next state of the standby mode state machine *************************************************************************/ -//static TD_STANDBY_STATE_T handleStandbyModeStartState( void ) -//{ -// TD_STANDBY_STATE_T state = STANDBY_START_STATE; -// -// if ( FALSE == homingInitiated ) -// { -// VALVE_T valve; -// // Initiate homing for both pinch valves. -// for ( valve = FIRST_VALVE; valve < NUM_OF_VALVES; ++valve ) -// { -// homeValve( valve, FALSE, TRUE ); -// } -// homingInitiated = TRUE; -// } -// else if ( ( VALVE_STATE_IDLE == getValveState( H1_VALV ) ) && -// ( VALVE_STATE_IDLE == getValveState( H19_VALV ) ) ) -// { -// // After homing completes, move both pinch valves to Position A. -// setValvePosition( H1_VALV, VALVE_POSITION_A_INSERT_EJECT ); -// setValvePosition( H19_VALV, VALVE_POSITION_A_INSERT_EJECT ); -// homingInitiated = FALSE; -// state = STANDBY_WAIT_FOR_TREATMENT_STATE; -// } -// -// return state; -//} - static TD_STANDBY_STATE_T handleStandbyModeStartState( void ) { TD_STANDBY_STATE_T state = STANDBY_START_STATE; if ( FALSE == homingInitiated ) { - BOOL h1HomeAccepted; - BOOL h19HomeAccepted; - - h1HomeAccepted = homeValve( H1_VALV, FALSE, TRUE ); - - h19HomeAccepted = homeValve( H19_VALV, FALSE, TRUE ); - - if ( ( TRUE == h1HomeAccepted ) && - ( TRUE == h19HomeAccepted ) ) + VALVE_T valve; + // Initiate homing for both pinch valves. + for ( valve = FIRST_VALVE; valve < NUM_OF_VALVES; ++valve ) { - homingInitiated = TRUE; + homeValve( valve, FALSE, TRUE ); } + homingInitiated = TRUE; } - else if ( ( FALSE == positionARequested ) && - ( VALVE_STATE_IDLE == getValveState( H1_VALV ) ) && + else if ( ( VALVE_STATE_IDLE == getValveState( H1_VALV ) ) && ( VALVE_STATE_IDLE == getValveState( H19_VALV ) ) ) { - BOOL h1PositionAccepted; - BOOL h19PositionAccepted; - - h1PositionAccepted = setValvePosition( H1_VALV, VALVE_POSITION_A_INSERT_EJECT ); - h19PositionAccepted = setValvePosition( H19_VALV, VALVE_POSITION_A_INSERT_EJECT ); - - if ( ( TRUE == h1PositionAccepted ) && - ( TRUE == h19PositionAccepted ) ) - { - positionARequested = TRUE; - } - } - else if ( ( TRUE == positionARequested ) && - ( VALVE_POSITION_A_INSERT_EJECT == getValvePosition( H1_VALV ) ) && - ( VALVE_POSITION_A_INSERT_EJECT == getValvePosition( H19_VALV ) ) ) - { + // After homing completes, move both pinch valves to Position A. + setValvePosition( H1_VALV, VALVE_POSITION_A_INSERT_EJECT ); + setValvePosition( H19_VALV, VALVE_POSITION_A_INSERT_EJECT ); + homingInitiated = FALSE; state = STANDBY_WAIT_FOR_TREATMENT_STATE; } return state; } + /*********************************************************************//** * @brief * The handleStandbyModeWaitForTreatmentState function handles wait for Index: firmware/App/Services/StateServices/DrySelfTests.c =================================================================== diff -u -r3479c42f6bf13fb6c565cc48ba13936e1ec22be9 -ra43e8d7086cdfa6f6208306e5b23de13ffb8a014 --- firmware/App/Services/StateServices/DrySelfTests.c (.../DrySelfTests.c) (revision 3479c42f6bf13fb6c565cc48ba13936e1ec22be9) +++ firmware/App/Services/StateServices/DrySelfTests.c (.../DrySelfTests.c) (revision a43e8d7086cdfa6f6208306e5b23de13ffb8a014) @@ -181,47 +181,51 @@ * on front door state * @return none *************************************************************************/ -//void transitionToDrySelfTests( void ) -//{ -// selfTestStartTime = getMSTimerCount(); -// selfTestPreviousPublishDataTime = getMSTimerCount(); -// resetSelfTestsFlags(); -// doorClosedRequired( TRUE ); -// // to stop automatic air trap control because Dry Self-Test -// // directly controls H13 and H20. -// endAirTrapControl(); -// setCurrentSubState( (U32)currentDrySelfTestsState ); -// // To configure actuators for the current Dry Self-Test state. -// transitionToDrySelfTestsState( currentDrySelfTestsState ); -//} - void transitionToDrySelfTests( void ) { - selfTestStartTime = getMSTimerCount(); - selfTestPreviousPublishDataTime = getMSTimerCount(); - doorClosedRequired( TRUE ); - setCurrentSubState( (U32)currentDrySelfTestsState ); - transitionToDrySelfTestsState( currentDrySelfTestsState ); + selfTestStartTime = getMSTimerCount(); + selfTestPreviousPublishDataTime = getMSTimerCount(); - signalBloodPumpHardStop(); + resetSelfTestsFlags(); + doorClosedRequired( TRUE ); + + // Dry Self-Test directly controls H13 and H20. endAirTrapControl(); - set3WayValveState( H13_VALV, VALVE_3WAY_COMMON_TO_CLOSED_STATE ); - set3WayValveState( H20_VALV, VALVE_3WAY_COMMON_TO_CLOSED_STATE ); - setValvePosition( H19_VALV, VALVE_POSITION_A_INSERT_EJECT ); - if ( STATE_CLOSED == getSwitchState( H9_SWCH ) ) - { - setValvePosition( H1_VALV, VALVE_POSITION_B_OPEN ); - } - else - { - setValvePosition( H1_VALV, VALVE_POSITION_A_INSERT_EJECT ); - } + setCurrentSubState( (U32)currentDrySelfTestsState ); - resetSelfTestsFlags(); + // Configure actuators for the initial Dry Self-Test state. + transitionToDrySelfTestsState( currentDrySelfTestsState ); } +//void transitionToDrySelfTests( void ) +//{ +// selfTestStartTime = getMSTimerCount(); +// selfTestPreviousPublishDataTime = getMSTimerCount(); +// doorClosedRequired( TRUE ); +// setCurrentSubState( (U32)currentDrySelfTestsState ); +// transitionToDrySelfTestsState( currentDrySelfTestsState ); +// +// signalBloodPumpHardStop(); +// +// endAirTrapControl(); +// set3WayValveState( H13_VALV, VALVE_3WAY_COMMON_TO_CLOSED_STATE ); +// set3WayValveState( H20_VALV, VALVE_3WAY_COMMON_TO_CLOSED_STATE ); +// setValvePosition( H19_VALV, VALVE_POSITION_A_INSERT_EJECT ); +// +// if ( STATE_CLOSED == getSwitchState( H9_SWCH ) ) +// { +// setValvePosition( H1_VALV, VALVE_POSITION_B_OPEN ); +// } +// else +// { +// setValvePosition( H1_VALV, VALVE_POSITION_A_INSERT_EJECT ); +// } +// +// resetSelfTestsFlags(); +//} + /*********************************************************************//** * @brief * The execDrySelfTests function executes the dry self-tests state machine. @@ -412,12 +416,12 @@ OPN_CLS_STATE_T door = getSwitchState( H9_SWCH ); // Want to pinch off saline once door closed after tubing set install - handleDoorCloseAfterTubingSetInsertion(); + //handleDoorCloseAfterTubingSetInsertion(); if ( STATE_CLOSED == door ) { doorClosedRequired( TRUE ); - state = DRY_SELF_TESTS_USED_TUBING_SET_CHECK_STATE; + state = DRY_SELF_TESTS_PRESSURE_SENSOR_NORMAL_SETUP_STATE; } return state;