diff options
Diffstat (limited to 'users/dennytom/chording_engine/state_machine.dot')
| -rw-r--r-- | users/dennytom/chording_engine/state_machine.dot | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/users/dennytom/chording_engine/state_machine.dot b/users/dennytom/chording_engine/state_machine.dot new file mode 100644 index 000000000..431e6f69b --- /dev/null +++ b/users/dennytom/chording_engine/state_machine.dot | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | digraph { | ||
| 2 | IDLE | ||
| 3 | READY | ||
| 4 | ACTIVATED | ||
| 5 | DEACTIVATED | ||
| 6 | PRESS_FROM_ACTIVE | ||
| 7 | FINISHED_FROM_ACTIVE | ||
| 8 | IDLE_IN_DANCE | ||
| 9 | READY_IN_DANCE | ||
| 10 | FINISHED | ||
| 11 | LOCKED | ||
| 12 | READY_LOCKED | ||
| 13 | RESTART | ||
| 14 | IN_ONE_SHOT | ||
| 15 | |||
| 16 | // common | ||
| 17 | FINISHED -> RESTART; | ||
| 18 | RESTART -> IDLE; | ||
| 19 | DEACTIVATED -> IDLE_IN_DANCE; | ||
| 20 | |||
| 21 | // kill_one_shots() | ||
| 22 | IN_ONE_SHOT -> RESTART [label="non-one-shot key went through", color="blue"]; | ||
| 23 | |||
| 24 | // process_finished_dances() | ||
| 25 | ACTIVATED -> PRESS_FROM_ACTIVE [label="dance timer", color="green"]; | ||
| 26 | IDLE_IN_DANCE -> FINISHED [label="dance timer", color="green"]; | ||
| 27 | PRESS_FROM_ACTIVE -> FINISHED_FROM_ACTIVE [label="dance timer", color="green"]; | ||
| 28 | |||
| 29 | // remove_subchords() | ||
| 30 | READY -> IDLE [label="superchord active", color="red"]; | ||
| 31 | READY_IN_DANCE -> IDLE_IN_DANCE [label="superchord active", color="red"]; | ||
| 32 | READY_LOCKED -> LOCKED [label="superchord active", color="red"]; | ||
| 33 | |||
| 34 | // process_ready_chords() | ||
| 35 | LOCKED -> READY_LOCKED [label="all keys pressed", color="orange"]; | ||
| 36 | IDLE -> READY [label="all keys pressed", color="orange"]; | ||
| 37 | IDLE_IN_DANCE -> READY_IN_DANCE [label="all keys pressed", color="orange"]; | ||
| 38 | |||
| 39 | READY_LOCKED -> RESTART [label="chord timer", color="orange"]; | ||
| 40 | READY -> ACTIVATED [label="chord timer", color="orange"]; | ||
| 41 | READY_IN_DANCE -> ACTIVATED [label="chord timer", color="orange"]; | ||
| 42 | ACTIVATED -> PRESS_FROM_ACTIVE [label="lock next", color="orange"]; | ||
| 43 | PRESS_FROM_ACTIVE -> LOCKED [label="lock next", color="orange"]; | ||
| 44 | |||
| 45 | // deactivate_active_chords() | ||
| 46 | ACTIVATED -> DEACTIVATED [label="a key lifted", color="purple"]; | ||
| 47 | PRESS_FROM_ACTIVE -> RESTART [label="a key lifted", color="orange"]; | ||
| 48 | FINISHED_FROM_ACTIVE -> DEACTIVATED [label="a key lifted", color="orange"]; | ||
| 49 | } \ No newline at end of file | ||
