feat!: migrate firmware to DongLoRa Protocol v2 wire format
Wire-incompatible break with the 0.x protocol. Every host-side path (UART, USB CDC, framing, radio dispatcher, display update channel) speaks the v2 wire format defined in PROTOCOL.md.
* Replace the host framing path with streaming FrameDecoder + encode_frame from donglora-protocol, matching the new (type_id, tag, payload) shape.
* Update src/channel.rs and src/host/{uart,usb,framing}.rs for the new frame semantics: per-request tag echo, CRC checked in the decoder, async ERR fan-out on tag 0.
* Rework src/radio.rs to emit RX / TX_DONE / OK / ERR messages in v2 shape, including RxOrigin, TxDonePayload, and SetConfigResult codes.
* Update src/protocol.rs glue to re-export v2 types from donglora-protocol and drop the legacy 0.x shim surface.
* Refresh PROTOCOL.md to the v2 normative spec (kept in sync with the donglora-protocol crate).
* Minor display and main-loop cleanups needed for the new radio event shape.
This commit is contained in:
11 files changed
+2950
-958
No files matched your search
@@ -47,6 +47,21 @@ pub trait LoRaBoard: Sized {
|
||||
/// Read the board's unique hardware address (MAC, device ID, etc.).
|
||||
fn mac_address() -> [u8; 6];
|
||||
|
||||
/// Radio chip identifier reported in `GET_INFO`. Defaults to SX1262
|
||||
/// (`0x0002`), matching every currently-supported board. Override for
|
||||
/// boards that carry a different chip (LLCC68, SX1261, LR11xx, …).
|
||||
fn radio_chip_id() -> u16 {
|
||||
// SX1262 — see PROTOCOL.md §8.
|
||||
0x0002
|
||||
}
|
||||
|
||||
/// (freq_min_hz, freq_max_hz) — the RF front-end's effective tuning
|
||||
/// window on this specific board. Reported in `GET_INFO`. Defaults
|
||||
/// to the SX1262's nominal 150–960 MHz range.
|
||||
fn freq_range_hz() -> (u32, u32) {
|
||||
(150_000_000, 960_000_000)
|
||||
}
|
||||
|
||||
/// Decompose initialized board into peripheral bundles for each task.
|
||||
fn into_parts(
|
||||
self,
|
||||
|
||||
Reference in new issue
Block a user