Конфигурация
Параметры робота задаются двумя способами, которые можно комбинировать:
- Файл
params.jsonв текущем рабочем каталоге программы. - Словарь, переданный в конструктор:
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"
}
No comments to display
No comments to display