Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -re4eceb1ac6e8091d10e0fab49d2d5a9c5e5f1c67 -rc27a2530b0cab5dc46459037c7ff7816b1a21dad --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision e4eceb1ac6e8091d10e0fab49d2d5a9c5e5f1c67) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision c27a2530b0cab5dc46459037c7ff7816b1a21dad) @@ -352,7 +352,7 @@ BOOL paramsValid = getValidTreatParamsReceived(); BOOL paramsConfirmed = getTreatParamsConfirmed(); BOOL heparinIsPrescribed = ( ( getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ) > 0.0F ) || - ( getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_DELIVERY_RATE ) > 0.0F ) ); + ( getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_DELIVERY_RATE ) > 0.0F ) ) ? TRUE : FALSE; BOOL isDialysateGoodToDeliver = TRUE; // TODO replace TRUE with getDialysateGoodToDeliverStatus() when we are ready F32 bicarbConvFactor = BICARBONATE_CONVERSION_FACTOR; F32 presUFVolumeL = 0.0F; @@ -453,17 +453,17 @@ * @brief * The signalAlarmActionToPreTreatmentMode function executes the given alarm action * as appropriate while in Pre-Treatment Mode. - * @details \b Inputs: currentPreTreatmentState - * @details \b Outputs: given alarm action executed - * @param action ID of alarm action to execute + * @details \b Inputs: currentPreTreatmentState and current Heparin Setup sub-state. + * @details \b Outputs: Alarm action handled for the active Pre-Treatment state. + * @param action ID of alarm action to execute. * @return none *************************************************************************/ void signalAlarmActionToPreTreatmentMode( ALARM_ACTION_T action ) { switch ( action ) { case ALARM_ACTION_STOP: - // TODO add logic once we have pre-treatment mode developed + // TODO add logic once we have pre-treatment mode developed. break; case ALARM_ACTION_RESUME: @@ -473,12 +473,26 @@ } else if ( TD_PRE_TREATMENT_HEPARIN_SETUP_STATE == currentPreTreatmentState ) { - signalResumePreTxHeparinSetup(); + // Treat the Load Syringe alarm acknowledgment as syringe load + // confirmation only while awaiting user confirmation. Otherwise, + // resume the interrupted Heparin Setup state. + if ( TRUE == isPreTxHeparinAwaitingSyringeLoadConfirmation() ) + { + signalPreTxHeparinSyringeLoadConfirmed(); + } + else + { + signalResumePreTxHeparinSetup(); + } } + else + { + // No action required. + } break; default: - // do not handle other actions in pre-treatment mode + // Do not handle other actions in Pre-Treatment mode. break; } }