avl_evts
Метод avl_evts возвращает информацию о событиях, которые произошли с момента предыдущего вызова этого метода.
Конечная точка
https://<host>/avl_evts?sid=<text>
Параметры
Запрос должен содержать следующий параметр:
| Параметр | Описание |
|---|---|
| sid | ID сессии. |
Возвращаемый результат
Если запрос выполнен успешно, ответ возвращается в следующем формате:
{
"tm": <uint>, /* Время сервера. */
"events": [ /* События. */
{
"i": <long>, /* ID элемента. */
"t": "<text>", /* Тип события: m — сообщение, u — обновление, d — удаление. */
"d": { /* Описание события. Зависит от типа события. Не указывается для событий удаления (t: "d"). */
...
}
}
],
"sensors": [
{
"i": <uint>, /* ID объекта. */
"d": { /* Объект с данными датчиков. */
"<sensor_id>": {
"value": <double|text>, /* Значение датчика (числовое или текстовое). */
"format": {
"value": <text> /* Форматированное значение датчика. */
}
}
}
}
],
"units_update": { /* Обновления событий от детекторов. Возвращается только в режиме 0x200. */
"<item_id>": [ /* ID элемента. */
{
"<detector_name>": { /* Данные детектора. Зависят от детектора и флагов детализации. */
...
}
}
]
}
}
Поле sensors
Поле sensors содержит рассчитанные значения датчиков для объектов, по которым поступили новые сообщения с данными с момента последнего запроса avl_evts. Оно позволяет получать обновления значений в реальном времени без отправки отдельных запросов для расчета датчиков.
- Если ни у одного объекта нет новых значений датчиков, поле
sensorsвозвращает пустой массив. - Каждый элемент массива содержит данные по одному объекту (идентифицируется по
i— ID объекта). - Объект
dсодержит данные датчиков, где ключами являются ID датчиков.
Форматы значений датчиков
Формат значения датчика в ответе зависит от типа датчика.
Следующие датчики возвращают текстовые значения:
- произвольные датчики с включенной опцией Текстовые параметры;
- датчики типов Назначение водителя, Назначение прицепа, Датчик пассажиров.
Все остальные датчики возвращают числовые значения.
| Параметр | Числовой датчик | Текстовый датчик |
|---|---|---|
value |
Числовое значение, преобразованное в соответствии с системой измерений, установленной для сессии (например, 16.749812). Возвращает -348201.3876, если данные не получены. |
Текстовое значение (например, "Active"). Возвращает строку "---", если данные не получены. |
format.value |
Форматированное значение с единицами измерения (например, "0 км", "62.15 °F"). Возвращает "---", если данные не получены. Если в настройке Интервалы и цвета объекта определена пользовательская метка, соответствующая текущему значению, поле имеет вид "<пользовательская метка> (<форматированное значение>)". |
То же, что value (например, "Active"). Если пользовательская метка соответствует текущему значению, поле содержит "<пользовательская метка> (<текстовое значение>)". |
Поле units_update
Поле units_update содержит обновления событий от элементов, добавленных в сессию с помощью events/update_items или events/update_units. Элементами могут быть объекты или ресурсы. Поле возвращается только в том случае, если параметр evt_flags этих методов включает значение 0x200.
Чтобы получать обновления назначений водителей, используйте events/update_items: добавьте ресурс в сессию и установите детектор resource_drivers.
Данные идентичны тем, которые возвращает events/check_updates. Они сгруппированы по ID элемента, и для каждого элемента содержат массив объектов детекторов. Структуру объектов детекторов см. в описании метода events/check_updates.
Каждый ответ содержит только обновления, зарегистрированные с момента предыдущего запроса avl_evts. Если новых обновлений нет, поле не возвращается.
В этом режиме не вызывайте метод
events/check_updates. Он возвращает пустой объект.
Уровень детализации задается флагами детализации (биты 0x1–0x100) параметра evt_flags. Его нельзя установить в запросе avl_evts.
Язык и система мер возвращаемых значений берутся из настроек локали сессии. Чтобы изменить их, используйте render/set_locale. В отличие от events/check_updates, метод avl_evts не поддерживает параметры lang и measure.
Пример ответа см. в описании метода events/update_items.
Миграция сессии
Если в момент запроса сессия переносится на другой сервер, метод возвращает ответ с "migrate": 1 и пустым массивом events. Это не является ошибкой. Продолжайте отправлять запросы с тем же ID сессии. Метод снова вернет данные о событиях после завершения миграции.
Коды ошибок
Если запрос не выполнен, возвращается код ошибки.
| Код ошибки | Описание |
|---|---|
| 1 | Невалидный, отсутствующий или истекший ID сессии. |
| 1003 | Превышен лимит запросов. Ответ может содержать поле reason с дополнительной информацией. См. Ограничения. |
| 1016 | Внутренняя ошибка (пустой ответ). |