This commit is contained in:
+3
-3
@@ -47,7 +47,7 @@ Sender state machine invariants must remain behavior-equivalent:
|
||||
- frame format: `[msg_kind][short_id_be][payload][crc16_ccitt]`.
|
||||
- reject invalid CRC/msg-kind/length.
|
||||
- Payload codec:
|
||||
- schema `3` with `present_mask` (30-bit sparse second map).
|
||||
- schema `4` with `present_mask` (30-bit sparse second map).
|
||||
- support `n==0` sync-request packets.
|
||||
- Time bootstrap guardrail:
|
||||
- sender must not run normal sampling/transmit until valid ACK time received.
|
||||
@@ -221,7 +221,7 @@ Sender state machine invariants must remain behavior-equivalent:
|
||||
## `lib/dd3_legacy_core/src/payload_codec.cpp`
|
||||
|
||||
- `bool encode_batch(const BatchInput&, uint8_t*, size_t, size_t*)`
|
||||
- schema v3 encoder with metadata, sparse present mask, delta coding.
|
||||
- schema v4 encoder with metadata, sparse present mask, delta coding.
|
||||
- `bool decode_batch(const uint8_t*, size_t, BatchInput*)`
|
||||
- strict schema/magic/flags decode + bounds checks.
|
||||
- Varint primitives:
|
||||
@@ -475,7 +475,7 @@ Current core orchestration requirements:
|
||||
## 6. Rust Porting Constraints and Recommendations
|
||||
|
||||
- Preserve wire compatibility first:
|
||||
- LoRa frame byte layout, CRC16, ACK format, payload schema v3.
|
||||
- LoRa frame byte layout, CRC16, ACK format, payload schema v4.
|
||||
- sender optimization changes must not alter payload field meanings.
|
||||
- Preserve persistent storage keys:
|
||||
- Preferences keys (`ssid`, `pass`, `mqhost`, `mqport`, `mquser`, `mqpass`, `ntp1`, `ntp2`, `webuser`, `webpass`, `valid`).
|
||||
|
||||
Reference in New Issue
Block a user