114 lines
6.0 KiB
Markdown
114 lines
6.0 KiB
Markdown
# Новая морда 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 → не нужен
|