project structure: elm.py, db.py, prompts.py, diagnose.py, web UI (Flask), config
This commit is contained in:
+64
-1
@@ -92,4 +92,67 @@
|
||||
|
||||
---
|
||||
|
||||
*Продолжить: читать данные с ELM327 на ноутбуке по Bluetooth.*
|
||||
## Структура проекта (создана 2026-05-25)
|
||||
|
||||
```
|
||||
elmer/
|
||||
├── elmer/ # Python-пакет
|
||||
│ ├── __init__.py # версия 0.1.0
|
||||
│ ├── config.py # загрузка config.yaml + подстановка ${ENV}
|
||||
│ ├── elm.py # ELM327: pyserial, VIN, DTC, PID
|
||||
│ ├── db.py # SQLite: cars, tokens, llm_messages, ecu_parameters, dtc_codes
|
||||
│ ├── prompts.py # SYSTEM_PROMPT + build_user_prompt()
|
||||
│ └── diagnose.py # DeepSeek API (OpenAI-совместимый)
|
||||
├── config.yaml # настройки (BT-порт, API-ключ, PID'ы)
|
||||
├── requirements.txt # pyserial, pyyaml, requests
|
||||
├── run.py # главный вход: ELM → данные → LLM → печать + сохранение
|
||||
├── idea.md # исходная задумка
|
||||
└── analysis.md # этот файл
|
||||
```
|
||||
|
||||
## Запуск (в салоне авто)
|
||||
|
||||
```bash
|
||||
# 1. Установить зависимости
|
||||
pip install -r requirements.txt
|
||||
|
||||
# 2. Сопрячь ELM327 по Bluetooth
|
||||
bluetoothctl pair 11:22:33:44:55:66
|
||||
# (в config.yaml прописан порт /dev/rfcomm0)
|
||||
|
||||
# 3. Запустить
|
||||
DEEPSEEK_API_KEY=sk-... python run.py
|
||||
```
|
||||
|
||||
Что произойдёт:
|
||||
1. Подключится к ELM327
|
||||
2. Прочитает VIN
|
||||
3. Считает ошибки (stored mode 03 + pending mode 07)
|
||||
4. Считает параметры (обороты, температура, скорость, дроссель, MAP, IAT, топливные тримы)
|
||||
5. Отправит в DeepSeek → напечатает диагноз
|
||||
6. Сохранит всё в `elmer.db` (SQLite)
|
||||
|
||||
---
|
||||
|
||||
## Десктопный UI (Web)
|
||||
|
||||
Для тестирования на ноутбуке (не тыкать грязным пальцем в телефон):
|
||||
- `web/app.py` — Flask (порт 5005), один endpoint `/api/diagnose` (POST)
|
||||
- `web/templates/index.html` — одна кнопка, тёмная тема, результат
|
||||
- В будущем этот же код — прототип серверного API
|
||||
|
||||
Запуск:
|
||||
```bash
|
||||
DEEPSEEK_API_KEY=sk-... python web/app.py
|
||||
# Открыть http://localhost:5005
|
||||
```
|
||||
|
||||
## Версии для пользователей (будущее)
|
||||
|
||||
- **Android** — Kotlin/Java, Bluetooth SPP
|
||||
- **Windows** — тот же веб-интерфейс в WebView (или Electron, или просто браузер)
|
||||
- Общий серверный API между ними
|
||||
|
||||
---
|
||||
|
||||
*Продолжить: тестировать в салоне авто с реальным ELM327.*
|
||||
|
||||
Reference in New Issue
Block a user