Method, apparatus, and program for a state machine framework
First Claim
1. A data processing system implemented method for providing a software state machine that is responsive to at least one input and at least one trigger, wherein the software state machine provides at least one output event based upon a current state of the software state machine and the at least one input, comprising:
- providing a first state machine object, wherein the first state machine object is configured to use a first initializer object to execute a first software state machine, wherein the first software state machine comprises (i) a state table that defines states that the first software state machine may take, (II) an actions table that defines actions that the first software state machine may take, (iii) an inputs table that defines inputs to the first software state machine that affect state transitions within the first software state machine, (iv) a triggers table that defines triggers that initiate operation of the first software state machine, (v) an events table that defines output events that may be generated by the first software state machine, (vi) a state transitions table that defines stats transitions of the first software state machine, conditions that cause the state transitions, end the output events that are generated when the state transitions complete, and (vii) a conditions table that defines logical conditions that are examined in conjunction with entries in the state transition table; and
providing a second state machine object, wherein the second state machine object is configured to use a second initializer object to execute a second software state machine,wherein the second state machine object is configured to interact with the first state machine abject based on the second initializer object.
1 Assignment
0 Petitions
Accused Products
Abstract
A programming framework is provided for designing and implementing software state machines. A state machine initializer may be created that defines the states, conditions, actions, triggers, and state transitions for the software state machines. A set of user interfaces, may also be provided for creating initializers. An abstract state machine object may then be created that creates an instance of a particular state machine initializer. The state machine initializer acts as a helper to the state machine object, which uses the initializer to create an array of state transition objects. A set of programming interfaces may also be provided to define the programming framework. Events generated by one state machine may be used as triggers by another state machine. Furthermore, state values of one state machine may be used as inputs by other state machines. State machines may also share triggers and inputs.
36 Citations
21 Claims
-
1. A data processing system implemented method for providing a software state machine that is responsive to at least one input and at least one trigger, wherein the software state machine provides at least one output event based upon a current state of the software state machine and the at least one input, comprising:
-
providing a first state machine object, wherein the first state machine object is configured to use a first initializer object to execute a first software state machine, wherein the first software state machine comprises (i) a state table that defines states that the first software state machine may take, (II) an actions table that defines actions that the first software state machine may take, (iii) an inputs table that defines inputs to the first software state machine that affect state transitions within the first software state machine, (iv) a triggers table that defines triggers that initiate operation of the first software state machine, (v) an events table that defines output events that may be generated by the first software state machine, (vi) a state transitions table that defines stats transitions of the first software state machine, conditions that cause the state transitions, end the output events that are generated when the state transitions complete, and (vii) a conditions table that defines logical conditions that are examined in conjunction with entries in the state transition table; and providing a second state machine object, wherein the second state machine object is configured to use a second initializer object to execute a second software state machine, wherein the second state machine object is configured to interact with the first state machine abject based on the second initializer object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. An apparatus for providing a software state machine that is responsive to at least one input and at least one trigger, wherein the software state machine provides at least one output event based upon a current state of the software state machine and the at least one input, comprising:
-
a processor; and a memory having stored therein a first state machine object, a first initializer object, a second state machine object, and a second initializer object, wherein the first state machine object is configured to use the first initializer object to execute a first software stare machine, wherein the first software state machine comprises (i) a state table tat defines states that the first software state machine may take, (ii) an actions table that defines actions that the first software state machine may take, (iii) an, inputs table that defines inputs to the first software state machine that affect state transitions within the first software state machine, (iv) a triggers table that defines triggers that initiate operation of the first software state machine, (v) an events table that defines output events tat may be generated by the first software state machine, (vi) a state transitions table that defines state transitions of the first software state machine, conditions that cause the state transitions, and the output events that are generated when the state transitions complete, and (vii) a conditions table that defines logical conditions that are examined in conjunction with entries in the state transition table; wherein the second state machine object is configured to use the second initializer object to execute a second software state machine; and wherein the second state machine object is configured to interact with the first state machine object based on the second initializer object. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21)
-
Specification