From 3af74851db1c355b2e3930a00b421e0d2a3115dd Mon Sep 17 00:00:00 2001 From: subochev Date: Sun, 30 Aug 2026 03:42:47 +0300 Subject: [PATCH] =?UTF-8?q?feat(mercury):=20=D1=81=D0=B8=D0=BD=D1=85=D1=80?= =?UTF-8?q?=D0=BE=D0=BD=D0=B8=D0=B7=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D1=8C=20=D1=87=D0=B0=D1=81=D1=8B=20=D0=BE=D1=87=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2=20=D1=81=20=D1=82=D0=B5=D0=BB=D0=B5=D1=84=D0=BE=D0=BD?= =?UTF-8?q?=D0=BE=D0=BC=20=D0=BD=D0=B0=20=D0=BF=D0=BE=D0=B4=D0=BA=D0=BB?= =?UTF-8?q?=D1=8E=D1=87=D0=B5=D0=BD=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RayNeoMercury.syncTime() шлёт текущее время телефона на очки. Вызываем на событии Connected, чтобы очки получали корректную метку сразу после подключения — это устраняет первопричину клина лог-спула (очки стартуют с ~1970 до NTP, Loki отвергает batch с устаревшим таймстемпом, 400). --- .../src/main/kotlin/pw/binom/viewmate/phone/MercuryBridge.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app-phone/src/main/kotlin/pw/binom/viewmate/phone/MercuryBridge.kt b/app-phone/src/main/kotlin/pw/binom/viewmate/phone/MercuryBridge.kt index dcddd1c..4991df5 100644 --- a/app-phone/src/main/kotlin/pw/binom/viewmate/phone/MercuryBridge.kt +++ b/app-phone/src/main/kotlin/pw/binom/viewmate/phone/MercuryBridge.kt @@ -65,6 +65,10 @@ object MercuryBridge { // Запрашиваем актуальный статус (яркость/WiFi/батарея), чтобы // ползунок яркости и переключатель WiFi показывали реальные значения. scope.launch { mercury?.pullGeneralStatus() } + // Синхронизируем часы очков с телефоном: до NTP очки стартуют с + // нулевой меткой (~1970), и логи получают «старые» таймстемпы, + // из-за чего Loki отвергает весь batch (HTTP 400) и спул клинит. + scope.launch { mercury?.syncTime() } // Включаем heartbeat очков (каждые 3с они пингуют нас) — иначе // при гашении экрана очки рвут BLE-связь через ~3 секунды. // Повторяем, пока очки не будут готовы (они переподключаются