docs: итоги дня — 19 проектов, AndrOBD эталон, план переделки ELM-слоя

This commit is contained in:
Repinoid
2026-05-27 10:29:56 +03:00
parent f95b3fd9f2
commit 8006974fcc
+50 -1
View File
@@ -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-база | 🔵 потом |