tychovrahe/T3W1/devkit1_with_ble
tychovrahe 12 months ago
parent 51c0632942
commit 99a9006d85

@ -88,27 +88,31 @@ def connect() -> None:
click.echo("Connected")
@with_client
def disconnect_device(client: "TrezorClient") -> None:
"""Disconnect from device side."""
try:
ble.disconnect(client)
except exceptions.Cancelled:
click.echo("Disconnect aborted on device.")
except exceptions.TrezorException as e:
click.echo(f"Disconnect failed: {e}")
sys.exit(3)
@cli.command()
@click.option("--device", is_flag=True, help="Disconnect from device side.")
@with_client
def disconnect(client: "TrezorClient", device: bool) -> None:
def disconnect(device: bool) -> None:
if device:
ble.disconnect(client)
disconnect_device()
else:
"""Connect to the device via BLE."""
adapter = tealblue.TealBlue().find_adapter()
devices = lookup_device(adapter)
devices = [d for d in devices if d.connected]
ble_proxy = BleProxy()
devices = [d for d in ble_proxy.lookup() if d.connected]
if len(devices) == 0:
print("No device is connected")
for d in devices:
d.disconnect()
print(f"Device {d.name}, {d.address}, disconnected.")
click.echo("No BLE devices found")
return
ble_proxy.connect(devices[0].address)
ble_proxy.disconnect()
@cli.command()

@ -213,6 +213,19 @@ class BleAsync:
].acquire()
self.current = address
async def disconnect(self):
if self.current is None:
return
ble_device = self.devices[self.current]
if ble_device.connected:
LOG.info("Disconnecting from %s (%s)..." % (ble_device.name, ble_device.address))
await ble_device.disconnect()
else:
LOG.info("Disconnected from %s (%s)." % (ble_device.name, ble_device.address))
self.current = None
self.rx = None
self.tx = None
async def read(self):
assert self.tx is not None
await ready(self.tx)

Loading…
Cancel
Save