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