diff options
author | DennyTom <[email protected]> | 2020-04-07 04:13:17 -0700 |
---|---|---|
committer | GitHub <[email protected]> | 2020-04-07 21:13:17 +1000 |
commit | e409fb47f27f9cf56479928ed86eb2eb346eec54 (patch) | |
tree | f7b27bec198b7bb6250fbcf73111c189bc22d107 /users/dennytom/chording_engine/state_machine.dot | |
parent | ae74922d1485e3c8e120dbc141d003ed7696b1f9 (diff) | |
download | qmk_firmware-e409fb47f27f9cf56479928ed86eb2eb346eec54.tar.gz qmk_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.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 0000000000..431e6f69b6 --- /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 |