• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Alan-Jowett / sonde
81%

Build:
DEFAULT BRANCH: main
Repo Added 18 Mar 2026 11:50PM UTC
Files 84
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • add-protocol-round-trip-tests-345
  • admin-confirm-destructive
  • admin-human-readable-timestamps
  • alanjo/556-app-data-handler-logging
  • ble-flow-control-tests
  • bpf-tagged-register-safety-tests
  • channel-persistence-558
  • chore/bump-version-0.3.0
  • ci-coverage-303
  • ci-coverage-conformance
  • ci/linux-admin-and-installer-tracking
  • ci/windows-gateway-build
  • ci/wokwi-boot-test
  • copilot/add-etw-tracing-gateway
  • copilot/add-i2c-wiring-guide
  • copilot/bump-version-to-020
  • copilot/reduce-logging-overhead
  • dependabot/cargo/esp32-nimble-85bfd1f
  • dependabot/cargo/uuid-1.23.0
  • dependabot/github_actions/actions/cache-5.0.4
  • docs/code-compliance-audits
  • docs/fix-ubpf-references
  • docs/modem-validation-gaps
  • docs/spec-first-contributor-guide
  • e2e-ble-onboarding-negative-tests
  • enable-aes-gcm-default
  • feat/343-gateway-validation-gaps
  • feat/344-ble-pairing-failover-tests
  • feat/app-bundle-format
  • feat/bundle-pin-mapping
  • feat/configurable-pins-490-clean
  • feat/lesc-fragmentation-tests
  • feat/pairing-aead
  • feat/pairing-rssi-diagnostic
  • feat/program-image-initial-data-481
  • feat/program-image-map-tests
  • feat/remove-hmac-legacy
  • feat/rust-tmp102-handler
  • feat/sonde-bundle-distribution
  • feat/switch-to-aead
  • feat/tmp102-handler
  • feature/etw-tracing
  • firmware-commit-id
  • fix-logging-test-compile
  • fix/323-ble-runtime-permissions
  • fix/347-protocol-validation-gaps
  • fix/350-node-security-validation-gaps
  • fix/351-bpf-validation-gaps
  • fix/355-node-protocol-robustness-tests
  • fix/360-modem-reset-ble-boundary-tests
  • fix/375-remove-redundant-command-type
  • fix/381-gateway-getrandom
  • fix/382-modem-pairing-timeout
  • fix/383-protocol-key-hint-cbor
  • fix/384-gateway-impl-gaps
  • fix/387-ble-tool-gaps
  • fix/452-wire-admin-rpcs
  • fix/453-ble-advertise-on-disconnect-race
  • fix/455-android-lesc-psk-migration-docs
  • fix/538-filter-sonde-elf-section
  • fix/544-accept-map-type-0
  • fix/551-shutdown-timeout
  • fix/552-timeout-constants
  • fix/605-admin-pipe-acl
  • fix/android-ble-bonding
  • fix/android-jni-classloader
  • fix/app-data-validation-gap
  • fix/ble-gap-device-name
  • fix/ble-indication-confirmation-pacing
  • fix/boot-test-regressions
  • fix/bpf-helpers-aead
  • fix/bpf-rodata-workaround
  • fix/bpf-trace-log-level-475
  • fix/build-metadata-464
  • fix/channel-persistence
  • fix/chunk-transfer-stale-frames
  • fix/chunked-transfer-session-468
  • fix/chunking-edge-cases-348
  • fix/ci-coverage-artifact-456
  • fix/ci-matrix-conditional
  • fix/duplicate-peer-request-465
  • fix/duplicate-test-name
  • fix/espnow-wifi-sta-mode-447
  • fix/firmware-commit-hash
  • fix/gateway-logging-459
  • fix/gateway-modem-reconnect
  • fix/handler-diagnostics
  • fix/handler-pending-commands-485
  • fix/handler-router-always-init
  • fix/i2c-debug-logging
  • fix/import-state-full-restore
  • fix/ingest-help-text-543
  • fix/installer-clr-config
  • fix/modem-logging-459
  • fix/modem-scan-error-logging-444
  • fix/node-ble-server-initiated-pairing
  • fix/node-logging-459
  • fix/node-program-install-logging-468
  • fix/node-rng-health-check-match-arm
  • fix/node-stack-size
  • fix/node-validation-gaps-354
  • fix/pair-logging-459
  • fix/pairing-button-early-bail
  • fix/pairing-validation-gaps-341
  • fix/post-aead-audit
  • fix/post-aead-cleanup
  • fix/prevail-global-maps
  • fix/program-image-initial-data
  • fix/reject-ephemeral-maps-473
  • fix/restore-android-manifest
  • fix/sonde-verifier-platform-474
  • fix/wake-retry-timing
  • gpio-sleep-hygiene
  • health-poll-reconnect
  • impl-495-e2e-aes-gcm
  • impl-495-gateway-aes-gcm
  • impl-495-modem-aes-gcm
  • impl-495-node-aes-gcm
  • impl-495-pair-aes-gcm
  • impl-495-protocol-aes-gcm
  • impl-589-590-handler-tests
  • impl-gw1306-remaining
  • impl-gw1307-error-observability
  • issue-334-bpf-helper-trust-boundary-tests
  • issue-346-error-path-tests
  • issue-352-handler-data-path-tests
  • issue-356-protocol-test-gaps
  • issue-357-behavioral-gaps
  • issue-358-ble-pairing-test-gaps
  • issue-496-build-type-log-levels
  • issue-530-verbose-verification-diag
  • issue-554-program-source-filename
  • key-store-test-coverage
  • main
  • modem-admin-handlers-310
  • node-negative-forward-compat-tests
  • revert-621-fix/605-admin-pipe-acl
  • security-validation-tests-353
  • t1005-export-key-leakage-test
  • test/modem-validation-gaps-339
  • update-deployment-sop-installers
  • upgrade-jni-0.22
  • v0.3.0

05 Apr 2026 01:34AM UTC coverage: 80.967% (-0.1%) from 81.107%
23996663343

push

github

web-flow
Replace `tmp102_handler.py` with Rust binary (#653)

* Replace 	mp102_handler.py with Rust binary

Convert the TMP102 gateway handler from a Python script requiring
python3 + cbor2 into a self-contained Rust executable
(\sonde-tmp102-handler\).  This eliminates the Python runtime
dependency on the target system.

The new crate lives at \crates/sonde-tmp102-handler/\ and is a
workspace member built alongside all other crates.  Behavior is
identical to the Python original:

- Reads length-prefixed CBOR \DATA\ messages from stdin
- Decodes 6-byte TMP102 temperature payloads
- Appends JSON Lines records to \	emperature_log.jsonl\
- Logs to stderr
- Replies with \DATA_REPLY\ on stdout

Includes 9 unit tests covering CBOR round-trip, TMP102 decoding
(valid, wrong-length, negative temps), hex encoding, EOF handling,
and the \map_get\ helper.

Also enforces the 1 MB message size limit per GW-0502 and avoids
u64-to-i64 overflow on \equest_id\ in DATA_REPLY.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix rustfmt formatting

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove accidentally committed data files

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Ignore handler data files

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Restore Python handler alongside Rust version

Keep both \	est-programs/tmp102_handler.py\ (readable protocol
example) and \sonde-tmp102-handler\ (zero-dependency Rust binary).
Update deployment SOP to document both options.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address review: use constants in DATA_REPLY, add build step to SOP

- Use \KEY_MSG_TYPE\, \KEY_REQUEST_ID\, and new \KEY_REPLY_DATA\
  constants in the DATA_REPLY construction instead of raw integers.
- Add explicit \cargo build -p sonde-tmp102-handler --release\ step
  to deployment SOP before handler registration.
- Document that \	emper... (continued)

192 of 280 new or added lines in 1 file covered. (68.57%)

20232 of 24988 relevant lines covered (80.97%)

144.62 hits per line

Relevant lines Covered
Build:
Build:
24988 RELEVANT LINES 20232 COVERED LINES
144.62 HITS PER LINE
Source Files on main
  • Tree
  • List 84
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
23996663343 main Replace `tmp102_handler.py` with Rust binary (#653) * Replace mp102_handler.py with Rust binary Convert the TMP102 gateway handler from a Python script requiring python3 + cbor2 into a self-contained Rust executable (\sonde-tmp102-handler\). T... push 05 Apr 2026 07:18AM UTC web-flow github
80.97
23992651696 feat/pairing-rssi-diagnostic Merge 4839141fe into 8ac54af0f Pull #644 05 Apr 2026 02:39AM UTC web-flow github
80.97
23992491607 feat/pairing-rssi-diagnostic Merge 2abb81680 into 8ac54af0f Pull #644 05 Apr 2026 02:28AM UTC web-flow github
80.97
23992351547 feat/pairing-rssi-diagnostic Merge 5881519be into 8ac54af0f Pull #644 05 Apr 2026 02:19AM UTC web-flow github
80.97
23992049163 feat/pairing-rssi-diagnostic Merge 076b2c590 into 8ac54af0f Pull #644 05 Apr 2026 02:00AM UTC web-flow github
80.97
23991861988 feat/pairing-rssi-diagnostic Merge b0fcfb816 into 8ac54af0f Pull #644 05 Apr 2026 01:47AM UTC web-flow github
80.98
23991722055 main Replace `tmp102_handler.py` with Rust binary (#653) * Replace mp102_handler.py with Rust binary Convert the TMP102 gateway handler from a Python script requiring python3 + cbor2 into a self-contained Rust executable (\sonde-tmp102-handler\). T... push 05 Apr 2026 01:41AM UTC web-flow github
80.97
23991696766 feat/rust-tmp102-handler Merge b886acf02 into 5e277d721 Pull #653 05 Apr 2026 01:35AM UTC web-flow github
80.97
23991483445 feat/rust-tmp102-handler Merge a5e86305a into 5e277d721 Pull #653 05 Apr 2026 01:20AM UTC web-flow github
80.94
23990551204 main Fix git submodules (#652) Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com> push 05 Apr 2026 12:18AM UTC web-flow github
81.11
See All Builds (826)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc