fix: improve metadata frame detection and update version to v0.12.1

This commit is contained in:
2026-04-15 01:42:13 -04:00
parent 3dd3c970ab
commit ad7b064b67
6 changed files with 91 additions and 17 deletions
+23
View File
@@ -4,6 +4,29 @@ All notable changes to seismo-relay are documented here.
---
## v0.12.1 — 2026-04-15
### Fixed
- **Metadata frame not detected when compliance fields are unconfigured** — the
5A bulk waveform stream contains one metadata frame carrying ASCII compliance
strings. The decoder skipped it only if `b"Project:"` appeared in the frame
payload. On devices where Project/Client/User Name/Seis Loc are all blank, the
device omits those label strings entirely, so the check returned False and the
frame was decoded as ADC waveform samples. The serial number bytes (`"BE11529\0"`)
appeared at sample ~929 followed by `0xFF 0xFF` fill, truncating the second half
of every waveform and producing a flat-line at 0 in/s after ~660 ms.
Fix: `_decode_a5_waveform` now checks a tuple of needles (`_METADATA_FRAME_NEEDLES`)
against the full frame bytes (`db`, not `db[7:]`): `b"Project:"`, `b"Client:"`,
`b"User Name:"`, `b"Seis Loc:"`, `b"Extended Notes"`, and `b"Geo: "`. The geo
threshold label is always present (monitoring cannot operate without a configured
geo trigger level) and is the reliable universal anchor. The same tuple is used
in `read_bulk_waveform_stream` for the `stop_after_metadata` early-exit path.
The log records which needle matched, aiding future diagnosis.
---
## v0.12.0 — 2026-04-13
### Added