/event : События в реальном времени🔗
GET /event: Получение событий в реальном времени🔗
Совет
Данный запрос устарел. Вместо него рекомендуется использовать эндпойнт:
POST /archive_events
Подробнее см. /archive_events : Данные о событиях в архиве.
Доступно во всех типах лицензий.
Предупреждение
Доступно в Macroscop версии 2.1 и выше.
Важно
Во всех примерах указан локальный хост (localhost). При отправке реальных запросов замените его на адрес и порт сервера, на который отправляете запрос.
Примечание
Доступно получение ответа в формате JSON.
События можно получать в режиме реального времени в виде непрерывного («бесконечного») HTTP-соединения.
Примечание
При чтении полученного ответа необходимо учитывать, что информация передаётся с использованием следующих механизмов:
Chunked transfer encoding для передачи динамически формируемого тела ответа. Ввиду "бесконечности" запроса невозможно предугадать точный размер тела ответа, в связи с чем ответ передаётся с заголовком "Transfer-encoded: chunked".
Newline delimited JSON streaming для разделения передаваемых объектов. Разделение объектов в этом механизме осуществляется переводом следующего объекта на новую строку вместо использования символьных разделителей.
Для получения «бесконечного» потока событий системы используется запрос к ресурсу event.
Пример запроса🔗
Пример запроса данных в формате JSON:
GET http://localhost:8080/event?login=root&password=&responsetype=json
Дополнительные параметры запроса🔗
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
channelid |
— |
Уникальный идентификатор канала. Может быть получен при выполнении запроса Получение конфигурации системы. Опциональный параметр |
filter |
— |
Уникальный идентификатор события. Может быть получен при выполнении запроса Получение списка всех зарегистрированных событий. Опциональный параметр |
responsetype |
xml |
Формат представления возвращаемых данных. Если не указан в запросе, используется значение по умолчанию. Опциональный параметр. Допустимые значения: xml, json |
mode |
— |
Флаг указания серверу генерировать отладочные сообщения при применении значения demo. Опциональный параметр |
Примеры ответа на запрос🔗
Пример фрагмента ответа на запрос в формате JSON:
{
"EventId" : "eb0bb455-b85f-4ac4-851f-f30a11797579",
"Timestamp" : "19.10.2022 09:58:55",
"BinaryTimestamp" : "5249703721781162729",
"ZonedTimestamp" : "19.10.2022 09:58:55.377 +05:00",
"EventDescription" : "Начало движения",
"IsAlarmEvent" : "False",
"ChannelId" : "e0391a80-c921-4ffc-9a69-107fcf28e34e",
"ChannelName" : "Камера 3",
"Comment" : "",
"EventType" : "Info",
"InitiatorName" : "System"
}
{
"EventId" : "e4b1f78d-35d6-4092-9fd8-72e66de82e01",
"Timestamp" : "19.10.2022 09:59:11",
"BinaryTimestamp" : "5249703721937844932",
"ZonedTimestamp" : "19.10.2022 09:59:11.045 +05:00",
"EventDescription" : "Окончание движения",
"IsAlarmEvent" : "False",
"ChannelId" : "e0391a80-c921-4ffc-9a69-107fcf28e34e",
"ChannelName" : "Камера 3",
"Comment" : "",
"EventType" : "Info",
"InitiatorName" : "System"
}
Пример фрагмента ответа с событием Обнаружено падение:
{
"InitiatorName" : "ExternalEvent",
"EventId" : "919f7bf5-aea4-4bc1-8f55-e0271c7ad620",
"EventType" : "Info",
"IsAlarmEvent" : "False",
"ChannelId" : "e59cd3e2-873b-4543-a0a0-3f0ed3800c5a",
"ChannelName" : "Камера 1",
"Comment" : "",
"Timestamp" : "07.08.2025 08:38:51",
"BinaryTimestamp" : "5250587545742944440",
"ZonedTimestamp" : "07.08.2025 08:38:51.555 +05:00",
"EventDescription" : "Обнаружено падение",
"ZoneId" : "d05df0ea-2d04-45ab-95f1-0183d3a4f9e4",
"Left" : "0,4277643859386444",
"Top" : "0,41011327505111694",
"Width" : "0,16975590586662292",
"Height" : "0,1275453269481659"
}
Примеры запросов и ответов с дополнительными параметрами🔗
Параметры запроса filter и channelid применяются в случаях, когда необходимо получить события только определённого типа и/или с определённого канала. Оба параметра могут быть использованы в одном запросе одновременно, но каждый параметр при этом может иметь только одно значение.
Пример корректного запроса:
GET http://localhost:8080/event?login=root&password=&channelid=e0391a80-c921-4ffc-9a69-107fcf28e34e&filter=00000000-0000-0000-0000-000000000033&responsetype=json
Пример некорректного запроса:
GET http://localhost:8080/event?login=root&password=&channelid=e0391a80-c921-4ffc-9a69-107fcf28e34e&filter=00000000-0000-0000-0000-000000000033,e4b1f78d-35d6-4092-9fd8-72e66de82e01&responsetype=json
При добавлении к запросу параметра mode=demo система начнёт генерировать виртуальные события с типом события «Обнаружен автономер». Такие события не сохраняются в журнал событий системы, не ассоциируются с какой-либо камерой и не несут какой-либо действительной информации. Этот параметр может быть полезен для изучения, тестирования и отладки механизмов получения и чтения событий.
Пример запроса виртуальных событий в формате JSON:
GET http://localhost:8080/event?login=root&password=&mode=demo&responsetype=json
Пример виртуального события в формате JSON:
{
"EventId" : "c9d6d086-c965-4cf8-aef6-85b3894e3a4a",
"Timestamp" : "19.10.2022 10:24:02",
"BinaryTimestamp" : "5249703736847974593",
"ZonedTimestamp" : "19.10.2022 10:24:02.058 +05:00",
"EventDescription" : "Обнаружен автономер",
"IsAlarmEvent" : "False",
"ChannelId" : "00000000-0000-0000-0000-000000000000",
"ChannelName" : "",
"Comment" : "",
"EventType" : "Info",
"InitiatorName" : "System",
"IsIdentified" : "False",
"plateText" : "",
"Speed" : "0",
"Reliability" : "0",
"Left" : "0",
"Top" : "0",
"lastName" : "",
"firstName" : "",
"patronymic" : "",
"carbrand" : "",
"carcolor" : "",
"additionalInfo" : "",
"groups" : "",
"direction" : ["Unknown"],
"ExternalId" : "",
"ExternalOwnerId" : "",
"Width" : "0",
"Height" : "0",
"Numberplate" : ""
}
В случае полного или временного отсутствия событий, соответствующих отправленному запросу, система будет возвращать в ответ KeepAlive сообщения для сохранения установленного соединения активным. Сообщение такого типа будет отображаться в потоке даже если в запросе был задан фильтр по типу события.
Пример KeepAlive сообщения в формате JSON:
{
"EventId" : "e9e7a69c-7ee2-3fee-a530-9f8a88124fcc",
"Timestamp" : "19.10.2022 09:59:19",
"BinaryTimestamp" : "5249703722021050198",
"ZonedTimestamp" : "19.10.2022 09:59:19.366 +05:00",
"EventDescription" : "",
"IsAlarmEvent" : "False",
"ChannelId" : "00000000-0000-0000-0000-000000000000",
"ChannelName" : "",
"Comment" : "KeepAlive",
"EventType" : "Info",
"InitiatorName" : "System"
}
В результате работы некоторых модулей аналитики системой регистрируются координаты обнаруженного на кадре объекта (например, координаты лица для модулей Распознавание лиц). При запросе событий такого типа, в теле ответа передаются относительные координаты рамки объекта в виде позиции на кадре левой верхней точки рамки (Top, Left), а также её ширины и высоты (Width, Height).
Отсчёт координат осуществляется от левого верхнего угла кадра.
Пример ответа с координатами объекта:
{
"InitiatorName" : "ExternalEvent",
"EventId" : "427f1cc3-2c2f-4f50-8865-56ae99c3610d",
"EventType" : "Info",
"IsAlarmEvent" : "False",
"ChannelId" : "89402bc1-2ca3-4aa2-ac06-6c5d8470f1fa",
"ChannelName" : "Камера 1",
"Comment" : "",
"Timestamp" : "22.08.2023 04:44:05",
"BinaryTimestamp" : "5249968780880794756",
"ZonedTimestamp" : "22.08.2023 04:44:05.340 +05:00",
"EventDescription" : "Обнаружено лицо (Модуль распознавания лиц)",
"FaceId" : "5821fc2b-c9d2-4d72-aa85-6ffe114b7fec",
"IsIdentified" : "False",
"lastName" : "",
"firstName" : "",
"patronymic" : "",
"groups" : "",
"additionalInfo" : "",
"Left" : "0,1947916597127915",
"Top" : "0,06250000000000006",
"Width" : "0,5624999999999999",
"Height" : "0,9374999999999999",
"Similarity" : "0",
"Age" : "25",
"Gender" : "Male",
"ExternalId" : "",
"TemperatureDegreesCelsius" : "0",
"ImageBytes" : "",
"Emotion" : "Neutral",
"EmotionConfidence" : "0,8842294216156006",
"IsFaceCovered" : "False",
"IsRotated" : "False",
"TrajectoryId" : "da758802-6ee6-401f-b13f-b67d969a07c9"
}
Для сортировки по времени возникновения события каждый объект имеет временную метку, представленную в теле ответа одновременно в трёх форматах:
Timestamp - дата и время сервера в формате UTC без учёта часового пояса сервера;
ZonedTimestamp - дата и время сервера в формате UTC с указанием часового пояса сервера;
BinaryTimestamp - дата и время сервера в бинарном представлении (метод DateTime.ToBinary).
Примечание
Бинарное представление временной метки имеет наибольшие точность и удобство интеграции, но осложняет задачу чтения временной метки человеком. Для преобразования бинарного представления даты и времени в формат UTC используйте метод DateTime.FromBinary.