Interface SimulationController
- 
Method SummaryModifier and TypeMethodDescription<T extends DigitalTwinBase>
 SendingResultcreateInstance(String modelName, String instanceId, T base) Create a new digital twin instance for simulation processing.createInstanceFromPersistenceStore(String model, String id) Create a new digital twin instance for simulation processing from a persistence store.<T extends DigitalTwinBase>
 SendingResultcreateInstanceFromPersistenceStore(String model, String id, T def) The twin instance will be loaded via model name and id from a persistence store.Delay simulation processing for this DigitalTwin instance for a duration of time.Delay simulation processing for this DigitalTwin instance, indefinitely.deleteInstance(String modelName, String instanceId) Delete and remove a digital twin instance from simulation processing.Delete and remove this digital twin instance from simulation processing.emitTelemetry(String modelName, byte[] telemetryMessage) Asynchronously send a JSON serialized message to a DigitalTwin instance that will be processed by the DigitalTwin modelsMessageProcessor.processMessages(ProcessingContext, DigitalTwinBase, Iterable)method.emitTelemetry(String modelName, Object jsonSerializableMessage) Asynchronously send a JSON serializable message to a DigitalTwin instance that will be processed by the DigitalTwin modelsMessageProcessor.processMessages(ProcessingContext, DigitalTwinBase, Iterable)method.Retrieves the simulation start time.Retrieves the current simulation time increment.voidRun this instance during this simulation step.Stop the simulation.
- 
Method Details- 
getSimulationTimeIncrementDuration getSimulationTimeIncrement()Retrieves the current simulation time increment. - Returns:
- the simulation time increment.
 
- 
getSimulationStartTimeDate getSimulationStartTime()Retrieves the simulation start time. - Returns:
- the simulation start time.
 
- 
delayDelay simulation processing for this DigitalTwin instance for a duration of time. Simulation processing will be delayed for the duration specified relative to the current simulation time. Examples: at a current simulation time of 10, an interval of 20, and a delay of 40 -- the instance would skip one cycle of processing and be processed at simulation time 50. at a current simulation time of 10, an interval of 20, and a delay of 30 -- the instance would skip one cycle of processing and be processed at simulation time 50. at a current simulation time of 10, an interval of 20, and a delay of 50 -- the instance would skip two cycles of processing and be processed at simulation time 70. - Parameters:
- duration- the duration to delay.
- Returns:
- SendingResult.Handledif the delay was processed or- SendingResult.NotHandledif the delay was not processed.
 
- 
delayIndefinitelySendingResult delayIndefinitely()Delay simulation processing for this DigitalTwin instance, indefinitely. Simulation processing will be delayed until this instance is run with runThisInstance().- Returns:
- SendingResult.Handledif the delay was processed or- SendingResult.NotHandledif the delay was not processed.
 
- 
emitTelemetryAsynchronously send a JSON serialized message to a DigitalTwin instance that will be processed by the DigitalTwin models MessageProcessor.processMessages(ProcessingContext, DigitalTwinBase, Iterable)method.- Parameters:
- modelName- the model to send the messages too.
- telemetryMessage- a blob representing a JSON serialized messages.
- Returns:
- SendingResult.Handledif the messages were processed,- SendingResult.Enqueuedif the messages are in process of being handled, or- SendingResult.NotHandledif the delay was not processed.
 
- 
emitTelemetryAsynchronously send a JSON serializable message to a DigitalTwin instance that will be processed by the DigitalTwin models MessageProcessor.processMessages(ProcessingContext, DigitalTwinBase, Iterable)method.- Parameters:
- modelName- the model to send the messages too.
- jsonSerializableMessage- an object message that is JSON serializable.
- Returns:
- SendingResult.Handledif the messages were processed,- SendingResult.Enqueuedif the messages are in process of being handled, or- SendingResult.NotHandledif the delay was not processed.
 
- 
createInstance<T extends DigitalTwinBase> SendingResult createInstance(String modelName, String instanceId, T base) Create a new digital twin instance for simulation processing.- Type Parameters:
- T- the type of the digital twin to create.
- Parameters:
- modelName- the model name.
- instanceId- the instance id.
- base- the instance to create.
- Returns:
- SendingResult.Handledif the instance was created,- SendingResult.Enqueuedif the instance is in process of being created, or- SendingResult.NotHandledif the instance could not be created.
 
- 
createInstanceFromPersistenceStoreCreate a new digital twin instance for simulation processing from a persistence store. The twin instance will be loaded via model name and id from a persistence store. If no instance can be found, then an exception will be thrown and no instance will be created.- Parameters:
- model- The model name.
- id- the instance id.
- Returns:
- SendingResult.Handledif the instance was created,- SendingResult.Enqueuedif the instance is in process of being created, or- SendingResult.NotHandledif the instance could not be created.
 
- 
createInstanceFromPersistenceStore<T extends DigitalTwinBase> SendingResult createInstanceFromPersistenceStore(String model, String id, T def) The twin instance will be loaded via model name and id from a persistence store. The twin instance will be loaded via model name and id from a persistence store. If no instance can be found, then the default parameter instance will be used.- Type Parameters:
- T- the type of the digital twin to create.
- Parameters:
- model- the model name.
- id- the instance id.
- def- the default instance to create.
- Returns:
- SendingResult.Handledif the instance was created,- SendingResult.Enqueuedif the instance * is in process of being created, or- SendingResult.NotHandledif the instance could not be created.
 
- 
deleteInstanceDelete and remove a digital twin instance from simulation processing.- Parameters:
- modelName- the model name.
- instanceId- the instance id.
- Returns:
- SendingResult.Handledif the instance was deleted,- SendingResult.Enqueuedif the instance is in process of being deleted, or- SendingResult.NotHandledif the instance could not be deleted.
 
- 
deleteThisInstanceSendingResult deleteThisInstance()Delete and remove this digital twin instance from simulation processing.- Returns:
- this local request will always return SendingResult.Handled.
 
- 
runThisInstancevoid runThisInstance()Run this instance during this simulation step. The instance will be run using the modelsSimulationProcessor.processModel(ProcessingContext, DigitalTwinBase, Date)implementation. This will cause the simulation sub-system to run this instance regardless of the instances currentDigitalTwinBase.NextSimulationTime.
- 
stopSimulationSimulationStatus stopSimulation()Stop the simulation.- Returns:
- a SimulationStatus.InstanceRequestedStop.
 
 
-