Files
elmer/doc/morda-v2.md
T

114 lines
6.0 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.
# Новая морда elmAI — v0.57.0+
> Проект из morda.txt, обсуждение 7 июня 2026
## Макет
```
┌─────────────────────────────────────┐
│ 🔧 elmAI v0.57.0 │
│ [📡●] [🔌●] [🚗●] [🧠●] │ иконки + светофоры (тап = перепроверка)
├─────────────────────────────────────┤
│ [ ОШИБКИ / ДИАГНОСТИКА / СТАРТ / СТОП ] │ одна кнопка-трансформер
├─────────────────────────────────────┤
│ │
│ поле вывода │ ScrollView
│ │
├─────────────────────────────────────┤
│ [📋 История] │ кнопка
├─────────────────────────────────────┤
│ [________________________] [➤] │ поле ввода 2 строки + кнопка
└─────────────────────────────────────┘
```
## Светофоры
| Иконка | Текст | Зелёный | Жёлтый | Красный |
|--------|-------|---------|--------|---------|
| 📡 | Сервер | ping < 3с | проверка... | нет связи |
| 🔌 | ELM | BT + ATI ok | подключение... | нет ELM |
| 🚗 | ЭБУ | 0100 ok | — | нет связи с ЭБУ |
| 🧠 | LLM | ping-llm ok | проверка... | нет доступа |
- Жёлтый только во время проверки
- Тап по иконке → перепроверка конкретного компонента
- LLM проверяется только если Сервер зелёный
### Таймауты
- ELM: 2 попытки connect по 4с = 8с макс → красный
- Сервер: HTTP GET /api/v1/ping, таймаут 3с → красный
- LLM: HTTP GET /api/v1/ping-llm, таймаут 5с → красный
- Перепроверка при тапе: сбрасывает на жёлтый, запускает проверку
## Кнопка-трансформер
Одна кнопка, меняет текст/цвет/действие:
```
[ОШИБКИ] ──→ сканирование DTC ──→ [ДИАГНОСТИКА]
если сервер ✅ → обычный скрипт + LLM
если сервер ❌ → пояснение в выводе
[СТАРТ]
газ 3000 → сброс → [СТОП]
данные в памяти → жми ➤
```
## Поле ввода + кнопка ➤
- Всегда активно, 2 строки
- **Обычный режим**: ввёл текст → ➤ → отправка в чат с LLM
- **После СТОП**: ➤ отправляет накопленные данные теста на сервер + текст (если есть)
- После отправки → результат LLM в выводе
## История
- Кнопка, как сейчас
- Выбор записи → диагноз + 📤 Поделиться
- После Share — возврат в приложение (стандартное поведение Android)
## Flow в деталях
### 1. Запуск приложения
- Светофоры: ELM жёлтый, Сервер жёлтый, ЭБУ красный, LLM красный
- Проверка ELM (8с) → зелёный/красный
- Проверка Сервера (3с) → зелёный/красный
- Если Сервер зелёный → проверка LLM (5с) → зелёный/красный
- Если ELM зелёный → проверка ЭБУ (через 0100)
### 2. Ошибки
- Тап ОШИБКИ → scanDtc() → результат в выводе
- Кнопка → ДИАГНОСТИКА
### 3. Диагностика
- Если сервер зелёный → обычный скрипт L0/L1/L2 → LLM → вывод
- Если сервер красный → «Сервер недоступен. Сделайте тест на месте.»
- Кнопка → СТАРТ
### 4. СТАРТ
- Подсказка в выводе: «Нажмите газ, 3000 об/мин 3-4с, сбросьте. Нажмите СТОП.»
- Запись 12 PID каждые 250мс
- Кнопка → СТОП
### 5. СТОП
- Запись остановлена, данные в памяти
- Вывод: «Записано N отсчётов. Нажмите ➤ для отправки.»
- Если нужно — можно снова СТАРТ (новый тест)
- Кнопка → СТАРТ (снова)
### 6. Отправка (➤)
- Если есть данные теста → POST /api/v1/session/upload с dynamic_samples
- Если есть текст → добавляется как car_info
- LLM-анализ → результат в выводе
## Что удалить из текущего UI
- Кнопки Сервер, ELM, ЭБУ как отдельные кнопки → станут иконками
- dynamicButtons (На месте / В движении) → не нужны, всё через одну кнопку
- btnDynStart → не нужна
- CheckBox «Полная диагностика» → всегда полная
- tvDtcStatus → не нужен, всё в выводе
- tvPrompt → не нужен