The ProgramStateMachineType includes references to the Causes of specific Program state transitions. These causes refer to Method instances. Programs that do not support a Program Control Method will omit the Causes reference to that Method from the ProgramStateMachineType references. If a Method’s Causes reference is omitted from the ProgramStateMachineType then a Client cannot cause the associated state transition. The Method instances referenced by the ProgramStateMachineType identify the InputArguments and OutputArguments required for the Method calls to Program Invocations of that ProgramStateMachineType. Table 8 specifies the Methods defined as Causes for ProgramStateMachineTypes. Figure 6 illustrates the References associating the components and Properties of Methods and Events with Program transitions.

Table 8 – ProgramStateMachineType causes

BrowseName

References

Target BrowseName

Value

Target TypeDefinition

NOTES

Causes

Start

HasProperty

InputArguments

PropertyType

Optional

HasProperty

OutputArguments

PropertyType

Optional

Suspend

HasProperty

InputArguments

PropertyType

Optional

HasProperty

OutputArguments

PropertyType

Optional

Resume

HasProperty

InputArguments

PropertyType

Optional

HasProperty

OutputArguments

PropertyType

Optional

Halt

HasProperty

InputArguments

PropertyType

Optional

HasProperty

OutputArguments

PropertyType

Optional

Reset

HasProperty

InputArguments

PropertyType

Optional

HasProperty

OutputArguments

PropertyType

Optional

The Start Method causes the ReadyToRunning Program transition.

The Suspend Method causes the RunningToSuspended Program transition.

The Resume Method causes the SuspendedToRunning Program transition.

The Halt Method causes the RunningToHalted, SuspendedToHalted, or ReadyToHalted Program transition depending on the current state of the Program.

The Reset Method causes the HaltedToReady Program transition.