mirror of
https://github.com/vicliu624/trail-mate.git
synced 2026-07-16 16:49:12 +00:00
* 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