Files
elmer/doc/session-2025-05-25.md
T

56 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Сессия 2025-05-25 — первый выезд к Фаэтону
## Цель
Подключить ELM327 к ноутбуку (WSL/Windows) и запустить диагностику.
## Результаты
### Что сделано
- Установлен Python 3.12 в Windows (winget)
- Установлены зависимости: pyserial, pyyaml, requests (Windows Python)
- Установлен Flask в WSL (--break-system-packages)
- Проект скопирован в C:\Users\super\elmer для доступа из Windows
- ELM327 сопряжён с Windows (PIN 1234), созданы COM4/COM5 (Bluetooth SPP)
### Что НЕ работает
- **Windows Bluetooth SPP** — COM4/COM5 открываются, но виснут на serial.Serial().
Видимо, Windows не умеет нормально поднимать SPP-сессию к ELM327.
COM3 — это Intel AMT SOL, а не ELM327.
### Что работает
- **Android + ELM327** — OBD Amy подключается без проблем.
ELM327 живой, питание от OBD2 есть (красный горит).
- Сервер Flask на http://192.168.18.62:5005 (WSL)
### Исследование Android-клиента
- `MainActivity.kt` — готова: ищет спаренный ELM327, запускает сервис
- `ElmForwardService.kt` — готов на 80%:
- Bluetooth SPP → ELM327: ✅
- Инициализация AT-команд: ✅
- Чтение сырых ответов: ✅
- HTTP-forward на сервер: ✅
- Отправка OBD-команд (VIN/DTC/PID): ❌ (нужно дописать)
- `web/raw_endpoint.py` — буферизирует raw-данные, но не парсит
## Архитектура (план)
```
Телефон (Android) Ноутбук (WSL/Flask)
┌──────────────┐ ┌──────────────────┐
│ ElmForward │─HTTP──→ │ /api/v1/raw-obd │
│ Service │ │ ↓ │
│ ↓ BT SPP │ │ парсер + LLM │
│ ELM327 │ │ ↓ │
│ ↓ OBD2 │ │ диагноз │
│ ЭБУ (Фаэтон) │ └──────────────────┘
└──────────────┘
```
## Дальнейшие шаги
1. **Дописать ElmForwardService.kt** — отправка OBD-команд после init:
- VIN (0902)
- DTC stored (03), pending (07)
- PID'ы: 0105, 010C, 010D, 0111, 010B, 010F, 011F, 0104, 0106, 0107
2. **Дописать raw_endpoint.py** — парсинг ответов + вызов LLM
3. **Собрать APK** (нужен Android SDK)
4. **Дописать web/templates/index.html** — форма ручного ввода для телефона