refactor: LoRaBoard trait with full associated types + BoardParts

- LoRaBoard trait now has associated types: RadioParts, CommParts, DisplayParts, DisplayDriver
- into_parts() is on the trait (enforced by compiler, not implicit convention)
- BoardParts<R, C, D> struct replaces tuple return from into_parts()
- mac_address() stays on trait, MAC also in BoardParts for convenience
- Removed mac field from DisplayParts (display task calls Board::mac_address())
- DisplayDriver associated type requires DrawTarget<Color = BinaryColor>
This commit is contained in:
swaits committed 2026-04-07 09:50:50 -06:00
1 parent ef2b574ae2
commit 4760615fc9
8 files changed
+134 -98

No files matched your search

+1 -1
View File
@@ -108,7 +108,7 @@ pub async fn display_task(
) {
// Format MAC address as "XX:XX:XX:XX:XX:XX"
let mut mac_str: heapless::String<18> = heapless::String::new();
let m = parts.mac;
let m = Board::mac_address();
let _ = core::fmt::Write::write_fmt(
&mut mac_str,
format_args!(