Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r9051b47d2d0e9f112d4ebc310a5572844b7528f4 -rfe91ec494378a7df34e3c14853a797f9f8f044e9 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 9051b47d2d0e9f112d4ebc310a5572844b7528f4) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision fe91ec494378a7df34e3c14853a797f9f8f044e9) @@ -179,6 +179,8 @@ setAlarmUserActionEnabled( ALARM_USER_ACTION_RINSEBACK, FALSE ); setAlarmUserActionEnabled( ALARM_USER_ACTION_END_TREATMENT, TRUE ); + doorClosedRequired( FALSE, FALSE ); + return currentPreTreatmentState; } @@ -262,46 +264,6 @@ /*********************************************************************//** * @brief - * The verifySwitchStatus function checks Pump Track and Door switches are closed. - * Verify Syringe is installed if needed. - * Alarm is set if not. Alarms cleared by driver executives. - * @details Inputs: none - * @details Outputs: Alarm - * @return none - *************************************************************************/ -void verifySwitchStatus( void ) -{ - F32 bolusVol = getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ); - F32 hepRate = getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_DISPENSE_RATE ); - -#ifndef _RELEASE_ - if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_SWITCHES_MONITOR ) != SW_CONFIG_ENABLE_VALUE ) -#endif - { - if ( STATE_OPEN == getSwitchStatus( FRONT_DOOR ) ) - { - activateAlarmNoData( ALARM_ID_CARTRIDGE_DOOR_OPENED ); - } - - if ( STATE_OPEN == getSwitchStatus( PUMP_TRACK_SWITCH ) ) - { - activateAlarmNoData( ALARM_ID_PUMP_TRACK_LATCH_OPENED ); - } - } - -#ifndef _RELEASE_ - if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_SYRINGE_PUMP_ALARMS ) != SW_CONFIG_ENABLE_VALUE ) -#endif - { - if ( ( FALSE == isSyringeDetected() ) && ( ( bolusVol > NEARLY_ZERO ) && ( hepRate > NEARLY_ZERO ) ) ) - { - activateAlarmNoData( ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_REMOVED ); - } - } -} - -/*********************************************************************//** - * @brief * The signalUserConfirmInstallation function handles user confirmation of * disposable installation. * @details Inputs: none @@ -325,14 +287,6 @@ OPN_CLS_STATE_T frontDoor = getSwitchStatus( FRONT_DOOR ); OPN_CLS_STATE_T pumpTrack = getSwitchStatus( PUMP_TRACK_SWITCH ); -#ifndef _RELEASE_ - if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_SWITCHES_MONITOR ) ) - { - frontDoor = STATE_CLOSED; - pumpTrack = STATE_CLOSED; - } -#endif - if ( STATE_CLOSED == pumpTrack ) { if ( STATE_CLOSED == frontDoor ) @@ -342,6 +296,10 @@ // Everything is properly installed accepted = TRUE; confirmInstallRequested = TRUE; + if ( ( bolusVol > NEARLY_ZERO ) || ( hepRate > NEARLY_ZERO ) ) + { + syringeDetectionRequired( TRUE ); + } } else { @@ -542,16 +500,17 @@ { PRE_TREATMENT_STATE_DATA_T preTreatmentData; - preTreatmentData.preTreatmentSubMode = currentPreTreatmentState; - preTreatmentData.sampleWaterState = getSampleWaterState(); + preTreatmentData.preTreatmentSubMode = currentPreTreatmentState; + preTreatmentData.sampleWaterState = getSampleWaterState(); preTreatmentData.consumableSelfTestsState = getConsumableSelfTestState(); - preTreatmentData.noCartSelfTestsState = getNoCartSelfTestsState(); - preTreatmentData.installState = 0; - preTreatmentData.drySelfTestsState = getDrySelfTestsState(); - preTreatmentData.primeState = getPrimeState(); - preTreatmentData.recircState = getPreTreatmentRecircState(); - preTreatmentData.patientConnectionState = 0; - preTreatmentData.wetSelfTestsState = getWetSelfTestState(); + preTreatmentData.noCartSelfTestsState = getNoCartSelfTestsState(); + preTreatmentData.installState = 0; + preTreatmentData.drySelfTestsState = getDrySelfTestsState(); + preTreatmentData.primeState = getPrimeState(); + preTreatmentData.recircState = getPreTreatmentRecircState(); + preTreatmentData.patientConnectionState = 0; + preTreatmentData.wetSelfTestsState = getWetSelfTestState(); + preTreatmentData.preTreatmentRsrvrState = currentReservoirMgmtState; broadcastData( MSG_ID_PRE_TREATMENT_STATE, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&preTreatmentData, sizeof( PRE_TREATMENT_STATE_DATA_T ) ); preTreatmentPublishTimerCounter = 0; @@ -586,6 +545,8 @@ { VALVE_T valve; + doorClosedRequired( FALSE, FALSE ); + // Set valves for ( valve = VDI; valve < NUM_OF_VALVES; ++valve ) { @@ -615,6 +576,8 @@ patientConnectionConfirm = FALSE; treatmentStartRequested = FALSE; + doorClosedRequired( FALSE, FALSE ); + for ( valve = VDI; valve < NUM_OF_VALVES; ++valve ) { setValvePosition( valve, VALVE_POSITION_C_CLOSE ); @@ -726,14 +689,6 @@ transitionToCartridgeInstallation(); } } - else - { - if ( ( NO_CART_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE <= getNoCartSelfTestsState() ) && - ( NO_CART_SELF_TESTS_STOPPED_STATE != getNoCartSelfTestsState() ) ) - { - verifySwitchStatus(); - } - } return state; } @@ -795,14 +750,6 @@ transitionToPrime(); } } - else - { - if ( ( DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE <= getDrySelfTestsState() ) && - ( DRY_SELF_TESTS_STOPPED_STATE != getDrySelfTestsState() ) ) - { - verifySwitchStatus(); - } - } return state; } @@ -837,13 +784,6 @@ transitionToPreTreatmentRecirc(); } } - else - { - if ( ( HD_PRIME_PAUSE != getPrimeState() ) ) - { - verifySwitchStatus(); - } - } return state; } @@ -868,11 +808,6 @@ execPreTreatmentRecirc(); - if ( PRE_TREATMENT_RECIRC_STOPPED_STATE != getPreTreatmentRecircState() ) - { - verifySwitchStatus(); - } - #ifndef _RELEASE_ if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_UI_INTERACTION ) ) { @@ -1094,12 +1029,12 @@ } else { - U32 volume = FILL_RESERVOIR_TO_VOLUME_ML; + U32 volume = PRE_TREATMENT_FLUSH_RESERVOIR_VOLUME_ML; #ifndef _RELEASE_ - if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_PRIMING ) != SW_CONFIG_ENABLE_VALUE ) + if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_PRIMING ) ) { - volume = PRE_TREATMENT_FLUSH_RESERVOIR_VOLUME_ML; + volume = FILL_RESERVOIR_TO_VOLUME_ML; } #endif