Skip to content

Commit 46aaff9

Browse files
committed
Add BLE support
Signed-off-by: Tormod Volden <[email protected]>
1 parent 0f946b8 commit 46aaff9

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

smpmgr/common.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from smpclient import SMPClient
1313
from smpclient.generics import SMPRequest, TEr1, TEr2, TRep
1414
from smpclient.transport.serial import SMPSerialTransport
15+
from smpclient.transport.ble import SMPBLETransport
1516

1617
logger = logging.getLogger(__name__)
1718

@@ -24,6 +25,7 @@
2425
@dataclass(frozen=True)
2526
class TransportDefinition:
2627
port: str | None
28+
ble: str | None
2729

2830

2931
@dataclass(frozen=True)
@@ -48,6 +50,14 @@ def get_custom_smpclient(options: Options, smp_client_cls: Type[TSMPClient]) ->
4850
)
4951
else:
5052
return smp_client_cls(SMPSerialTransport(), options.transport.port)
53+
elif options.transport.ble is not None:
54+
logger.info(
55+
f"Initializing SMPClient with the SMPBLETransport, {options.transport.ble=}"
56+
)
57+
return smp_client_cls(
58+
SMPBLETransport(),
59+
options.transport.ble,
60+
)
5161
else:
5262
typer.echo(
5363
f"A transport option is required; "

smpmgr/main.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ def options(
4949
port: str = typer.Option(
5050
None, help="The serial port to connect to, e.g. COM1, /dev/ttyACM0, etc."
5151
),
52+
ble: str = typer.Option(
53+
None, help="The Bluetooth address to connect to"
54+
),
5255
timeout: float = typer.Option(
5356
2.0, help="Transport timeout in seconds; how long to wait for requests"
5457
),
@@ -69,7 +72,7 @@ def options(
6972

7073
setup_logging(loglevel, logfile)
7174

72-
ctx.obj = Options(timeout=timeout, transport=TransportDefinition(port=port), mtu=mtu)
75+
ctx.obj = Options(timeout=timeout, transport=TransportDefinition(port=port, ble=ble), mtu=mtu)
7376
logger.info(ctx.obj)
7477

7578
if ctx.invoked_subcommand is None:

0 commit comments

Comments
 (0)