Class IngredientNozzlePipeline

java.lang.Object
com.tccc.kos.ext.dispense.service.nozzle.NozzlePipeline
com.tccc.kos.ext.dispense.pipeline.ingredient.IngredientNozzlePipeline
All Implemented Interfaces:
com.tccc.kos.commons.core.service.config.ConfigAware<IngredientNozzlePipelineConfig>, com.tccc.kos.commons.core.service.handle.HandleAware

public class IngredientNozzlePipeline extends NozzlePipeline implements com.tccc.kos.commons.core.service.config.ConfigAware<IngredientNozzlePipelineConfig>
Nozzle pipeline that supports pump operations via pump intents. This is used for ingredient pouring which covers most admin ui related pour functionality.

Intents are sequences of PumpOp beans which are run as a group. When pouring concentrated ingredients, a PumpOp can be configured to require dilution. For this to work, the pump that pours the dilution (typically water) must be set using setDilutionPump(). When dilution is needed, the pump will be run with an intent of type dilution. This must be defined for the dilution pump for dilution to work and it typically a max duration pour as it will be cancelled when no longer required. Any grants used in the dilution intent will be ignored to prevent dilution from being blocked.

Since:
1.0
Version:
2023-01-23
  • Constructor Details

    • IngredientNozzlePipeline

      public IngredientNozzlePipeline(PumpIntentFactory intentFactory)
  • Method Details

    • onConfigChanged

      public void onConfigChanged(com.tccc.kos.commons.core.service.config.BeanChanges changes)
      Specified by:
      onConfigChanged in interface com.tccc.kos.commons.core.service.config.ConfigAware<IngredientNozzlePipelineConfig>
    • getIngredientPipelineService

      public IngredientPipelineService getIngredientPipelineService()
      Return the IngredientPipelineService used to pour intents for individual pumps.
    • getPumpOpGrantService

      public PumpOpGrantService getPumpOpGrantService()
      Return the PumpOpGrantService for the pipeline. This can be used to add additional PumpOpGrantManager instances to the service.
    • setPumpOpGrantService

      public void setPumpOpGrantService(PumpOpGrantService service)
      Replace the PumpOpGrantService for this pipeline. This can be used to share a single service across multiple nozzles.
    • getDilutionPump

      public Pump<?> getDilutionPump()
      Return the pump configured for dilution.
    • setDilutionPump

      public void setDilutionPump(Pump<?> pump)
      Set the pump to use for dilution. This is only required when using dilution in PumpOps which is generally only required for highly concentrated ingredients such as those used in micro-dosing. If set, this pump must also have an intent named dilution which will be used for the dilution process.
    • getConfig

      public IngredientNozzlePipelineConfig getConfig()
      Specified by:
      getConfig in interface com.tccc.kos.commons.core.service.config.ConfigAware<IngredientNozzlePipelineConfig>
    • setConfig

      public void setConfig(IngredientNozzlePipelineConfig config)
      Specified by:
      setConfig in interface com.tccc.kos.commons.core.service.config.ConfigAware<IngredientNozzlePipelineConfig>