Python: the rb9704 command line, a fake modem, and the tests

rb9704 drives a 9704 on USB and the Cloudloop account behind it, moved
from WII6's host/rockblock with its project names taken out. rb9704-fake
speaks JSPR on a pty or a serial port: everything the library asks, MO in
segments with the CRC checked, MT, signal, provisioning, refusals and
failures on command.

The tests run against the fake at every level: the fake itself, the
command line, Ground Control's Python binding, the shell sample on
native_sim, and the sample on a board (test_zephyr.py, one suite through
two consoles). test_real.py makes free checks against a real modem.
This commit is contained in:
scottp committed 2026-10-09 12:48:16 +11:00
1 parent dbed9bbc88
commit 917522d1f4
12 files changed
+1861

No files matched your search

+29
View File
@@ -0,0 +1,29 @@
[build-system]
requires = ["setuptools>=64"]
build-backend = "setuptools.build_meta"
[project]
name = "rockblock9704-tools"
version = "0.1.0"
description = "Host tools for the RockBLOCK 9704: a command line for the modem and Cloudloop, and a fake modem for testing"
readme = "README.md"
license = { text = "MIT" }
requires-python = ">=3.10"
dependencies = ["pyserial>=3.5"]
[project.optional-dependencies]
# Ground Control's binding of the C library, for the verbs that use it.
# Pinned with the C library in ../west.yml (v1.0.1; 1.0.2 is the first
# Python release after it).
modem = ["rockblock9704==1.0.2"]
test = ["pytest>=7"]
[project.scripts]
rb9704 = "rb9704tools.cli:main"
rb9704-fake = "rb9704tools.fakemodem:main"
[tool.setuptools]
packages = ["rb9704tools"]
[tool.pytest.ini_options]
testpaths = ["tests"]