Commit Graph

29 Commits

Author SHA1 Message Date
liu weikai 25381c5c22 refactor: align board runtimes, GAT562 app shell, and BLE integrations
- migrate ESP board-specific implementations and runtime adapters into boards/*
- continue GAT562/Tab5/UI runtime alignment across app and board layers
- sync BLE and runtime integrations, and apply repository clang-format rules
2026-03-23 11:20:39 +08:00
liu weikai 9cf12df3e8 Refine mono UI GPS pages and board diagnostics 2026-03-20 02:07:55 +08:00
liu weikai 9ade3e9a85 feat(gat562): align nrf ui and meshtastic behavior 2026-03-19 23:04:42 +08:00
liu weikai 6edfd084f3 refactor(chat): align shared BLE cores and nrf meshtastic routing
- extract Meshtastic and MeshCore phone/business flows into shared core_chat BLE cores with owner hook seams for ESP and nRF backends

- replace nrf-specific lite adapters with board/platform adapters that consume shared cores and shared storage contracts

- extend nrf Meshtastic radio path with packet history dedupe, flooding rebroadcast, route discovery/traceroute responses, routing ACK/error handling, observed relay learning, retransmit queueing, and next-hop persistence

- persist nrf device identity and node metadata more explicitly, including next-hop state and node-id initialization support

- move nrf chat/contact/blob storage further toward InternalFS-backed persistence and update contact/node store behavior accordingly

- wire gat562 protocol/app facade pieces to the concrete nrf stores/adapters and add supporting app time-sync hooks used by platform runtimes

- add owner-hook split files and planning/status docs to document the ongoing alignment with the reference meshtastic-firmware multi-platform structure
2026-03-19 11:19:02 +08:00
liu weikai de975f54a3 feat(gat562): wire nrf52 board runtime and bluetooth stack 2026-03-18 19:28:31 +08:00
vicliu d320b6511d Unify PlatformIO and ESP-IDF around a shared UI/runtime shellRefactor/repo structure (#11)
* Unify PlatformIO and ESP-IDF around a shared UI/runtime shell
2026-03-12 01:17:46 +08:00
vicliu e429db9797 Feature ble (#10)
* Implement TDeck touch-friendly home grid and power management updates

* Add initial M5Stack Tab5 ESP-IDF environment and board skeleton

* BLE/Meshtastic: apply config at runtime and fix Admin/Telemetry for app compatibility

Meshtastic Admin set_* immediate responses:
- After set_channel: respond with get_channel_response (echo applied channel).
- After set_config: respond with get_config_response for the config type that was set.
- After set_module_config: respond with get_module_config_response after saveModuleConfig().
- After store_ui_config: respond with get_ui_config_response.
This prevents the Meshtastic app from marking these operations as failed when the device applied config but did not send a reply.

DeviceMetrics and Telemetry:
- Add buildDeviceMetrics() in meshtastic_ble (battery from board, uptime_seconds from millis).
- Set has_device_metrics and device_metrics in buildSelfNodeInfo() so the app receives battery and uptime for the local node.
- Give Telemetry module config explicit defaults in loadModuleConfig() (device_update_interval, device_telemetry_enabled, etc.) so get_module_config returns a valid structure.

Apply config at runtime (so BLE-written config takes effect):
- Add AppContext::applyPositionConfig() to push gps_interval_ms and gps_mode to GpsService (setCollectionInterval, setGnssConfig). Call it from BLE set_config when position config is written.
- Add screen_sleep.h with getScreenSleepTimeout() / setScreenSleepTimeout() declarations (implemented in main.cpp). BLE display, device_ui, and store_ui_config now call setScreenSleepTimeout() instead of writing Preferences only, so the in-memory screen timeout updates immediately without reboot.
- Settings UI includes screen_sleep.h and uses the same API.

Other:
- BLE topbar asset and icon when BLE is enabled (ble_topbar.png/c, ui_status, LV_Helper).
- Node store: PersistedNodeEntry and INodeStore gain hw_model; mt_adapter and contact_service pass/store it for Meshtastic app compatibility.
- Variant env tweaks (tlora_pager, tdeck). Event bus and minor cleanups.

* feat: align Meshtastic BLE/iOS flow and add T-Deck keyboard support

- add BLE pairing popup and align more Meshtastic admin/status behavior with iOS expectations
- complete BLE MQTT client proxy bridge and persist OK-to-MQTT / ignore-MQTT channel settings
- add native T-Deck I2C keyboard input, backlight control, and SPACE-to-menu behavior
- fix chat bubble wrapping, contact removal sync, and pager wake/menu regressions

* fix: restore lilygo_twatch_s3 build

- remove duplicate M5Tab5Board isGPSReady declaration
- exclude M5Tab5Board.cpp from T-Watch S3 source filters to avoid duplicate board singletons
- verified with pio run -e lilygo_twatch_s3
2026-03-06 21:01:35 +08:00
liu weikai 3b7355fea7 Add boot splash screen and update assets 2026-02-24 01:39:10 +08:00
liu weikai c948461269 feat(mesh): align MeshCore behavior and unify discovery UX
- complete MeshCore protocol alignment work across chat/team/hostlink paths

- refactor Contacts Discover into a mode-based action list for consistent UI behavior

- add MeshCore identity/crypto persistence plumbing and related protocol handlers

- document Meshtastic + MeshCore dual-compatibility in README (EN/CN)
2026-02-22 09:33:38 +08:00
liu weikai 72e51f23f8 docs: add Energy Sweep docs and release notes for 0.1.11-alpha 2026-02-21 11:15:25 +08:00
liu weikai a9e28c352a feat: add Energy Sweep app with region-based scan range 2026-02-21 10:57:17 +08:00
liu weikai 832a215e4a feat(team-hostlink): add semantic team location flow and HostLink CMD_TX_APP_DATA
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.
2026-02-18 00:41:51 +08:00
vicliu 4c16f765db map (#9)
* feat: maps
2026-02-17 11:40:19 +08:00
vicliu 3ed34fbbc6 Sstv (#8)
* feat: add SSTV docs and fix chat compose input
2026-02-12 16:23:01 +08:00
vicliu 27bc13c920 feat: sky plot (#7)
* feat: sky plot
2026-02-09 01:51:08 +08:00
liu weikai d64ff2080a docs: edit 2026-02-08 21:46:30 +08:00
vicliu b4a5055092 Feature aprs (#6)
* feat: PA adjust

* feat: topbar status icon

* fix: settings bug

* feat: unify UI theme and node info link stats

* Improve mesh handling, input back actions, and keyboard alt symbols

- add IRQ/NVS diagnostics for radio and persistence
- refresh link stats and adjust NodeInfo/Position reply handling
- handle Backspace to trigger page back actions
- make Alt act as symbol modifier and rename GPS menu to Map
* fix: hostlink
* style: format
2026-02-08 20:21:51 +08:00
vicliu 0e3e7800f8 Feature walkie talkie (#5)
* feat: walkie talkie
2026-02-06 15:59:33 +08:00
liu weikai 03afe5fc88 fix: settings 2026-02-04 19:12:41 +08:00
liu weikai 6fbcbce48c feat: team tracker 2026-02-04 11:06:53 +08:00
liu weikai 2a6e374ce8 chore: update ci formatting check and docs 2026-02-02 15:15:00 +08:00
vicliu 4d941c5ca6 fix: ui (#4)
* feat: join team

* fix: ui
2026-02-02 03:46:17 +08:00
liu weikai 2a91fc3aec fix: error node id 2026-01-29 11:19:15 +08:00
vicliu 796fbcc0b9 New env t deck (#3)
* feat: support t-deck plus
2026-01-28 01:57:53 +08:00
vicliu 48129b9cea Refactor UI lifecycle (#2)
* refactor: prepare UI lifecycle restructuring
2026-01-26 21:25:59 +08:00
vicliu e466060fbd Develop team (#1)
* draft

* Adjust IME candidate scrolling and space behavior

* Remove IME buffer label and update remaining counter

* Align Meshtastic handling and stabilize chat UI

- Align Meshtastic send/receive flow: add routing ACK decoding/log mapping, ack timeouts, channel tracking, and richer RX/TX diagnostics.

- Persist and manage PKI peer keys; add PKI backoff on NO_CHANNEL/UNKNOWN_PUBKEY and fall back to PSK when needed.

- Improve chat UI state handling: safer app switching with exit callbacks, active app clearing on menu return, and safer chat container cleanup.

- Fix Contacts → Compose parent selection to avoid UI tree mismatch; add broadcast compose support and refine action button behavior.

- Add UI debug logging for screen/parent validity and child counts to diagnose black-screen/stacking issues.

- Apply timezone offset helpers for display-time formatting and reuse in screenshot timestamps.

* Add changelog entry and time helpers
2026-01-21 04:36:27 +08:00
liu weikai ad6969fd58 docs: fix 2026-01-20 01:20:17 +08:00
liu weikai 04a4f91aed Update mesh protocol handling and settings 2026-01-20 01:11:51 +08:00
liu weikai fb668525d7 first commit 2026-01-18 21:25:18 +08:00