Files
vue-pult/docs/CONFIG_SETTINGS.md
2025-10-07 10:18:02 +03:00

7.1 KiB
Raw Blame History

🛠️ Настройки ESP - Руководство

📍 Как открыть настройки

  1. Через бургер-меню (левый нижний угол):

    • Кликнуть на иконку бургера (три полоски)
    • Выбрать пункт с иконкой ⚙️ (Настройки)
  2. Прямой переход:

    • Открыть URL: http://localhost:5173/config

🔐 Доступ к настройкам

Настройки доступны только пользователям с ролями:

  • Техник (technic)
  • Администратор (admin)

Если у вас нет прав доступа, появится сообщение "Нет доступа".


📊 Параметры ESP

1. hz - Частота (Hz)

  • Диапазон: 9999 - 100000
  • По умолчанию: 14000
  • Описание: Частота работы ESP модуля

2. MaxTime - Максимальное время (ms)

  • Диапазон: 1000 - 200000
  • По умолчанию: 140000
  • Описание: Максимальное время работы

3. maxShot - Максимум выстрелов

  • Диапазон: 1 - 100
  • По умолчанию: 2
  • Описание: Максимальное количество выстрелов

4. maxA - Максимальная амплитуда

  • Диапазон: 1 - 255
  • По умолчанию: 80
  • Описание: Максимальная амплитуда сигнала

5. zvtime - Время звука (ms)

  • Диапазон: 1000 - 200000
  • По умолчанию: 95000
  • Описание: Длительность звукового сигнала

6. otime - Время отклика

  • Диапазон: 1 - 100
  • По умолчанию: 4
  • Описание: Время отклика системы

🎯 Как изменить параметр

Шаг 1: Изменение значения

  1. Найдите нужный параметр в списке
  2. Измените значение в поле ввода
  3. Появится кнопка "Применить" (зелёная)

Шаг 2: Сохранение

  1. Нажмите кнопку "Применить"
  2. Система выполнит:
    • Валидацию значения (проверка диапазона)
    • 📡 Отправку команды на ESP через Serial порт
    • 💾 Сохранение в файл data/esp.ini
  3. При успехе появится индикатор "✓ Сохранено"

Шаг 3: Отмена изменения

  • Нажмите кнопку "✕" справа от "Применить"
  • Значение вернётся к предыдущему

🔄 Логика работы (под капотом)

Последовательность событий:

1⃣ КЛИЕНТ (Vue.js)
   └─> Изменение значения hz с 14000 на 15000
   └─> Валидация: 9999 ≤ 15000 ≤ 100000 ✅
   └─> Отправка через WebSocket: {do:"cfg-esp", cfg:"hz", value:15000}

2СЕРВЕР (Node.js)
   └─> Получение команды
   └─> Сохранение старого значения: previousValue = 14000
   └─> Обновление в памяти: espConfig.hz = 15000
   └─> Отправка на ESP через Serial: "hz=15000;\n"

   ┌─────────────────────┐
   │ ESP ответила?       │
   └─────────────────────┘
          │
    ┌─────┴─────┐
    ✅ ДА      ❌ НЕТ
    │           │
    ↓           ↓
   Сохранить   Откатить
   в файл      hz=14000
    │           │
    ↓           ↓
   Отправить   Отправить
   успех       ошибку

3⃣ КЛИЕНТ (Vue.js)
   └─> Получение ответа
   └─> Обновление UI
   └─> Показ уведомления

📁 Файлы системы

server/data/esp.ini

Хранит текущие настройки ESP в формате JSON:

{
  "hz": 14000,
  "MaxTime": 140000,
  "maxShot": 2,
  "maxA": 80,
  "zvtime": 95000,
  "otime": 4
}

⚠️ Обработка ошибок

Ошибка валидации

  • Причина: Значение вне диапазона
  • Действие: Отображается сообщение об ошибке
  • Пример: "Значение должно быть от 9999 до 100000"

Ошибка отправки на ESP

  • Причина: ESP не ответила на команду
  • Действие: Откат к предыдущему значению
  • Сообщение: " Не удалось сохранить"

Ошибка загрузки настроек

  • Причина: Файл esp.ini недоступен
  • Действие: Отображается страница ошибки
  • Решение: Проверить наличие файла server/data/esp.ini

🔧 Техническая информация

WebSocket команды:

Получение настроек

// Клиент → Сервер
{
  "do": "cfg-esp-get"
}

// Сервер → Клиент
{
  "do": "cfg-esp-get",
  "cfg": {
    "hz": 14000,
    "MaxTime": 140000,
    ...
  }
}

Сохранение параметра

// Клиент → Сервер
{
  "do": "cfg-esp",
  "cfg": "hz",
  "value": 15000
}

// Сервер → Клиент (успех)
{
  "do": "cfg-esp",
  "cfg": "hz",
  "value": 15000
}

// Сервер → Клиент (ошибка)
{
  "do": "error",
  "message": "Ошибка настройки ESP: timeout",
  "type": "esp_config_failed",
  "cfg": "hz"
}

🚀 Используемые файлы

Frontend

  • client/src/pages/ConfigPage.vue - Страница настроек
  • client/src/composables/config/useConfigESP.js - Логика работы с настройками
  • client/src/router/index.js - Маршрут /config
  • client/src/pages/HomePage.vue - Обработчик клика по "Настройки"

Backend

  • server/ws.js:952 - Обработчик cfg-esp-get
  • server/ws.js:974 - Обработчик cfg-esp
  • server/data/esp.ini - Файл хранения настроек

Преимущества реализации

  1. Безопасность: Откат при ошибке ESP
  2. Валидация: Проверка диапазонов перед отправкой
  3. Обратная связь: Визуальные индикаторы состояния
  4. Атомарность: Каждый параметр сохраняется отдельно
  5. Логирование: Детальные логи на сервере

Создано: 2025-01-06