35 lines
2.1 KiB
Markdown
35 lines
2.1 KiB
Markdown
# Итоги тестирования протокола ELM327 v1.5 — 28.06.2026
|
||
|
||
## Результаты
|
||
|
||
| Версия | Условия | Результат |
|
||
|--------|---------|-----------|
|
||
| v0.2.3 | Зажиг ON, двиг OFF, старый код | 12/12 (100%) один раз, потом нестабильно |
|
||
| v0.2.4 | Двиг OFF, с drain (сломан) | 1/20 |
|
||
| v0.2.4 | Двиг OFF, без drain | 9/12 (после чистки очереди) |
|
||
| v0.2.6 | Двиг ON (заведён), без info-команд | 8/12 (первые 4 — хвост инита, потом 8/8) |
|
||
| v0.2.6 | Двиг ON, после сброса ELM | 16/16 (100%) — но ELM залип на одном ответе |
|
||
|
||
## Что работает
|
||
|
||
- Канонический протокол (ATE0→ATL0→ATS0→ATI→detectClone→ATST96→ATSP0) — стабилен
|
||
- ElmActor (single-thread executor) — без нареканий
|
||
- SQLite command_queue с gunicorn -w 4 — работает
|
||
- Поллинг Android↔сервер — стабилен
|
||
- hello чистит очередь для device_id — новые сессии без мусора
|
||
- VERSION_NAME через val appVersionName — больше не хардкод
|
||
|
||
## Проблемы
|
||
|
||
1. **Клон v1.5 залипает** — после ~10 команд начинает повторять один ответ (`410405\n7F0112`).
|
||
Нужен сброс питания (вынуть из OBD) для восстановления.
|
||
2. **ATI/ATDPN/ATRV засоряют буфер** — убраны из relayLoop, но init() всё ещё делает ATI.
|
||
3. **Без заведённого двигателя ~50% ответов пустые** — ECU медленнее отвечает.
|
||
|
||
## Что дальше
|
||
|
||
1. Тест с паузами 2-3 сек между циклами — проверить, уходит ли залипание
|
||
2. Тест с меньшим числом PID в цикле (2-3 вместо 4)
|
||
3. После стабилизации — перенос фиксов в основное приложение (:app)
|
||
4. Смержить opus-fixes в master
|