RBCAPI

Материал из wiki.nntc.nnov.ru
Версия от 23:57, 3 июня 2021; Vovan (обсуждение | вклад) (Запрос на получение конфигурации RBC)
Перейти к навигации Перейти к поиску

Взаимодействие

Клиент (далее -- RBC (RecBot Client)) подключается к вебсокету вида

https://sys-domain.net:8092/ws

После соединения с серверным API (далее -- SRV) как RBC, так и SRV могут делать запросы в вебсокет, соответственно, противоположная сторона на них должна отвечать.

Для взаимодействия посредством простых json сообщений (кроме получения файла с данными от RBC) для тестирования достаточно использовать утилиту

wscat


Базовые запросы

От SRV к RBC

Запрос статуса устройств или устройства

Запрос

{ "device-id": "*", "command": "status", "arguments": { } }

, где

device-id

-- MAC-адрес RBC, переданный без разделителей например:

5465033FFFF3

В случае указании значения

*

или в случае совпадения передаваемого MAC-адреса с MAC-адресом RBC в ответ на SRV должен придти запрос (он же ответ -- с т.з. RBC) вида:

Ответ

{ "result" : "success",
  "status" :
   { "device-id"      : "5465033FFFF3",
     "device-alias"   : "3",
     "battery-level"  : 100,
     "uptime"         : 17157021,
     "recording?"     : false,
     "current-camera" : 1,
     "recordings": 9 } }

, где

device-alias

-- номер устройства (тот номер, который должен высвечиваться на дисплее устройства)

battery-level

-- процент заряда батарейки RBC

uptime

-- время в секундах с момента загрузки RBC

recording

-- флаг, показывающий: идёт ли в данный момент запись видео на устройство

current-camera

-- номер камеры, которая в данный момент записывает (0 - обе, 1 - первая камера (основная), 2 - вторая камера (дополнительная))

recordings

-- общее количество видеозаписей


Запрос на старт записи

Принцип работы параметра

device-id

аналогичен принципу, описанному в предыдущем разделе.

Запрос

{ "device-id" : "*",
  "command"   : "start", 
  "arguments" : {"devices": [ "front", "rear" ] } }

в массиве

arguments.devices

может быть одно или два значения, наличие которых в запросе определяет: запись с каких камер должна осуществляться.

Как минимум, должно быть указано одно устройство

Ответ

{ "result" : "success" }

Запрос на остановку записи

Принцип работы параметра

device-id

аналогичен принципу, описанному ранее.

Запрос

{ "device-id" : "*",
  "command"   : "stop", 
  "arguments" : {} }

Ответ

{ "result" : "success" }


Запрос на очистку данных на RBC

Принцип работы параметра

device-id

аналогичен принципу, описанному ранее.

Запрос

{ "device-id" : "*",
  "command"   : "rm",
  "arguments" : { "name": "*" } }

Ответ

{ "result" : "success" }


Запрос на получение конфигурации RBC

Параметр

device-id

принимает значение MAC-адреса конкретного RBC. Например:

5465033FFFF3

Запрос

{ "device-id" : "5465033FFFF3",
  "command"   : "conf",
  "arguments" : { } }

Ответ

{ "device-id" : "5465033FFFF3",
  "command"   : "conf",
  "arguments" : {
      "conf" : {
          "server-address"                : "192.168.1.2",
          "server-port"                   : 3000,
          "server-resource"               : "\/ws",
          "server-use-tls?"               : false,
          "device-alias"                  : "99",
          "camera-switch-timeout"         : 15,
          "session-auto-remove?"          : false,
          "camera-front-resolution"       : "1920x1080",
          "camera-rear-resolution"        : "1920x1080",
          "movement-detection-threshold"  : 1.0
      }
  }
}

, где

server-address, server-port, server-resource, server-use-tls?

-- параметры настройки RBC для подключения к SRV.

По умолчанию при аппаратном сбросе RBC должны быть установлены те, что указаны в примере ответа.

device-alias

-- номер устройства (аналогичный параметр описан выше)

camera-switch-timeout

-- таймаут в секундах, после которого происходит переключение устройства на запись с другой камеры

session-auto-remove?

-- флаг: удалять ли данные после успешной отправки их с RBC на SRV

camera-front-resolution, camera-rear-resolution

-- разрешения камер, которое нужно использовать для записи видеофрагментов

movement-detection-threshold

-- коэффициент чувствительности акселерометра при детектировании старта движения

От RBC к SRV

Это защищенная страница.