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