bump v0.94.0-dev, docs: история speed-test
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
||||
# elmAI — Changelog / Полное описание проекта
|
||||
|
||||
> Файл для нового агента: прочитай — и ты в курсе всего.
|
||||
> Актуально: v0.93.0-dev, 10 июня 2026
|
||||
> Актуально: v0.94.0-dev, 10 июня 2026
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# 2026-06-10 — Speed-test ELM327, адаптивный интервал, деплой v0.93.0-dev
|
||||
# 2026-06-10 — Speed-test ELM327, адаптивный интервал, валидация, деплой v0.94.0-dev
|
||||
|
||||
## Проблема
|
||||
|
||||
@@ -139,3 +139,69 @@ interval = max(250, avg_response_time × num_pids × 1.5)
|
||||
| `android/.../DynamicCollector.kt` | intervalMs параметр (уже есть) |
|
||||
| `android/app/build.gradle.kts` | versionName = "0.93.0-dev" |
|
||||
| `web/templates/index.html` | v0.93.0-dev |
|
||||
|
||||
---
|
||||
|
||||
## 3. Валидация speed-test (v0.94.0-dev)
|
||||
|
||||
### Проблема
|
||||
Если ELM327 плохо вставлен в OBD-разъём (контакт болтается), замеры скорости — мусор: часть команд падает с `(err)`, время прыгает от 10ms до 900ms. Сохранять такой профиль нельзя.
|
||||
|
||||
### Решение
|
||||
`ElmChecker.kt` — `measureResponseTime()` возвращает `SpeedTestResult`:
|
||||
|
||||
```kotlin
|
||||
data class SpeedTestResult(
|
||||
val perPidAvg: List<Int>,
|
||||
val batchTime: Int,
|
||||
val reliable: Boolean,
|
||||
val message: String
|
||||
)
|
||||
```
|
||||
|
||||
**Критерии отбраковки (reliable=false):**
|
||||
1. Любой замер отклоняется от среднего по своему PID >50%
|
||||
2. Любая команда вернула `(err)` или пустой ответ
|
||||
3. Все замеры <20ms (ELM не отвечает, мусор)
|
||||
|
||||
При `reliable=false` — профиль **не сохраняется**, интервал 250ms по умолчанию.
|
||||
|
||||
### Quick-check при каждом connect
|
||||
`ElmChecker.kt` — добавлен `quickCheck(): Int?`:
|
||||
|
||||
```
|
||||
При каждом клике на светофор ELM:
|
||||
1. Загрузить профиль с сервера
|
||||
2. Послать 010C (RPM), замерить время
|
||||
3. Сравнить с профилем:
|
||||
- расхождение <50% → "✅ ELM стабилен: ~85ms (профиль 256ms)"
|
||||
- расхождение >50% → "⚠️ Скорость ELM изменилась: было 256ms, сейчас ~510ms"
|
||||
4. Если профиля нет → полный speed-test (3 PID × 3 раза)
|
||||
```
|
||||
|
||||
### Принудительный перетест
|
||||
Клик на 🔵 ELM → переинициализация → quick-check. Если нужно полностью перемерить — очистить `response_time_ms` в `device_profiles` на сервере.
|
||||
|
||||
---
|
||||
|
||||
## Итоговая логика
|
||||
|
||||
| Ситуация | При connect | При СТАРТ |
|
||||
|----------|------------|-----------|
|
||||
| Новый ELM (нет профиля) | Полный speed-test 3 PID × 3 → сохранить | Интервал из профиля |
|
||||
| Знакомый ELM, контакт ок | Quick-check: "стабилен" | Интервал из профиля |
|
||||
| Знакомый ELM, контакт плохой | Quick-check: "изменилась" | Интервал 250ms (дефолт) |
|
||||
| После переподключения | Quick-check → сверка | Интервал из профиля если ок |
|
||||
|
||||
## Файлы (v0.94.0-dev)
|
||||
|
||||
| Файл | Что изменено |
|
||||
|------|-------------|
|
||||
| `android/.../ElmChecker.kt` | `SpeedTestResult`, `quickCheck()`, валидация |
|
||||
| `android/.../MainActivity.kt` | Speed-test при инициализации, quick-check |
|
||||
| `android/.../ServerClient.kt` | `getProfileResponseTime()`, `saveProfile()` |
|
||||
| `api/db.py` | `response_time_ms` колонка, threading lock |
|
||||
| `api/routes.py` | `PUT /api/v1/elm/profile/<mac>` |
|
||||
| `android/app/build.gradle.kts` | versionName = "0.94.0-dev" |
|
||||
| `web/templates/index.html` | v0.94.0-dev |
|
||||
| `doc/history/2026-06-10.md` | Этот файл |
|
||||
|
||||
@@ -13,14 +13,14 @@
|
||||
<img src="/static/logo.png" alt="elmAI" style="width:96px;height:96px;border-radius:20px;margin-bottom:10px;">
|
||||
<h1>elmAI</h1>
|
||||
<p class="subtitle">Диагностика авто через ELM327 + ИИ</p>
|
||||
<p class="subtitle" style="font-size:12px;opacity:0.7;">v0.93.0-dev — 7 июня 2026</p>
|
||||
<p class="subtitle" style="font-size:12px;opacity:0.7;">v0.94.0-dev — 7 июня 2026</p>
|
||||
|
||||
<div class="card" style="text-align:center;margin-bottom:20px;">
|
||||
<p style="margin:0 0 10px 0;">📱 Скачай приложение на телефон:</p>
|
||||
<a href="/static/app-debug.apk" style="color:#ff6b35;font-size:18px;font-weight:bold;text-decoration:none;">
|
||||
⬇️ Скачать elmAI APK
|
||||
</a>
|
||||
<p style="font-size:11px;opacity:0.6;margin:4px 0 0 0;">v0.93.0-dev • нажмите чтобы скачать</p>
|
||||
<p style="font-size:11px;opacity:0.6;margin:4px 0 0 0;">v0.94.0-dev • нажмите чтобы скачать</p>
|
||||
</div>
|
||||
|
||||
<!-- Кнопка десктоп-диагностики скрыта — только для разработчика с прямым ELM327 -->
|
||||
|
||||
Reference in New Issue
Block a user