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

2.9 KiB
Raw Blame History

Сессия 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 — форма ручного ввода для телефона