Skip to content

Commit bef4c85

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

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

smpmgr/common.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from smp.exceptions import SMPBadStartDelimiter
1212
from smpclient import SMPClient
1313
from smpclient.generics import SMPRequest, TEr1, TEr2, TRep
14+
from smpclient.transport.ble import SMPBLETransport
1415
from smpclient.transport.serial import SMPSerialTransport
1516

1617
logger = logging.getLogger(__name__)
@@ -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,12 @@ 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(f"Initializing SMPClient with the SMPBLETransport, {options.transport.ble=}")
55+
return smp_client_cls(
56+
SMPBLETransport(),
57+
options.transport.ble,
58+
)
5159
else:
5260
typer.echo(
5361
f"A transport option is required; "

smpmgr/main.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ 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(None, help="The Bluetooth address to connect to"),
5253
timeout: float = typer.Option(
5354
2.0, help="Transport timeout in seconds; how long to wait for requests"
5455
),
@@ -69,7 +70,7 @@ def options(
6970

7071
setup_logging(loglevel, logfile)
7172

72-
ctx.obj = Options(timeout=timeout, transport=TransportDefinition(port=port), mtu=mtu)
73+
ctx.obj = Options(timeout=timeout, transport=TransportDefinition(port=port, ble=ble), mtu=mtu)
7374
logger.info(ctx.obj)
7475

7576
if ctx.invoked_subcommand is None:

0 commit comments

Comments
 (0)