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

5.9 KiB
Raw Blame History

Полевой тест 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. Скриншоты экрана (если можно)