fix: improve metadata frame detection and update version to v0.12.1
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user