mirror of
https://github.com/vicliu624/trail-mate.git
synced 2026-07-30 07:19:54 +00:00
This commit closes the PC-to-device app-data send path and wires team location semantics end to end across protocol, service, and UI. HostLink protocol and runtime: - Add CMD_TX_APP_DATA (0x15) frame type and CapTxAppData capability bit. - Implement command parsing for portnum/to/channel/flags/payload and validate payload bounds. - Add a pending command queue and process commands from AppContext::update() to keep IO task light and avoid direct service execution in the USB thread. - Route Team app portnums (300..304) to TeamController send paths, including Team mgmt wire decoding and plain/encrypted mgmt selection via flags. - Preserve generic mesh sendAppData fallback for non-Team app portnums. - Update hostlink protocol docs with CMD_TX_APP_DATA payload, flags, and Team source mapping/compat notes. Team service/controller send path: - Extend TeamController and TeamService send APIs with dest and want_ack parameters for mgmt/chat/position/waypoint/track. - Add explicit send error mapping for hostlink result reporting and improve last_send_error assignment on encode/encrypt/mesh failures. UI and data model for semantic location markers: - Add TeamLocationMarker icon enum helpers and integrate source->icon mapping in UI rendering. - Update team chat compose Position action to open a marker picker dialog with icon choices and cancel flow. - Encode selected marker in TeamChatLocation.source, auto-fill label, and send as TEAM_CHAT location payload. - Extend ChatMessage model with team_location_icon and geo fields so conversation and map can render marker semantics. - Show semantic icon in team conversation message bubble when location source is a known marker. - Add GPS map overlay for recent semantic team location markers with member/time labels and lifecycle cleanup. Assets and docs: - Add LVGL image assets for AreaCleared/BaseCamp/GoodFind/Rally/SOS markers and source PNGs. - Update TEAM/HostLink docs with source enum mapping and unknown-value fallback guidance for PC clients. Other platform-specific input adjustment: - Refine T-Deck LVGL encoder data reset path to avoid stale state interactions in the input callback.