RBCAPI
Содержание
- 1 Взаимодействие
- 2 Базовые запросы
Взаимодействие
Клиент (далее -- 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
Это защищенная страница.