Run-time modules for dynamically adjusting computer operation
First Claim
1. A computer having stored thereon a computer program including at least one code module interface (CMI) defined by a first set of software code and a state machine defined by a second set of software code having a plurality of states each state having at least one predetermined exit criterion, said program executable by the computer for causing the computer to perform the steps of:
- registering said at least one CMI during an initialization state of said state machine;
determining, based on said step of registering, at least one state within said state machine upon exit of which said at least one CMI is to be executed;
executing said CMI when said computer exits said at least one determined state within said computer program; and
re-entering said computer program at a state determined by said CMI, when said CMI executing step has ended, wherein functionality of said state machine is adjusted without altering said second set of software codes.
1 Assignment
0 Petitions
Accused Products
Abstract
Code module interfaces are provided which allow a user to adjust the functionality of a program at run-time. The code module interfaces (CMIs) can be selectively activated by a user at run-time. Then, the control software will call the CMIs at various instances, for example, at startup, after each state change in the control software, at idle time and when the control software has completed all of its tasks. Alternatively, when each CMI is loaded, it can specify at which state change(s) that CMI is to be called to increase speed of operation.
26 Citations
24 Claims
-
1. A computer having stored thereon a computer program including at least one code module interface (CMI) defined by a first set of software code and a state machine defined by a second set of software code having a plurality of states each state having at least one predetermined exit criterion, said program executable by the computer for causing the computer to perform the steps of:
-
registering said at least one CMI during an initialization state of said state machine;
determining, based on said step of registering, at least one state within said state machine upon exit of which said at least one CMI is to be executed;
executing said CMI when said computer exits said at least one determined state within said computer program; and
re-entering said computer program at a state determined by said CMI, when said CMI executing step has ended, wherein functionality of said state machine is adjusted without altering said second set of software codes. - View Dependent Claims (2, 3, 4, 5, 6)
providing, by said CMI, a mask which identifies state transitions at which said CMI is to be called.
-
-
4. The computer of claim 1 wherein the program further comprises the steps of:
-
executing said CMI at another of said at least one determined states in said state machine program; and
providing a variable set of arguments associated with the execution of said CMI, wherein said step of executing said CMI at said at least one determined state and said step of executing said CMI at said another of said at least one determined states are performed using different sets of arguments.
-
-
5. The computer of claim 1 wherein the program further comprises the step of:
providing, by said CMI, a plurality of subsets of code within said first set of software code, each of which subsets are associated with a different state of said state machine.
-
6. The computer of claim 5 wherein the step of executing further comprises the step of:
running one of said subsets of said first set of software code that is associated with a state of said state machine indicated by said at least one step.
-
7. A computer having stored thereon a computer program including at least one code module interface (CMI) plug-in module executable by the computer for causing the computer to perform the steps of:
-
registering said at least one plug-in module;
determining, based on said step of registering, at least one step within said computer program wherein said at least one plug-in module is to be executed;
executing said plug-in module when said computer reaches said step within said computer program; and
allowing said plug-in module to determine a re-entry step within said computer program for re-entering said computer program when said plug-in module executing step has ended. - View Dependent Claims (8, 9, 10, 11, 12)
providing, by said CMI, a mask which identifies state transitions at which said plug-in module is to be called.
-
-
10. The computer of claim 7 wherein the computer program further comprises the steps of:
-
executing said plug-in module at another step in said computer program; and
providing a variable set of arguments associated with execution of said plug-in module, wherein said step of executing said plug-in module at said at least one step and said step of executing said plug-in module at said another step are performed using different sets of arguments.
-
-
11. The computer of claim 7 wherein the computer program further comprises the step of:
providing, by said plug-in module, a plurality of sets of code, each of which are associated with a different state of said computer program.
-
12. The computer of claim 11 where said step of executing further comprises the steps of:
running one of said sets of code that is associated with a state of said computer program indicated by said at least one step.
-
13. A system to allow a user to adjust the functionality of a computer program which operates as a state machine at run-time, the system comprising:
-
a computer; and
a computer program stored on the computer, the computer program having at least one code module interface (CMI) defined by a first set of software code and a state machine defined by a second set of software code having a plurality of states, each state having at least one predetermined exit criterion, said program executable by the computer for causing the computer to perform the steps of;
registering said at least one CMI during an initialization state of said state machine;
determining, based on said step of registering, at least one state within said state machine upon exit of which said at least one CMI is to be executed;
executing said CMI when said computer exits said at least one determined state within said computer program; and
re-entering said computer program at a state determined by said CMI, when said CMI executing step has ended, wherein functionality of said state machine is adjusted without altering said second set of software codes. - View Dependent Claims (14, 15, 16, 17, 18)
providing, by said CMI, a mask which identifies state transitions at which said CMI is to be called.
-
-
16. The system of claim 13 wherein the program further comprises the steps of:
-
executing said CMI at another of said at least one determined states in said state machine program; and
providing a variable set of arguments associated with the execution of said CMI, wherein said step of executing said CMI at said at least one determined state and said step of executing said CMI at said another of said at least one determined states are performed using different sets of arguments.
-
-
17. The system of claim 13 wherein the program further comprises the step of:
providing, by said CMI, a plurality of subsets of code within said first set of software code, each of which subsets are associated with a different state of said state machine.
-
18. The system of claim 17 wherein the step of executing further comprises the step of:
running one of said subsets of said first set of software code that is associated with a state of said state machine indicated by said at least on step.
-
19. A system to allow a user to adjust the functionality of a computer program which operates as a state machine at run-time, the system comprising:
-
a computer; and
a computer program having at least one code module interface (CMI) plug-in module executable by the computer for causing the computer to perform the steps of;
registering said at least one plug-in module;
determining, based on said step of registering, at least one step within said computer program wherein said at least one plug-in module is to be executed;
executing said plug-in module when said computer reaches said step within said computer program; and
allowing said plug-in module to determine a re-entry step within said computer program for re-entering said computer program when said plug-in module executing step has ended. - View Dependent Claims (20, 21, 22, 23, 24)
providing, by said CMI, a mask which identifies state transitions at which said plug-in module is to be called.
-
-
22. The system of claim 19 wherein the computer program further comprises the steps of:
-
executing said plug-in module at another step in said computer program; and
providing a variable set of arguments associated with execution of said plug-in module, wherein said step of executing said plug-in module at said at least one step and said step of executing said plug-in module at said another step are performed using different sets of arguments.
-
-
23. The system of claim 19 wherein the computer program further comprises the step of:
providing, by said plug-in module, a plurality of sets of code, each of which are associated with a different state of said computer program.
-
24. The system of claim 23 where said step of executing further comprises the steps of:
running one of said sets of code that is associated with a state of said computer program indicated by said at least one step.
Specification