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