docs: field test guide + update resume for v0.48.0
This commit is contained in:
+37
-22
@@ -8,7 +8,7 @@ elmAI — Android-приложение + Python-сервер для диагно
|
||||
|
||||
### Репозитории
|
||||
- Сервер: https://gitea.services.ngcloud.ru/Nail/elmer (ветка master)
|
||||
- Android: https://github.com/Repinoid/elmer-android (ветка master)
|
||||
- Android: https://github.com/Repinoid/elmer-android (ветка relay-only)
|
||||
- Сервер живёт на 5.172.178.213 (SSH: naeel@5.172.178.213, ключ ~/.ssh/naeel_vm_id_ed25519)
|
||||
|
||||
### Деплой
|
||||
@@ -29,35 +29,50 @@ ssh -i ~/.ssh/naeel_vm_id_ed25519 naeel@5.172.178.213 \
|
||||
```
|
||||
elmer/
|
||||
android/ — Android-приложение (Kotlin)
|
||||
app/src/.../elm/ — ElmProtocol.kt, ElmChecker.kt
|
||||
app/src/.../ui/ — MainActivity.kt
|
||||
.../client/
|
||||
MainActivity.kt — UI + приёмники
|
||||
ElmForwardService.kt — BT/TCP-реле
|
||||
TestService.kt — автономный тест ELM
|
||||
api/ — Flask API (Python)
|
||||
brain/ — LLM-клиент (Python)
|
||||
db.py — БД (sessions + device_profiles)
|
||||
routes.py — эндпоинты
|
||||
scripts.py — скрипты L0/L1/L2
|
||||
parser.py — парсинг ответов
|
||||
config.py, dtc.py, ping.py
|
||||
brain/ — LLM-клиент, промпты
|
||||
obd/ — ELM-протокол (Python)
|
||||
commands.py — каталог AT-команд
|
||||
classifier.py — классификация ответов
|
||||
connection.py — SerialTransport
|
||||
probe.py — пробинг ELM
|
||||
protocol.py — стейт-машина AndrOBD
|
||||
state.py — состояния/ответы
|
||||
timing.py — адаптивный таймаут
|
||||
doc/ — Документация, сессии
|
||||
web/ — Flask web, статика
|
||||
```
|
||||
|
||||
### Ключевые файлы
|
||||
- `android/app/build.gradle.kts` — versionName (менять при КАЖДОМ деплое)
|
||||
- `android/.../elm/ElmProtocol.kt` — стейт-машина AndrOBD (init, sendCommand)
|
||||
- `android/.../elm/ElmChecker.kt` — checkDevice, checkEcu, scanDtc
|
||||
- `android/.../ui/MainActivity.kt` — UI (~470 строк, надо разбить)
|
||||
### Что сделано (сессия 2026-06-07)
|
||||
|
||||
### Что уже исправлено (сессия 2026-06-06)
|
||||
- ELM v1.5 совместимость (init без ретраев, skip v2-команд)
|
||||
- Статус-строка: append вместо overwrite
|
||||
- BT-подключение: connect() идемпотентный
|
||||
- Все таймауты сокращены (2000-3000мс вместо 5000-10000мс)
|
||||
#### Сервер
|
||||
- **Пробинг ELM**: трехуровневый каскад (L0/L1/L2), профили в БД по MAC
|
||||
- **Fix init**: больше не шлём ATAT1/ATSTxx (вешало клоны)
|
||||
- **Скрипты под уровень**: L0 (5 PIDs), L1 (8 + VIN), L2 (14 + калибровки)
|
||||
- **Рефакторинг**: код разбит на независимые модули (commands, classifier, connection...)
|
||||
|
||||
#### Android
|
||||
- **Вывод**: append вместо overwrite (строки не перекрываются)
|
||||
- **Таймер**: отдельный TextView, тикает только во время обмена (Engine Time)
|
||||
- **TestService**: адаптивные таймауты, ATS0, \r терминатор
|
||||
|
||||
### Что НЕ сделано (TODO)
|
||||
- Разбить MainActivity.kt (~470 -> <=200 строк)
|
||||
- Разбить ElmChecker.kt (~270 -> <=200 строк)
|
||||
- Подробные комментарии перед функциями
|
||||
- Полевой тест на машине
|
||||
- Полевой тест на машине ← СЕЙЧАС
|
||||
- Разбить MainActivity.kt
|
||||
- Разбить ElmChecker.kt
|
||||
|
||||
### Важные правила
|
||||
- ELM327 v1.5 — фейк (клоны v1.0/v1.4), НЕ слать ATAT1/AT@1/AT@2/ATST
|
||||
- Все статусы через appendStatus("\n..."), не tvStatus.text =
|
||||
- Таймер инита макс 14 секунд (было 88)
|
||||
- Подробности: doc/session-2026-06-06.md
|
||||
- ELM327 v1.5 — фейк, НЕ слать ATAT1/AT@1/AT@2/ATST/ATCAF1/ATCFC1
|
||||
- Все статусы через append("\n..."), не tvStatus.text =
|
||||
- Таймер операций (opTimerStart/Stop), не сессии
|
||||
- Версию поднимать ВЕЗДЕ: build.gradle.kts, index.html (2 места), CHANGELOG.md, resume.txt, doc/architecture.md
|
||||
- В проекте elmer — НЕ спрашивать разрешения, делать сразу
|
||||
|
||||
Reference in New Issue
Block a user