Class FMIMADirector

    • Field Detail

      • _isFirstFire

        protected boolean _isFirstFire
        A boolean variable used to flag the first fire() execution. It is true before the first fire. It is set to true in postfire. It is set to false before returning in fire.
    • Constructor Detail

      • FMIMADirector

        public FMIMADirector()
                      throws IllegalActionException,
                             NameDuplicationException
        Construct a director in the default workspace with an empty string as its name. The director is added to the list of objects in the workspace. Increment the version number of the workspace.
        Throws:
        IllegalActionException - If the name has a period in it, or the director is not compatible with the specified container.
        NameDuplicationException - If the container already contains an entity with the specified name.
      • FMIMADirector

        public FMIMADirector​(Workspace workspace)
                      throws IllegalActionException,
                             NameDuplicationException
        Construct a director in the given workspace with an empty name. The director is added to the list of objects in the workspace. Increment the version number of the workspace.
        Parameters:
        workspace - The workspace for this object.
        Throws:
        IllegalActionException - If the name has a period in it, or the director is not compatible with the specified container.
        NameDuplicationException - If the container already contains an entity with the specified name.
      • FMIMADirector

        public FMIMADirector​(CompositeEntity container,
                             java.lang.String name)
                      throws IllegalActionException,
                             NameDuplicationException
        Construct a director in the given container with the given name. The container argument must not be null, or a NullPointerException will be thrown. If the name argument is null, then the name is set to the empty string. Increment the version number of the workspace.
        Parameters:
        container - Container of the director.
        name - Name of this director.
        Throws:
        IllegalActionException - If the director is not compatible with the specified container.
        NameDuplicationException - If the name collides with an attribute in the container.
    • Method Detail

      • fire

        public void fire()
                  throws IllegalActionException
        Fire FMUs according to a given scheduler until the iteration converges. An iteration converges when a pass through the schedule does not change the status of any receiver.
        Specified by:
        fire in interface Executable
        Overrides:
        fire in class FixedPointDirector
        Throws:
        IllegalActionException - If we couldn't process an event or if an event of smaller timestamp is found within the event queue.
      • fireAt

        public Time fireAt​(Actor actor,
                           Time time,
                           int microstep)
                    throws IllegalActionException
        Request a firing of the given actor at the given absolute time, and return the time at which the specified will be fired. If the period is 0.0 and there is no enclosing director, then this method returns the current time. If the period is 0.0 and there is an enclosing director, then this method delegates to the enclosing director, returning whatever it returns. If the period is not 0.0, then this method checks to see whether the requested time is equal to the current time plus an integer multiple of the period. If so, it returns the requested time. If not, it returns current time plus the period.
        Overrides:
        fireAt in class SRDirector
        Parameters:
        actor - The actor scheduled to be fired.
        time - The requested time.
        microstep - The microstep (ignored by this director).
        Returns:
        Either the requested time or the current time plus the period.
        Throws:
        IllegalActionException - If the operation is not permissible (e.g. the given time is in the past).
        See Also:
        Director.fireAtCurrentTime(Actor), Director.fireContainerAt(Time)
      • initialize

        public void initialize()
                        throws IllegalActionException
        Initialize the director and all deeply contained actors by calling the super.initialize() method. If the period parameter is greater than zero, then request a first firing of the executive director, if there is one.
        Specified by:
        initialize in interface Initializable
        Overrides:
        initialize in class SRDirector
        Throws:
        IllegalActionException - If the superclass throws it.
      • postfire

        public boolean postfire()
                         throws IllegalActionException
        Call postfire() on all contained FMUs that were fired in the current iteration. Return false if the model has finished executing, either by reaching the iteration limit, or if no actors in the model return true in postfire(), or if stop has been requested, or if no actors fired at all in the last iteration. This method is called only once for each iteration. Note that FMUs are postfired in arbitrary order.
        Specified by:
        postfire in interface Executable
        Overrides:
        postfire in class SRDirector
        Returns:
        True if the execution is not finished.
        Throws:
        IllegalActionException - If the iterations parameter does not have a valid token, or if there still some unknown inputs (which indicates a causality loop).