From d4fa8a29e6a465f979007cfb28e830bc94a51da4 Mon Sep 17 00:00:00 2001 From: Piotr Dobrowolski Date: Wed, 23 Oct 2019 17:46:07 +0200 Subject: [PATCH] cli: cleanups --- cli.py | 62 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 47 insertions(+), 15 deletions(-) diff --git a/cli.py b/cli.py index c83cb17..5781226 100644 --- a/cli.py +++ b/cli.py @@ -1,5 +1,6 @@ import click +from py9b.link.base import LinkTimeoutException from py9b.transport.base import BaseTransport as BT from py9b.command.regio import ReadRegs @@ -19,7 +20,7 @@ class Connection: link = TCPLink() elif self.link == 'serial': from py9b.link.serial import SerialLink - link = SerialLink() + link = SerialLink(timeout=0.1) link.__enter__() @@ -53,9 +54,12 @@ class Connection: self._link.__exit__(a, b, c) @click.group() -@click.option('--transport', default='ninebot') -@click.option('--link', default='bleak') -@click.option('--address', default=None) +@click.option('--transport', default='ninebot', + help='Transport to use (one of xiaomi, ninebot)') +@click.option('--link', default='bleak', + help='Link implementation to use (one of serial, tcp, bleak)') +@click.option('--address', default=None, + help='Device address to use (dependent on link, defaults to automatic scan)') @click.pass_context def cli(ctx, transport, link, address): ctx.obj = Connection(transport, link, address) @@ -77,9 +81,10 @@ def sniff(ctx): while True: try: print(tran.recv()) + except LinkTimeoutException as exc: + pass except Exception as exc: print(exc) - pass @cli.command() @click.pass_context @@ -109,6 +114,23 @@ def reboot(ctx): tran.execute(WriteRegs(BT.ESC, 0x78, "