docs: логика диагностики — два режима

This commit is contained in:
Repinoid
2026-07-05 20:45:29 +04:00
parent f79a1436d5
commit b9a33403fe
+85
View File
@@ -0,0 +1,85 @@
# Логика диагностики — два режима
## Архитектура
Три слоя:
1. **Relay (Android)** — тупой ретранслятор: получил команду → отправил в ELM → вернул ответ
2. **Script Engine (сервер)** — отправляет команды по расписанию, собирает ответы
3. **LLM (сервер)** — анализирует собранные данные
---
## Режим 1: Прогрев на месте (3 минуты)
**Цель**: снять показания на холостых, погазовать, оценить прогрев
**Скрипт**:
```
Каждые 2 секунды — 3 PID: 010C (RPM), 0105 (темп), 0111 (дроссель)
Итого: 90 циклов × 3 PID = 270 запросов
При 70% успехе: ~190 ответов (~63 на каждый PID)
```
**Метрики**:
- RPM: мин/макс/среднее на холостых, отклик на газ
- Температура: скорость прогрева (°C/мин), выход на рабочую
- Дроссель: положение на холостых, реакция на педаль
---
## Режим 2: В движении (5 минут)
**Цель**: нагрузочный тест, динамика разгона, поведение под нагрузкой
**Скрипт**:
```
Каждые 2 секунды — 3 PID: 010C (RPM), 0105 (темп), 0111 (дроссель)
Итого: 150 циклов × 3 PID = 450 запросов
При 70% успехе: ~315 ответов (~105 на каждый PID)
```
**Метрики**:
- RPM: разгон/торможение, переключение передач
- Температура: стабильность под нагрузкой
- Дроссель: соответствие нагрузке
---
## Обработка ошибок
| Ответ | Действие |
|-------|----------|
| `41xx...` (hex данные) | Сохранить, декодировать |
| `STOPPED` | Пропустить, relay сам восстановит |
| Пусто / таймаут | Пропустить, следующий запрос |
| 3 таймаута подряд | Пауза 2с (клон перегрелся) |
---
## Выходные данные для LLM
```json
{
"mode": "warmup",
"duration_s": 180,
"total_requests": 270,
"successful": 190,
"pids": {
"010C": {
"min": 680, "max": 3200, "avg": 1250,
"samples": [680, 720, 750, ...]
},
"0105": {
"start_temp": 25, "end_temp": 87,
"warmup_rate": 0.34,
"samples": [25, 27, 30, ...]
},
"0111": {
"min": 0, "max": 45,
"samples": [0, 0, 1.5, ...]
}
}
}
```
LLM получает: сырые данные + вопрос пользователя → ответ с диагнозом.