From 8006974fcc41ec4daa1075417d51d7d6873d39c3 Mon Sep 17 00:00:00 2001 From: Repinoid Date: Wed, 27 May 2026 10:29:56 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=B8=D1=82=D0=BE=D0=B3=D0=B8=20=D0=B4?= =?UTF-8?q?=D0=BD=D1=8F=20=E2=80=94=2019=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=BE=D0=B2,=20AndrOBD=20=D1=8D=D1=82=D0=B0=D0=BB=D0=BE?= =?UTF-8?q?=D0=BD,=20=D0=BF=D0=BB=D0=B0=D0=BD=20=D0=BF=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=B5=D0=BB=D0=BA=D0=B8=20ELM-=D1=81=D0=BB=D0=BE=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/session-2026-05-27.md | 51 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/doc/session-2026-05-27.md b/doc/session-2026-05-27.md index 8ecb8d7..aebf512 100644 --- a/doc/session-2026-05-27.md +++ b/doc/session-2026-05-27.md @@ -1,4 +1,4 @@ -# Сессия 2026-05-27 — домен obdai.ru и стратегия деплоя +# Сессия 2026-05-27 — домен obdai.ru, стратегия деплоя, исследование ELM/BT ## Домен @@ -52,3 +52,52 @@ obdai.ru (95.172.178.213) - Десктоп-диагностика (`POST /api/diagnose`, `ELM327.elm.py`) — требует Bluetooth на ноутбуке в машине - Локальный Flask для тестов — остаётся на ноутбуке разработчика + +--- + +## 11:00-15:00 — Исследование ELM327/BT: 19 проектов + +### Найдено и изучено + +| Тип | Кол-во | Лучший | +|-----|--------|--------| +| ELM→LLM проекты | 5 | OBD-Droid (Wal33D) | +| Традиционные OBD2 Android | 14 | **AndrOBD** (1993⭐) | + +### Ключевой результат: AndrOBD — золотой стандарт + +Изучен **сырой исходный код**. Выписаны все паттерны в `doc/elm-reference.md` (1100+ строк). + +**Критические находки, которых не было в нашем коде:** +1. `Thread.sleep(500)` после BT connect — без этого Android теряет данные +2. Fallback RFCOMM channel 1 через reflection (для китайских клонов) +3. Адаптивный таймаут: 200мс ± 4мс, диапазон 12-1000мс +4. ATST меняется на лету +5. Побайтовое чтение с паузой 1мс (не readLine!) +6. `>` — НЕ спецсигнал, а разделитель строк как CR/LF +7. Мульти-фрейм ISO-TP с префиксом длины +8. Полная обработка ошибок: SEARCHING, NO DATA, BUS ERROR, UNABLE, DATA ERROR +9. Инициализация: ATSP→ATAT→ATS0→ATL0→ATE0 (без ATZ при каждом подключении) + +### Созданные документы + +| Файл | Содержание | +|------|-----------| +| `doc/elm-reference.md` | 1100+ строк: паттерны 19 проектов + сырой код AndrOBD | +| `doc/competitors.md` | 7 конкурентов, русских 0 | +| `elmer/elm_proto.py` | ❌ Переусложнён (написан до изучения AndrOBD) | +| `tools/mock_elm327_v2.py` | ❌ Требует доработки под реальные паттерны | + +### План: переписать ELM-слой по AndrOBD + +**Шаг 1 — СЕЙЧАС:** Переписать `elmer/elm_proto.py` — эталонный Python-референс. +**Шаг 2 — ЗАВТРА:** Перенести в `ScriptRunnerService.kt` (Kotlin). +**Шаг 3:** Тест на Mock ELM327 v2. +**Шаг 4:** Выезд к Фаэтону. + +### Что НЕ делаем сейчас (приоритеты) + +| P0 | Стабильный ELM↔Android | 🔴 сейчас | +| P1 | ScriptRunner v2 + Mock v2 | 🟡 завтра | +| P2 | Трёхфазный флоу, жалобы водителя | 🟢 потом | +| P3 | LLM-промпты, cross-val, DTC-база | 🔵 потом |