smpmgr
is a CLI application for interacting with device firmware over a
serial (UART or USB), Bluetooth (BLE), or UDP, connection. It can be used as a
reference implementation of the smp and
smpclient libraries when developing your own SMP
application.
The SMP specification can be found here.
You can download a portable executable for Windows or Linux from the latest releases page.
smpmgr
is also distributed by PyPI. If you already have a
Python environment setup, then it is strongly recommended to install smpmgr
with
pipx instead of pip
.
Assumes that you've already setup your development environment.
. ./envr.ps1
poetry install
when pulling in new changeslint
after making changestest
after making changesbuild
to build a portable executable bundle at dist/smpmgr-<git tag>
. Refer to portably.py
for details.poetry
:
poetry add <my_new_dependency>
poetry add -G dev <my_dev_dependency>
poetry install
The venv
should be installed to .venv
.
envr supports bash, zsh, and PS in Linux, MacOS, and Windows. If you are using an unsupported shell, you can activate the
.venv
environment manually, usepoetry run
andpoetry shell
, and refer toenvr-default
for useful aliases.
. ./envr.ps1
To verify the installation, make sure that all of the tests are passing using these envr aliases:
lint
test
The pre-commit hook will run the linters but not the unit tests.
git config core.hooksPath .githooks