feat(mercury): синхронизировать часы очков с телефоном на подключении

RayNeoMercury.syncTime() шлёт текущее время телефона на очки. Вызываем
на событии Connected, чтобы очки получали корректную метку сразу после
подключения — это устраняет первопричину клина лог-спула (очки стартуют
с ~1970 до NTP, Loki отвергает batch с устаревшим таймстемпом, 400).
This commit is contained in:
2026-08-30 03:42:47 +03:00
parent 1aa389a3a0
commit 3af74851db
@@ -65,6 +65,10 @@ object MercuryBridge {
// Запрашиваем актуальный статус (яркость/WiFi/батарея), чтобы // Запрашиваем актуальный статус (яркость/WiFi/батарея), чтобы
// ползунок яркости и переключатель WiFi показывали реальные значения. // ползунок яркости и переключатель WiFi показывали реальные значения.
scope.launch { mercury?.pullGeneralStatus() } scope.launch { mercury?.pullGeneralStatus() }
// Синхронизируем часы очков с телефоном: до NTP очки стартуют с
// нулевой меткой (~1970), и логи получают «старые» таймстемпы,
// из-за чего Loki отвергает весь batch (HTTP 400) и спул клинит.
scope.launch { mercury?.syncTime() }
// Включаем heartbeat очков (каждые 3с они пингуют нас) — иначе // Включаем heartbeat очков (каждые 3с они пингуют нас) — иначе
// при гашении экрана очки рвут BLE-связь через ~3 секунды. // при гашении экрана очки рвут BLE-связь через ~3 секунды.
// Повторяем, пока очки не будут готовы (они переподключаются // Повторяем, пока очки не будут готовы (они переподключаются