1. A computer-implemented method for allowing an author to create instructional material displayed based on user actions, the method comprising:
displaying an authoring interface through which the author can select one or more elements to include in a workflow;
receiving a control selection for inclusion in the workflow;
receiving a sequence of workflow steps related to a set of actions the user can perform in the workflow;
receiving one or more triggering actions that a user can perform to determine the instructional material displayed to the user;
receiving an association between the received triggering actions and instructional content related to the actions; and
storing the workflow for subsequent display to a user,
wherein the preceding steps are performed by at least one processor.
2. The method of claim 1 wherein displaying the authoring interface further comprises providing a repository of controls from which the author can select.
3. The method of claim 1 wherein displaying the authoring interface further comprises providing a canvas on which the author can drag and drop controls and position the controls in a layout.
4. The method of claim 1 wherein receiving the control selection comprises receiving an indication that the author selected the control from a control toolbox and dragged the control onto a canvas associated with the workflow.
5. The method of claim 1 wherein receiving the sequence of workflow steps comprises receiving one or more decision points that affect which instructional material is displayed to the user.
6. The method of claim 1 wherein receiving one or more triggering actions comprises receiving a yes or no question that allows the user to provide a response and based on the response displaying different instructional material.
7. The method of claim 1 wherein receiving one or more triggering actions comprises receiving one or more environment conditions that affect the displayed instructional material.
8. The method of claim 1 wherein receiving an association comprises receiving a help article associated with each path of a decision, and at run time displaying the associated article in response to a selection of a decision path.
9. The method of claim 1 wherein storing the workflow comprises building an instructional application by combining the received control selections, workflow steps, triggering actions, and associated content into a module consumable by a runtime component to display the instructional material and respond to user actions.
10. A computer system for authoring and display of interactive, dynamic instructional information, the system comprising:
a processor and memory configured to execute software instructions;
an authoring environment configured to provide a user interface through which an author creates one or more workflows that provide content-relevant instructional material to users of a software application;
a trigger setup component configured to receive triggers from the author that cause displayed content to change based on user actions;
a runtime component configured to provide an executable module that can load and display authored workflows;
an application data store configured to store authored workflow applications;
an action detection component configured to detect one or more user actions as a user interacts with a running workflow application;
an environment detection component configured to detect one or more conditions of a computing environment in which the workflow executes and provides information to the workflow; and
a user interface component configured to provide an interface to a user during run time to display instructional information to the user and receive user actions that determine which instructional material to display.
11. The system of claim 10 wherein the authoring environment is further configured to extend an existing authoring environments to allow the environment to create workflows.
12. The system of claim 10 wherein the authoring environment is further configured to allow the author to select controls to include in a workflow project.
13. The system of claim 10 wherein the authoring environment is further configured to provide a facility for compiling or processing workflow parts to output a persistent storage format for the instructional application, wherein the persistent storage format can be read by the runtime component to display the instructional application to a user.
14. The system of claim 10 further comprising a template repository configured to store one or more controls, sample files, and templates for assisting an author with creating workflows.
15. The system of claim 10 wherein the trigger setup component is further configured to receive a trigger that, upon activation, causes a different informational article to be displayed to a user.
16. The system of claim 10 wherein the runtime component is further configured to consume a module output by a build process of the authoring environment, wherein the runtime component loads the module and displays at least some content associated with the module to the user.
17. The system of claim 10 wherein the action detection component is further configured to, upon detecting the user action, display instructional content based on a path associated with the detected action.
18. A computer-readable storage medium comprising instructions for controlling a computer system to display instructional material that changes based on user actions, wherein the instructions, upon execution, cause a processor to perform actions comprising:
receiving a help request that identifies an instructional application including one or more workflows that display associated instructional material;
invoking the identified instructional application;
detecting one or more properties of an environment in which the instructional application executes;
displaying help information in response to the received help request, wherein the displayed help information includes one or more choices that the user can make to refine the type of help information that the user receives;
detecting a user action within a workflow that identifies a particular path within the workflow; and
dynamically updating the displayed help information based on the detected user action to display more relevant help information.
19. The medium of claim 18 wherein invoking the identified instructional application comprises invoking a generic runtime executable and a specific workflow stored in a module readable by the runtime executable.
20. The medium of claim 18 wherein detecting the user action comprises identifying a decision point within a workflow and a user selection of a particular path associated with the decision point.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method controlling a synchronous signal, the method comprising acts of:
synchronizing an asynchronous control signal in response to the synchronous signal to form a synchronized control signal;
activating the synchronous signal in response to an edge of the asynchronous control signal; and
deactivating the synchronous signal in response to an edge of the synchronized control signal;
wherein the synchronous signal exhibits a frequency of oscillation that is great enough to allow the synchronous signal to complete at least one cycle during a time between consecutive edges of the asynchronous control signal.
2. The method of claim 1, wherein the at least one cycle includes at least two cycles.
3. The method of claim 1, wherein the asynchronous signal has a duty cycle that is not 50%.
4. The method of claim 1, wherein the asynchronous signal exhibits random oscillations at edges thereof.
5. The method of claim 1, wherein the synchronous signal is activated at substantially the same time as the edge of the asynchronous control signal.
6. The method of claim 1, wherein the synchronous signal remains active for a duration of two cycles of the synchronous signal after the occurrence of the edge of the synchronized control signal.
7. The method of claim 1, wherein the act of activating the synchronous signal in response to the edge of the asynchronous control signal includes providing a first logic gate having an input connected to receive an inversion of the asynchronous signal and an output to output a signal to activate the synchronous signal.
8. The method of claim 1, further comprising an act of:
generating an event signal in response to the edge of the synchronized control signal, the event signal having first and second edges, wherein a processor action is commenced in response to the first edge of the event signal and ceased in response to the second edge of the event signal.
9. The method of claim 8, wherein the act of deactivating the synchronous signal in response to the edge of the synchronized control signal occurs no sooner than the second edge of the event signal.
10. A circuit for controlling a synchronous signal, the circuit comprising:
a first circuit for synchronizing an asynchronous control signal in response to the synchronous signal to form a synchronized control signal; and
a second circuit for activating the synchronous signal in response to an edge of the asynchronous control signal and deactivating the synchronous signal in response to an edge of the synchronized control signal;
wherein the synchronous signal exhibits a frequency of oscillation that is great enough to allow the synchronous signal to complete at least one cycle during a time between consecutive edges of the asynchronous control signal.
11. The circuit of claim 10, wherein the first circuit comprises a synchronization register having a first input connected to receive the asynchronous control signal and an output to output the synchronized control signal.
12. The circuit of claim 11, wherein the synchronization register further comprises a second input connected to receive the synchronous signal.
13. The circuit of claim 10, wherein the second circuit comprises a synchronous setreset circuit.
14. The circuit of claim 10, wherein the first circuit comprises means for synchronizing the asynchronous control signal in response to the synchronous signal to form the synchronized control signal.
15. The circuit of claim 10, wherein the second circuit comprises means for activating the synchronous signal in response to the edge of the asynchronous control signal and deactivating the synchronous signal in response to the edge of the synchronized control signal.
16. The circuit of claim 15, wherein the second circuit further comprises means for generating an event signal in response to the edge of the synchronized control signal, the event signal having first and second edges, wherein a processor action is commenced in response to the first edge of the event signal and ceased in response to the second edge of the event signal.
17. The circuit of claim 16, wherein the second circuit is constructed and arranged such that the synchronous signal is deactivated no sooner than the second edge of the event signal.