Конфигурация

Параметры робота задаются двумя способами, которые можно комбинировать:

  1. Файл params.json в текущем рабочем каталоге программы.
  2. Словарь, переданный в конструктор: Robot({...}).

Значения из словаря имеют приоритет над params.json. Удобная схема: общие параметры (адрес сервера, логирование) — в params.json, а тип устройства — в коде.

robot = Robot({"type": "LED"})    # остальное — из params.json

Параметры

Параметр Тип По умолчанию Описание
name str "DefaultName" Имя устройства, отображается в интерфейсе оператора
type str "DefaultType" Тип устройства. Определяет страницу управления в интерфейсе: Robot, LED, Drone
server str "http://artex.arcon" Адрес сервера платформы (схема + хост, без порта)
port int 80 Порт сервера
telem_can bool false Признак «устройство передаёт телеметрию» — передаётся серверу в паспорте
video_can bool false Признак «устройство передаёт видео» — передаётся серверу в паспорте
max_send_freq float 0.05 Период (в секундах) между отправками телеметрии и видео. 0.05 — до 20 отправок в секунду
max_main_freq float 0.1 Период (в секундах) паузы основного цикла. 0.1 — около 10 итераций в секунду
logger_type str "console" Куда писать журнал: console — в стандартный вывод, file — в файлы all.log и error.log
logger_level str "all" Уровень журнала: all — все сообщения, skip_TODO — все, кроме служебных сообщений TODO
external dict {} Зарезервировано для внешних модулей (в версии 0.1.1 не используется)

Несмотря на слово freq в названии, параметры max_send_freq и max_main_freq задают период в секундах, а не частоту. Чтобы отправлять данные 10 раз в секунду, укажите 0.1.

Паспорт и состояние устройства

При подключении SDK передаёт серверу паспорт (s_meta) — параметры name, type, telem_can, video_can. Сервер использует его для отображения устройства и выбора интерфейса управления.

Состояние (d_meta) меняется во время работы и возвращается серверу по запросу heartbeat:

Поле Значения Смысл
sid идентификатор или null Идентификатор подключения
ready init → ok ok после сигнала готовности от сервера; до этого команды игнорируются
telem_run bool Запущен ли поток отправки телеметрии
video_run bool Запущен ли поток отправки видео

Выбор частот

Сценарий max_main_freq max_send_freq
LED, простые датчики 0.1 0.1
Колёсный робот с камерой (FPV) 0.03–0.05 0.033–0.05
Слабый канал связи / мобильная сеть 0.1 0.1–0.2

Реальная частота отправки не выше частоты основного цикла: данные отправляются, только если основной цикл успел обновить их в Vault. Размер одного кадра 640×480 в JPEG (качество 80) — около 30–60 КБ; при 20 кадрах/с это 5–10 Мбит/с. Для слабых каналов уменьшайте разрешение кадра перед отправкой.

Примеры params.json

Колёсный робот:

{
  "name": "tank-01",
  "type": "Robot",
  "server": "http://192.168.1.10",
  "port": 80,
  "telem_can": true,
  "video_can": true,
  "max_send_freq": 0.05,
  "max_main_freq": 0.05,
  "logger_type": "file",
  "logger_level": "skip_TODO"
}

Светодиодная лампа:

{
  "name": "lamp-hall",
  "type": "LED",
  "server": "http://192.168.1.10",
  "telem_can": true,
  "logger_level": "skip_TODO"
}

Revision #3
Created 2026-09-23 09:32:13 UTC by Маслов Алексей
Updated 2026-09-23 09:35:02 UTC by Маслов Алексей