Index: firmware/App/Services/FluidBolus.c =================================================================== diff -u -r83163b27c604072469c28623ba0e4ed9786e294a -r8d0569c37baa53ecc7073c03d5e03ca423656c70 --- firmware/App/Services/FluidBolus.c (.../FluidBolus.c) (revision 83163b27c604072469c28623ba0e4ed9786e294a) +++ firmware/App/Services/FluidBolus.c (.../FluidBolus.c) (revision 8d0569c37baa53ecc7073c03d5e03ca423656c70) @@ -111,9 +111,9 @@ * The execFluidBolus function executes the fluid bolus state machine. * @details \b Inputs: currentFluidBolusState * @details \b Outputs: currentFluidBolusState - * @return Current fluid bolus state machine. + * @return none *************************************************************************/ -FLUID_BOLUS_STATE_T execFluidBolus( void ) +void execFluidBolus( void ) { FLUID_BOLUS_STATE_T priorState = currentFluidBolusState; @@ -148,7 +148,18 @@ // Publish fluid bolus data at set interval (whether we are delivering one or not) publishFluidBolusData(); +} +/*********************************************************************//** + * @brief + * The getCurrentFluidBolusState function returns the current state of the + * Fluid Bolus service. + * @details \b Inputs: currentFluidBolusState + * @details \b Outputs: none + * @return currentFluidBolusState + *************************************************************************/ +FLUID_BOLUS_STATE_T getCurrentFluidBolusState( void ) +{ return currentFluidBolusState; } @@ -267,8 +278,7 @@ data.tgtFluidVolumeMl = getTreatmentParameterU32( TREATMENT_PARAM_FLUID_BOLUS_VOLUME ); data.bolFluidVolumeMl = bolusFluidVolumeDelivered_mL; data.cumFluidVolumeMl = totalFluidVolumeDelivered_mL; - data.fluidBolusState = currentFluidBolusState; - data.bolusPermitted = ( FALSE == isFluidBolusActive() ) ? pubBolusPermitted : FALSE; + data.bolusPermitted = pubBolusPermitted; broadcastData( MSG_ID_TD_FLUID_BOLUS_DATA, COMM_BUFFER_OUT_CAN_TD_BROADCAST, (U08*)&data, sizeof( FLUID_BOLUS_DATA_PAYLOAD_T ) ); @@ -376,7 +386,7 @@ state = FLUID_BOLUS_IDLE_STATE; } // Determine if bolus is complete or stopped by user - if ( ( bolusFluidVolumeDelivered_mL >= bolusTargetVolume ) || ( TRUE == fluidBolusAbortRequested ) ) + else if ( ( bolusFluidVolumeDelivered_mL >= bolusTargetVolume ) || ( TRUE == fluidBolusAbortRequested ) ) { fluidBolusAbortRequested = FALSE; state = FLUID_BOLUS_IDLE_STATE; @@ -386,10 +396,9 @@ // No action required } - // complete or abort or alarm + // Bolus ended, stop blood pump and record delivered volume if ( state != FLUID_BOLUS_SALINE_IN_PROGRESS_STATE ) { - // Hard stop blood signalBloodPumpHardStop(); completeBolusToCumulative(); }