Class SimulationProcessor<T extends DigitalTwinBase>

java.lang.Object
com.scaleoutsoftware.digitaltwin.core.SimulationProcessor<T>
Type Parameters:
T - the type of the digital twin.
All Implemented Interfaces:
Serializable

public abstract class SimulationProcessor<T extends DigitalTwinBase> extends Object implements Serializable
Processes simulation events for a digital twin.
See Also:
  • Constructor Details

    • SimulationProcessor

      public SimulationProcessor()
      Default constructor.
  • Method Details

    • processModel

      public abstract ProcessingResult processModel(ProcessingContext context, T instance, Date epoch)
      Processes simulation events for a real-time digital twin.
      Parameters:
      context - the processing context.
      instance - the digital twin instance.
      epoch - the current time of the simulation.
      Returns:
      ProcessingResult.UpdateDigitalTwin to update the digital twin, or ProcessingResult.NoUpdate to ignore the changes.
    • onInitSimulation

      public ProcessingResult onInitSimulation(InitSimulationContext context, T instance, Date epoch)

      Optional method that is called per-instance when a simulation is started. Default behavior is a no-op.

      onInitSimulation can be used when internal digital twin starting state is set outside the context of a digital twins init method and may be changed between simulation runs.

      • Set variables in global or shared data.
      • Run a simulation.
      • onInitSimulation is called (per-instance) and digital twin instances set internal state based on the values in shared data.
      • Complete simulation and evaluate the result.
      Parameters:
      context - The simulation init context.
      instance - The digital twin instance.
      epoch - the simulation start time.
      Returns:
      ProcessingResult.UpdateDigitalTwin or ProcessingResult.NoUpdate. Default behavior: ProcessingResult.NoUpdate.