Files
trail-mate/modules/ui_shared
liu weikai 69d80f26c3 Add NRF Fusion Pixel font and fix Meshtastic RX
Integrate Fusion Pixel 8px as the NRF mono UI font stack and switch the mono runtime to a dedicated MonoFont/TextRenderer path that can render ASCII, CJK, and symbols from one asset set.

Add the generated NRF font assets and generator script, including the compact font format with per-glyph advance support, and fix the BDF bitmap parsing bug that previously produced blank ASCII glyphs on device.

Move the LVGL Noto CJK font asset out of shared modules into the ESP-specific platform tree and update the related build/config references so the ESP-only font boundary is explicit and NRF does not compile the LVGL asset by accident.

Update the mono UI runtime to use the new renderer, normalize major menu and title labels to uppercase, and wire the GAT562 UI runtime to the Fusion Pixel font.

Fix the core mesh adapter router so Meshtastic and MeshCore backends can coexist without overwriting each other, and ensure active protocol selection is applied before mesh config changes are pushed into the runtime.

Improve GAT562 runtime diagnostics by mirroring debug output to both Serial and Serial2, logging startup radio configuration, and logging raw RX packets with RSSI/SNR so radio-path issues are visible during bring-up.

Relax SX1262 receive polling so it no longer hard-gates RX handling on DIO1 state alone, avoiding a failure mode where the board appeared alive but never delivered packets into the receive path.

Align the NRF Meshtastic adapter with the working ESP behavior for channel handling: use the default expanded public PSK for an unconfigured primary channel, compute channel hashes from the active preset name or Custom label instead of a hard-coded Primary string, and apply the same logic to self-announcement/NodeInfo packets.

Add protocol-layer Meshtastic RX diagnostics for parse, decrypt, decode, text queueing, app-data queueing, unknown-channel, and dedup events to make packet flow visible while validating interoperability.

Fix early duplicate handling for relayed packets so the first valid packet is still delivered into text processing while later relays are correctly suppressed, which restores Broadcast conversation creation and message visibility in the CHATS page.
2026-03-19 13:41:58 +08:00
..

ui_shared

Shared LVGL UI building blocks that are reused by multiple screens and should remain portable across ESP Arduino, ESP-IDF, and future Linux LVGL targets.

Current contents

  • ui/app_screen.h
  • ui/app_runtime.h
  • ui/formatters.h
  • ui/components/two_pane_nav.h
  • ui/components/two_pane_layout.h
  • ui/components/two_pane_styles.h
  • ui/screens/* shared screen implementations
  • ui/assets/* shared icons/fonts/images

These files are the current shared UI contracts, reusable screens, and shared UI assets that no longer belong to a single legacy src/ui/* subtree.

Current boundary notes:

  • ui/app_screen.h defines the shared screen contract used by menu/runtime code
  • ui/app_runtime.h owns shared app-switching, menu-return, focus-group, and generic LVGL menu helpers
  • ui/formatters.h owns pure UI formatting helpers that do not depend on board state or persistence
  • battery, timezone, screenshot, display glue, map tiles, and other board/product-specific UI helpers now live under platform/esp/arduino_common