Note: StateBuddy will be updated from time to time, to fix bugs or add new features.
To make sure you have the latest version, in StateBuddy, use the shortcut Ctrl+Shift+R to refresh the page while clearing your browser cache.
+
StateBuddy was tested in Firefox 144.0 and Chromium 141.0.7390.107.
+
@@ -137,7 +140,7 @@ If you can solve the exercises, you will have a good (enough) understanding of t
When a transition fires: first, all the exit actions of all the exited states are executed (in order: child to parent), then the action of the transition itself, followed by the enter actions of the entered states (in order: parent to child)
- In this example, when firing the transition from A to F, first the exit actions of A, B, and C are executed, then the actions of the transition itself, and finally the enter actions of D, E and F (in that order).
+ In this example, when firing the transition from A to F, first the exit actions of A, B, and C are executed, then the actions of the transition itself, and finally the enter actions of D, E and F (in that order).
Any internal events that are raised (as a result of firing transitions), are added to the internal event (FIFO) queue.
@@ -151,9 +154,10 @@ If you can solve the exercises, you will have a good (enough) understanding of t
Example:
- Consider the linked Statechart.
+ Consider the linked Statechart.
After initialization, the current states are: OrthogonalState, A, C, E.
Then, the Statechart remains idle until it receives an input event. Suppose at time T=5s, the input event e is received. This triggers the execution of an RTC step.
The RTC step starts with a fair-step, where regions r1, r2 and r3 (in that order) are allowed to fire at most one transition each.
@@ -199,7 +203,7 @@ If you can solve the exercises, you will have a good (enough) understanding of t
Interfaces
You will implement the plant (= digital watch) controller as a Statechart. The controller only talks to the plant via input-events and output-events. In StateBuddy, you can also interactively raise input events directly into the controller statechart (Debugger UI). Finally, the plant also has its own UI, which sends input events to the plant.
To test your solution, initialize the execution, and interact with the plant UI. The execution can run in (scaled) real-time, with the ability to pause/resume.
@@ -359,8 +363,8 @@ meaning: "as long as the top-right button is pressed, the light should be on, an