From 90667cba52a926d4f8e0b0f4524a8b3d5fed32da Mon Sep 17 00:00:00 2001 From: bel Date: Tue, 12 Apr 2022 21:04:23 -0600 Subject: [PATCH] test doesnt spam keycodes --- poc/2-py-rps/buttons.py | 19 +++++++++++++++ poc/2-py-rps/state_to_buttons.py | 1 - poc/2-py-rps/test.sh | 42 ++++++++++++++++++-------------- 3 files changed, 43 insertions(+), 19 deletions(-) diff --git a/poc/2-py-rps/buttons.py b/poc/2-py-rps/buttons.py index 185668e..01811ea 100644 --- a/poc/2-py-rps/buttons.py +++ b/poc/2-py-rps/buttons.py @@ -26,11 +26,30 @@ def __init_keys__(): assert(_p.returncode == 0) stdout = _p.stdout result = [] + allowed = ["F"+str(i) for i in range(13, 25)] + unassigned = [] + # already assigned for line in stdout.split("\n".encode())[1:]: if line: words = line.split() key = int(words[1]) if len(words) < 4: + unassigned.append(key) + elif words[3].decode() in allowed: + allowed.remove(words[3].decode()) result.append(key) + # not assigned + for key in unassigned: + if not allowed: + break + word = allowed.pop() + if word: + assert(subprocess.run([ + "xmodmap", "-e", f"keycode {key} = {word}", + ]).returncode == 0) + result.append(key) + print("unassigned", unassigned) + print("allowed", allowed) + print("result", result) return result keys = __init_keys__() diff --git a/poc/2-py-rps/state_to_buttons.py b/poc/2-py-rps/state_to_buttons.py index 1eb9f09..7b13777 100644 --- a/poc/2-py-rps/state_to_buttons.py +++ b/poc/2-py-rps/state_to_buttons.py @@ -21,7 +21,6 @@ def main(): buckets[key][0] = False if line[0] == "/" else float(line.split()[-1]) for key in buckets: keyindex = buckets[key][1] - print("getting", keyindex, "of", len(buckets)) keycode = buttons.keys[keyindex] if buckets[key][0]: print(f"+{key}", end=" ") diff --git a/poc/2-py-rps/test.sh b/poc/2-py-rps/test.sh index f9ad58a..d6dd73c 100644 --- a/poc/2-py-rps/test.sh +++ b/poc/2-py-rps/test.sh @@ -16,21 +16,27 @@ trap cleanup EXIT python3 ./state_to_buttons.py & -python3 ./testdata/rand_0_n_weighted_stream.py \ - -n 6 \ - -b-min 1 \ - -b-max 10 \ - -d-min 100 \ - -d-max 3000 \ - -between 100 \ - -b-min 10 \ - -b-max 100 \ - -d-min 100 \ - -d-max 3000 \ - -between 10 \ - -w 3 \ -| peek \ -| python3 ./stream_to_state.py \ - -n 1 \ - -m .25 \ - -r .3 +( + python3 ./testdata/rand_0_n_weighted_stream.py \ + -n 6 \ + -b-min 1 \ + -b-max 10 \ + -d-min 100 \ + -d-max 3000 \ + -between 100 \ + -b-min 10 \ + -b-max 100 \ + -d-min 100 \ + -d-max 3000 \ + -between 10 \ + -w 3 \ + | peek \ + | python3 ./stream_to_state.py \ + -n 1 \ + -m .25 \ + -r .3 +) & + +while true; do + read -s var +done