Interface SimulationController


  • public interface SimulationController
    The SimulationController interface is used to interact with the running DigitalTwin simulation.
    • Method Detail

      • getSimulationTimeIncrement

        java.time.Duration getSimulationTimeIncrement()

        Retrieves the current simulation time increment.

        Returns:
        the simulation time increment.
      • delay

        SendingResult delay​(java.time.Duration duration)

        Delay 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.Handled if the delay was processed or SendingResult.NotHandled if the delay was not processed.
      • createInstance

        <T extends DigitalTwinBaseSendingResult createInstance​(java.lang.String modelName,
                                                                 java.lang.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.Handled if the instance was created, SendingResult.Enqueued if the instance is in process of being created, or SendingResult.NotHandled if the instance could not be created.
      • createInstanceFromPersistenceStore

        SendingResult createInstanceFromPersistenceStore​(java.lang.String model,
                                                         java.lang.String id)
        Create 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.Handled if the instance was created, SendingResult.Enqueued if the instance is in process of being created, or SendingResult.NotHandled if the instance could not be created.
      • createInstanceFromPersistenceStore

        <T extends DigitalTwinBaseSendingResult createInstanceFromPersistenceStore​(java.lang.String model,
                                                                                     java.lang.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.Handled if the instance was created, SendingResult.Enqueued if the instance * is in process of being created, or SendingResult.NotHandled if the instance could not be created.
      • deleteInstance

        SendingResult deleteInstance​(java.lang.String modelName,
                                     java.lang.String instanceId)
        Delete and remove a digital twin instance from simulation processing.
        Parameters:
        modelName - the model name.
        instanceId - the instance id.
        Returns:
        SendingResult.Handled if the instance was deleted, SendingResult.Enqueued if the instance is in process of being deleted, or SendingResult.NotHandled if the instance could not be deleted.
      • deleteThisInstance

        SendingResult deleteThisInstance()
        Delete and remove this digital twin instance from simulation processing.
        Returns:
        this local request will always return SendingResult.Handled.