From e4a41e87955994584375ea20718a6cc241e9e8c0 Mon Sep 17 00:00:00 2001 From: zvecr Date: Sun, 17 Jul 2022 02:58:14 +0100 Subject: [PATCH] Stub out python client routes --- data/templates/xap/client/python/routes.py.j2 | 9 +++ lib/python/qmk/cli/xap/generate_python.py | 2 +- lib/python/xap_client/client.py | 4 +- lib/python/xap_client/device.py | 3 +- lib/python/xap_client/routes.py | 58 +++++++++++++++++++ 5 files changed, 72 insertions(+), 4 deletions(-) create mode 100644 data/templates/xap/client/python/routes.py.j2 create mode 100644 lib/python/xap_client/routes.py diff --git a/data/templates/xap/client/python/routes.py.j2 b/data/templates/xap/client/python/routes.py.j2 new file mode 100644 index 00000000000..456d41f0984 --- /dev/null +++ b/data/templates/xap/client/python/routes.py.j2 @@ -0,0 +1,9 @@ +# TODO: assumption of only one level of children +{%- for id, route in xap.routes | dictsort %} +{%- if route.routes %} +# {{route.define}} +{%- for subid, subroute in route.routes | dictsort %} +{{route.define}}_{{subroute.define}} = b'\x{{ '%02d' % id|int(base=16) }}\x{{ '%02d' % subid|int(base=16) }}' +{%- endfor %} +{%- endif %} +{%- endfor %} \ No newline at end of file diff --git a/lib/python/qmk/cli/xap/generate_python.py b/lib/python/qmk/cli/xap/generate_python.py index 8dcf3b3eeca..c761f7d8247 100644 --- a/lib/python/qmk/cli/xap/generate_python.py +++ b/lib/python/qmk/cli/xap/generate_python.py @@ -13,7 +13,7 @@ def xap_generate_python(cli): defs = latest_xap_defs() parent = QMK_FIRMWARE / 'lib' / 'python' / 'xap_client' - for name in ['types.py']: + for name in ['types.py', 'routes.py']: lines = [GPL2_HEADER_SH_LIKE, GENERATED_HEADER_SH_LIKE] output = render_xap_output('client/python', f'{name}.j2', defs) diff --git a/lib/python/xap_client/client.py b/lib/python/xap_client/client.py index e3f032f4af9..6ab08a8e112 100644 --- a/lib/python/xap_client/client.py +++ b/lib/python/xap_client/client.py @@ -2,8 +2,6 @@ """ import hid -from .device import XAPDevice - class XAPClient: @staticmethod @@ -26,4 +24,6 @@ class XAPClient: def connect(self, dev): """Connect to a given XAP device """ + from .device import XAPDevice + return XAPDevice(dev) diff --git a/lib/python/xap_client/device.py b/lib/python/xap_client/device.py index 52d13db8a53..c1f3ada33f1 100644 --- a/lib/python/xap_client/device.py +++ b/lib/python/xap_client/device.py @@ -11,6 +11,7 @@ from collections import namedtuple from platform import platform from .types import XAPSecureStatus, XAPFlags, XAPRouteError +from .routes import XAP_VERSION_QUERY RequestPacket = namedtuple('RequestPacket', 'token length data') RequestStruct = Struct('