prop/lib/microwaveprop/pskr
Graham McIntire b924cc2fc2
feat(pskr): preserve full locator precision from MQTT spots
Spots that include subsquare (EM12kl), extended-square (EM12kl37),
or extended-extended-subsquare (EM12kl37ab) precision now keep
that resolution end-to-end. Previously we truncated everything to
4 chars at parse time, which collapsed distinct paths into the same
row whenever two spotters shared a field.

The aggregation key uses the full grid as reported, so two
spotters in different subsquares of `EM12` produce two rows —
correct, since they are physically different paths. Any spot that
fails Maidenhead validation (odd length, illegal char at position
N) is still dropped via the same error path.

Storage normalizes to uppercase so the unique index doesn't split
on case. Maidenhead.valid?/1 already accepts both cases on input.
2026-05-04 12:42:46 -05:00
..
aggregator.ex feat(pskr): ingest PSK Reporter MQTT firehose for weather correlation 2026-05-04 09:24:20 -05:00
client.ex fix(pskr): handshake on passive socket, switch to active after SUBSCRIBE 2026-05-04 10:39:43 -05:00
mqtt.ex refactor(pskr): drop emqtt, talk MQTT 3.1.1 over :gen_tcp directly 2026-05-04 09:52:34 -05:00
spot_hourly.ex feat(pskr): preserve full locator precision from MQTT spots 2026-05-04 12:42:46 -05:00