RBCAPI

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

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

Клиент (далее -- 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

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

Запрос

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

Ответ

{ "device-id" : "*",
  "command"   : "conf",
  "arguments" : {
      "conf" : {
          "server-address"                : "172.16.1.1",
          "server-port"                   : 3000,
          "server-resource"               : "\/ws",
          "server-use-tls?"               : false,
          "device-alias"                  : "qwerty",
          "camera-switch-timeout"         : 15,
          "session-auto-send?"            : true,
          "session-auto-remove?"          : false,
          "camera-front-preview-enabled?" : false,
          "camera-front-id"               : "0",
          "camera-front-video-format"     : "video\/avc",
          "camera-front-resolution"       : "640x480",
          "camera-rear-preview-enabled?"  : false,
          "camera-rear-id"                : "1",
          "camera-rear-video-format"      : "video\/avc",
          "camera-rear-resolution"        : "640x480",
          "movement-detection-threshold"  : 1.0
      }
  }
}

От RBC к SRV

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