From 7372bcc2e237504be33006b31edccd075e65d28d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20J=C3=B6rdens?= Date: Thu, 8 Apr 2021 16:20:28 +0200 Subject: [PATCH 1/3] miniconf.py: add iir example --- miniconf.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/miniconf.py b/miniconf.py index 019ebcb..0901127 100644 --- a/miniconf.py +++ b/miniconf.py @@ -83,9 +83,12 @@ class Miniconf: def main(): parser = argparse.ArgumentParser( description='Miniconf command line interface.', - epilog='''Example: - %(prog)s -v -b mqtt dt/sinara/stabilizer afe/0 '"G10"' - ''') + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog='''Examples: +%(prog)s dt/sinara/stabilizer afe/0 '"G10"' +%(prog)s dt/sinara/stabilizer iir_ch/0/0 \ +'{"y_min": -32767, "y_max": 32767, "y_offset": 0, "ba": [1.0, 0, 0, 0, 0]}' +''') parser.add_argument('-v', '--verbose', action='count', default=0, help='Increase logging verbosity') parser.add_argument('--broker', '-b', default='mqtt', type=str, From a3511f522315ffbe287742bb826fb109cd55f72a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20J=C3=B6rdens?= Date: Thu, 8 Apr 2021 16:26:22 +0200 Subject: [PATCH 2/3] cli: print response directly --- miniconf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/miniconf.py b/miniconf.py index 0901127..d7fd615 100644 --- a/miniconf.py +++ b/miniconf.py @@ -111,7 +111,7 @@ def main(): async def configure_settings(): interface = await Miniconf.create(args.prefix, args.broker) response = await interface.command(args.path, json.loads(args.value)) - print(f"Response: {response}") + print(response) loop.run_until_complete(configure_settings()) From 7329d0f24151cb49d46fb5e81145c6c4bfeb5a71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20J=C3=B6rdens?= Date: Thu, 8 Apr 2021 17:11:44 +0200 Subject: [PATCH 3/3] cli,hitl: allow more settings per invokation, expand example --- hitl/run.sh | 4 +++- miniconf.py | 15 +++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/hitl/run.sh b/hitl/run.sh index a01a472..8fe9a3a 100755 --- a/hitl/run.sh +++ b/hitl/run.sh @@ -22,4 +22,6 @@ python3 -m pip install -r requirements.txt ping -c 5 -w 20 stabilizer-hitl # Test the MQTT interface. -python3 miniconf.py dt/sinara/stabilizer afe/0 '"G2"' +python3 miniconf.py dt/sinara/stabilizer afe/0='"G2"' +python3 miniconf.py dt/sinara/stabilizer afe/0='"G1"' iir_ch/0/0=\ +'{"y_min": -32767, "y_max": 32767, "y_offset": 0, "ba": [1.0, 0, 0, 0, 0]}' diff --git a/miniconf.py b/miniconf.py index d7fd615..b059f78 100644 --- a/miniconf.py +++ b/miniconf.py @@ -85,8 +85,7 @@ def main(): description='Miniconf command line interface.', formatter_class=argparse.RawDescriptionHelpFormatter, epilog='''Examples: -%(prog)s dt/sinara/stabilizer afe/0 '"G10"' -%(prog)s dt/sinara/stabilizer iir_ch/0/0 \ +%(prog)s dt/sinara/stabilizer afe/0='"G2"' iir_ch/0/0=\ '{"y_min": -32767, "y_max": 32767, "y_offset": 0, "ba": [1.0, 0, 0, 0, 0]}' ''') parser.add_argument('-v', '--verbose', action='count', default=0, @@ -95,10 +94,8 @@ def main(): help='The MQTT broker address') parser.add_argument('prefix', type=str, help='The MQTT topic prefix of the target') - parser.add_argument('path', type=str, - help='The setting path to configure') - parser.add_argument('value', type=str, - help='The value of setting in JSON format') + parser.add_argument('settings', metavar="KEY=VALUE", nargs='+', + help='JSON encoded values for settings path keys.') args = parser.parse_args() @@ -110,8 +107,10 @@ def main(): async def configure_settings(): interface = await Miniconf.create(args.prefix, args.broker) - response = await interface.command(args.path, json.loads(args.value)) - print(response) + for kv in args.settings: + path, value = kv.split("=", 1) + response = await interface.command(path, json.loads(value)) + print(response) loop.run_until_complete(configure_settings())