Files
elmer/doc/history/test-results-2026-06-28.md
T

2.3 KiB
Raw Blame History

Результаты тестирования протокола 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

Выводы

  1. Канонический протокол работает. Динамика 100% без drain_first — drain встроен в sendCommand.
  2. Проблема статики — хвост после инита. Нужен drain после hello-команд в RawRelayService.
  3. ElmActor + @Volatile + SQLite-очередь — без нареканий.
  4. Клон v1.5 стабилен на 6 PID с паузой 300мс.

Дальнейшие шаги

  1. Исправить drain после hello в RawRelayService (ATI/ATDPN/ATRV → drain)
  2. Длинный тест: 50+ циклов динамики
  3. Тест с заведённым двигателем (RPM > 0)
  4. При успехе — перенести фиксы в основное приложение (:app)
  5. Смержить opus-fixes в master