Files
elmer/doc/morda-v2.md
T

6.0 KiB
Raw Blame History

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