2.3 KiB
2.3 KiB
Результаты тестирования протокола ELM327 v1.5 — 28.06.2026
Конфигурация
- ELM327: клон v1.5, протокол A0 (CAN), 12.2V
- Приложение: ELM Relay v2 (v0.2.2-dev, пакет ru.elmer.raw)
- Протокол: канонический init (ATE0→ATL0→ATS0→ATI→detectClone→ATST96→ATSP0)
- ECU: зажигание ON, двигатель OFF
Результаты
Статика (6 PID по одному, пауза 1с)
- 2/6 успешно (33%)
- Сбои: хвост "12.3V" от ATRV после инита, STOPPED, таймауты
- Причина: после init() и hello-команд (ATI, ATDPN, ATRV) в буфере остаются хвосты
Динамика (3 цикла × 4 PID, пауза 300мс)
- 12/12 = 100% успешно ✅
- RPM: 286-506ms, стабильно
- Дроссель: 294-402ms, стабильно
- ОЖ: 326-506ms, стабильно
- Нагрузка: 294-340ms, стабильно
Сравнение с предыдущими тестами (14 июня)
| Дата | Протокол | Динамика |
|---|---|---|
| 14.06 (до фиксов) | AndrOBD init, нет drain, ATAT1 | 0/8 (0%) |
| 14.06 (с drain) | drain_first=true | 8/8 (100%)* |
| 14.06 (без drain) | — | 0/8 (0%) |
| 28.06 (канон) | новый init, ElmActor, SQLite | 12/12 (100%) |
*нестабильно — в повторных тестах 3/12
Выводы
- Канонический протокол работает. Динамика 100% без drain_first — drain встроен в sendCommand.
- Проблема статики — хвост после инита. Нужен drain после hello-команд в RawRelayService.
- ElmActor + @Volatile + SQLite-очередь — без нареканий.
- Клон v1.5 стабилен на 6 PID с паузой 300мс.
Дальнейшие шаги
- Исправить drain после hello в RawRelayService (ATI/ATDPN/ATRV → drain)
- Длинный тест: 50+ циклов динамики
- Тест с заведённым двигателем (RPM > 0)
- При успехе — перенести фиксы в основное приложение (:app)
- Смержить opus-fixes в master