RBCAPI

Материал из wiki.nntc.nnov.ru
Версия от 00:00, 4 июня 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

Запрос аналогичен запросу на получение конфигурации, за исключением того, что параметр

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
      }
  }

От RBC к SRV

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