aboutsummaryrefslogtreecommitdiffstats
path: root/users/dennytom/chording_engine/state_machine.dot
diff options
context:
space:
mode:
authorDennyTom <denemark.tomas@gmail.com>2020-04-07 04:13:17 -0700
committerGitHub <noreply@github.com>2020-04-07 21:13:17 +1000
commite409fb47f27f9cf56479928ed86eb2eb346eec54 (patch)
treef7b27bec198b7bb6250fbcf73111c189bc22d107 /users/dennytom/chording_engine/state_machine.dot
parentae74922d1485e3c8e120dbc141d003ed7696b1f9 (diff)
downloadfirmware-e409fb47f27f9cf56479928ed86eb2eb346eec54.tar.gz
firmware-e409fb47f27f9cf56479928ed86eb2eb346eec54.tar.bz2
firmware-e409fb47f27f9cf56479928ed86eb2eb346eec54.zip
DennyTom's buttery_engine (#8138)
* Selectively adding pieces * Adding georgi keymap * Adding more files, fixing make * Smaller makefiles * Fixing make rules * README more inline with QMK's guidelines * Turning off buggy assert * Improving documentation based on a user feedback. * Slightly better schema * Resurrected state machine diagram
Diffstat (limited to 'users/dennytom/chording_engine/state_machine.dot')
-rw-r--r--users/dennytom/chording_engine/state_machine.dot49
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 @@
+digraph {
+ IDLE
+ READY
+ ACTIVATED
+ DEACTIVATED
+ PRESS_FROM_ACTIVE
+ FINISHED_FROM_ACTIVE
+ IDLE_IN_DANCE
+ READY_IN_DANCE
+ FINISHED
+ LOCKED
+ READY_LOCKED
+ RESTART
+ IN_ONE_SHOT
+
+ // common
+ FINISHED -> RESTART;
+ RESTART -> IDLE;
+ DEACTIVATED -> IDLE_IN_DANCE;
+
+ // kill_one_shots()
+ IN_ONE_SHOT -> RESTART [label="non-one-shot key went through", color="blue"];
+
+ // process_finished_dances()
+ ACTIVATED -> PRESS_FROM_ACTIVE [label="dance timer", color="green"];
+ IDLE_IN_DANCE -> FINISHED [label="dance timer", color="green"];
+ PRESS_FROM_ACTIVE -> FINISHED_FROM_ACTIVE [label="dance timer", color="green"];
+
+ // remove_subchords()
+ READY -> IDLE [label="superchord active", color="red"];
+ READY_IN_DANCE -> IDLE_IN_DANCE [label="superchord active", color="red"];
+ READY_LOCKED -> LOCKED [label="superchord active", color="red"];
+
+ // process_ready_chords()
+ LOCKED -> READY_LOCKED [label="all keys pressed", color="orange"];
+ IDLE -> READY [label="all keys pressed", color="orange"];
+ IDLE_IN_DANCE -> READY_IN_DANCE [label="all keys pressed", color="orange"];
+
+ READY_LOCKED -> RESTART [label="chord timer", color="orange"];
+ READY -> ACTIVATED [label="chord timer", color="orange"];
+ READY_IN_DANCE -> ACTIVATED [label="chord timer", color="orange"];
+ ACTIVATED -> PRESS_FROM_ACTIVE [label="lock next", color="orange"];
+ PRESS_FROM_ACTIVE -> LOCKED [label="lock next", color="orange"];
+
+ // deactivate_active_chords()
+ ACTIVATED -> DEACTIVATED [label="a key lifted", color="purple"];
+ PRESS_FROM_ACTIVE -> RESTART [label="a key lifted", color="orange"];
+ FINISHED_FROM_ACTIVE -> DEACTIVATED [label="a key lifted", color="orange"];
+} \ No newline at end of file