Files
elmer/doc/field-test-2026-06-07.md
T

145 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Полевой тест elmAI v0.48.0 — 7 июня 2026
## Что тестируем
APK: https://obdai.ru/elmer.apk (v0.48.0)
Сервер: https://obdai.ru
## Что сделано (все изменения)
### Пробинг ELM327 (НОВОЕ)
- Сервер больше не шлёт ATAT1/ATSTxx слепо — не вешает клоны
- При первом подключении нового ELM — каскадный тест:
- Уровень 0: ATE0 ATL0 ATS0 ATH1 ATSP0 ATDPN ATRV ATI (все клоны)
- Уровень 1: +ATAT1 (хорошие клоны)
- Уровень 2: +ATCAF1 ATCFC1 (настоящий ELM)
- Результат сохраняется в БД по BT MAC
- Нет в профиле → не слать. Никаких ретраев на неизвестное.
### Скрипты под уровень устройства
- L0: 5 PIDs + ошибки (однокадровые, без VIN)
- L1: 8 PIDs + VIN + stored/pending ошибки
- L2: 14 PIDs + VIN + калибровки + все ошибки
### Рефакторинг сервера
- `obd/commands.py` — каталог ВСЕХ AT-команд с метаданными
- `obd/classifier.py` — классификация ответов
- `obd/connection.py` — транспортный слой
- Код разбит на независимые модули
### Android: фикс вывода
- Статус: `append("\n...")` вместо `text =` (не перекрывается)
- Таймер: отдельный TextView, тикает только во время обмена (как Engine Time)
- TestService: адаптивные таймауты вместо жёстких sleep
- TestService: добавлен ATS0 в инициализацию
---
## Как тестировать
### Подготовка
1. Скачай и установи APK: https://obdai.ru/elmer.apk
2. Вставь ELM327 в OBD2-разъём машины
3. Заведи двигатель (для части PIDs нужен работающий двигатель)
4. Сопряги ELM327 с телефоном по Bluetooth (пароль 1234 или 0000)
5. Открой приложение Elmer
### Тест 1: Кнопка «ТЕСТ» (без сервера)
Поле ввода: **оставь пустым** (Bluetooth-режим)
Нажми **«🧪 ТЕСТ (всё локально)»**
Ожидаемое поведение:
```
══════════════════
🔧 ELMER TEST v0.6
Режим: Bluetooth
══════════════════
Найден: OBDII (AA:BB:CC:...)
⏳ Подключение...
✅ BT OK
─── ШАГ 1: Связь ───
→ ATZ ⏱ 2с
← ELM327 v1.5
✅ СВЯЗЬ ЕСТЬ!
─── ШАГ 2: Инициализация ───
→ ATE0 ⏱ 0с
← OK
→ ATL0 ⏱ 0с
← OK
→ ATS0 ⏱ 0с
← OK
→ ATH1 ⏱ 0с
← OK
→ ATSP0 ⏱ 1с
← OK
─── ШАГ 3: VIN ───
→ 0902 ⏱ 3с
← 49 02 01 57 56...
→ VIN: WVWZZZ...
─── ШАГ 4: Ошибки ───
→ 03 ⏱ 1с
← 43 00
→ DTC stored: none
→ 07 ⏱ 1с
← 47 00
→ DTC pending: none
─── ШАГ 5: Параметры ───
→ 0105 ⏱ 0с
← 41 05 5A
→ ОЖ: 50 °C
... (10 параметров)
✅ ТЕСТ ПРОЙДЕН!
```
**Что проверять:**
- [ ] Таймер ⏱ тикает ТОЛЬКО во время команд (АТZ, 0902, 0105...)
- [ ] В паузах между командами таймер пустой
- [ ] Строки НЕ перекрываются (каждая с новой строки)
- [ ] Тест НЕ виснет (раньше висел на ATAT1)
- [ ] Если ELM не отвечает — пишет «❌ ELM не отвечает» за ~5 секунд, не дольше
### Тест 2: Кнопка «Диагностировать» (с сервером)
Поле ввода: **оставь пустым** (Bluetooth-режим)
Нажми **«🚗 Диагностировать (сервер)»**
**Что проверять:**
- [ ] Статус: «BT: AA:BB:CC...» → «BT: OK»
- [ ] Появляются «← ...» (ответы ELM) и «→ ...» (команды от сервера)
- [ ] В конце — диагноз от LLM в рамке ══════
- [ ] Таймер тикает только когда «→ команда» отправляется
- [ ] Нет зависаний
### Тест 3: Если есть второй ELM327
Подключи другой ELM (другой клон/версия):
- [ ] Приложение находит его по имени (OBD/ELM в названии)
- [ ] Тест должен работать на любом клоне
- [ ] Профиль сохраняется в БД на сервере (по MAC)
---
## Возможные проблемы
| Симптом | Вероятная причина |
|---------|-------------------|
| «❌ ELM не отвечает» на ATZ | ELM не вставлен в OBD2 или нет питания |
| Долго висит на ATSP0 | Машина не поддерживает авто-протокол |
| VIN не читается | Старая машина без mode 09 |
| «❌ BT: ...» | ELM не сопряжён в настройках Bluetooth |
| Пустой экран после нажатия | Не даны разрешения Bluetooth (Android 12+) |
---
## После теста
Вернись к компу и скажи:
1. Какие ELM тестировал (версия, цвет, название)
2. Прошёл ли тест
3. Прошла ли диагностика с сервером
4. Были ли зависания
5. Скриншоты экрана (если можно)