Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r8ba9bec762a05f15cda956997850f06f44c12516 -r34e8d77ff4891ad697f1017af3b7e9bfaadbd753 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 8ba9bec762a05f15cda956997850f06f44c12516) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 34e8d77ff4891ad697f1017af3b7e9bfaadbd753) @@ -256,18 +256,31 @@ /*********************************************************************//** * @brief * The verifySwitchStatus function checks Pump Track and Door switches are closed. - * Alarm is set if not. + * 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 ) { - if ( STATE_OPEN == getSwitchStatus( FRONT_DOOR ) || STATE_OPEN == getSwitchStatus( PUMP_TRACK_SWITCH ) ) + F32 bolusVol = getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ); + F32 hepRate = getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_DISPENSE_RATE ); + + if ( STATE_OPEN == getSwitchStatus( FRONT_DOOR ) ) { activateAlarmNoData( ALARM_ID_CARTRIDGE_DOOR_OPENED ); - // TODO: Separate alarm for Pump Track Switch } + + if ( STATE_OPEN == getSwitchStatus( PUMP_TRACK_SWITCH ) ) + { + activateAlarmNoData( ALARM_ID_PUMP_TRACK_LATCH_OPENED ); + } + + if ( ( FALSE == isSyringeDetected() ) && ( ( bolusVol > NEARLY_ZERO ) && ( hepRate > NEARLY_ZERO ) ) ) + { + activateAlarmNoData( ALARM_ID_PUMP_TRACK_LATCH_OPENED ); + } } /*********************************************************************//**