From 534bb42c067f572b43a09a13aca7bc5b9ce97f93 Mon Sep 17 00:00:00 2001 From: bel Date: Tue, 12 Apr 2022 21:51:15 -0600 Subject: [PATCH] some buttons in FCEUX but prety flappy --- poc/2-py-rps/buttons.py | 21 ++++++++++++++++++--- poc/2-py-rps/state_to_buttons.py | 7 ++++--- poc/2-py-rps/test.sh | 1 + 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/poc/2-py-rps/buttons.py b/poc/2-py-rps/buttons.py index 01811ea..e7223e9 100644 --- a/poc/2-py-rps/buttons.py +++ b/poc/2-py-rps/buttons.py @@ -7,6 +7,7 @@ _display = Display(environ['DISPLAY']) def tap(keycode): down(keycode) + time.sleep(0.05) up(keycode) def down(keycode): @@ -25,7 +26,7 @@ def __init_keys__(): ) assert(_p.returncode == 0) stdout = _p.stdout - result = [] + result = {} allowed = ["F"+str(i) for i in range(13, 25)] unassigned = [] # already assigned @@ -37,7 +38,7 @@ def __init_keys__(): unassigned.append(key) elif words[3].decode() in allowed: allowed.remove(words[3].decode()) - result.append(key) + result[key] = words[3].decode() # not assigned for key in unassigned: if not allowed: @@ -47,9 +48,23 @@ def __init_keys__(): assert(subprocess.run([ "xmodmap", "-e", f"keycode {key} = {word}", ]).returncode == 0) - result.append(key) + result[key] = word print("unassigned", unassigned) print("allowed", allowed) print("result", result) return result keys = __init_keys__() + +if __name__ == "__main__": + import time + for key in keys: + print("key", key, "in...") + n = 2 + for i in range(n): + print(" ", n-i, "...") + time.sleep(1) + down(key) + time.sleep(0.1) + up(key) + print(" /key", key) + time.sleep(3) diff --git a/poc/2-py-rps/state_to_buttons.py b/poc/2-py-rps/state_to_buttons.py index 7b13777..39bd3ca 100644 --- a/poc/2-py-rps/state_to_buttons.py +++ b/poc/2-py-rps/state_to_buttons.py @@ -21,12 +21,13 @@ def main(): buckets[key][0] = False if line[0] == "/" else float(line.split()[-1]) for key in buckets: keyindex = buckets[key][1] - keycode = buttons.keys[keyindex] + keycode = list(sorted(buttons.keys.keys()))[keyindex] + keyname = buttons.keys[keycode] if buckets[key][0]: - print(f"+{key}", end=" ") + print(f"+{key}({keyname})", end=" ") buttons.down(keycode) else: - print(f"-{key}", end=" ") + print(f"-{key}({keyname})", end=" ") buttons.up(keycode) print() diff --git a/poc/2-py-rps/test.sh b/poc/2-py-rps/test.sh index d6dd73c..9837105 100644 --- a/poc/2-py-rps/test.sh +++ b/poc/2-py-rps/test.sh @@ -19,6 +19,7 @@ python3 ./state_to_buttons.py & ( python3 ./testdata/rand_0_n_weighted_stream.py \ -n 6 \ + -n 4 \ -b-min 1 \ -b-max 10 \ -d-min 100 \