RBCAPI: различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Запрос на остановку записи)
(Запрос на получение конфигурации RBC)
Строка 149: Строка 149:
 
===Запрос на получение конфигурации RBC===
 
===Запрос на получение конфигурации RBC===
  
Принцип работы параметра
+
Параметр
  
 
  device-id
 
  device-id
  
аналогичен принципу, описанному ранее.
+
принимает значение MAC-адреса конкретного RBC. Например:
 +
 
 +
5465033FFFF3
  
 
====Запрос====
 
====Запрос====
  
 
<pre>
 
<pre>
{ "device-id" : "*",
+
{ "device-id" : "5465033FFFF3",
 
   "command"  : "conf",
 
   "command"  : "conf",
 
   "arguments" : { } }
 
   "arguments" : { } }
Строка 167: Строка 169:
  
 
<pre>
 
<pre>
{ "device-id" : "*",
+
{ "device-id" : "5465033FFFF3",
 
   "command"  : "conf",
 
   "command"  : "conf",
 
   "arguments" : {
 
   "arguments" : {
 
       "conf" : {
 
       "conf" : {
           "server-address"                : "172.16.1.1",
+
           "server-address"                : "192.168.1.2",
 
           "server-port"                  : 3000,
 
           "server-port"                  : 3000,
 
           "server-resource"              : "\/ws",
 
           "server-resource"              : "\/ws",
 
           "server-use-tls?"              : false,
 
           "server-use-tls?"              : false,
           "device-alias"                  : "qwerty",
+
           "device-alias"                  : "99",
 
           "camera-switch-timeout"        : 15,
 
           "camera-switch-timeout"        : 15,
          "session-auto-send?"            : true,
 
 
           "session-auto-remove?"          : false,
 
           "session-auto-remove?"          : false,
          "camera-front-preview-enabled?" : false,
+
           "camera-front-resolution"      : "1920x1080",
          "camera-front-id"              : "0",
+
           "camera-rear-resolution"        : "1920x1080",
          "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
 
           "movement-detection-threshold"  : 1.0
 
       }
 
       }
 
   }
 
   }
 
}
 
}
 +
</pre>
 +
 +
, где
 +
 +
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
  
</pre>
+
-- коэффициент чувствительности акселерометра при детектировании старта движения
  
 
==От RBC к SRV==
 
==От RBC к SRV==

Версия 23:57, 3 июня 2021

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

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

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