events
В этом разделе описаны методы для работы с событиями, включая загрузку истории событий, мониторинг обновлений событий и получение текущего состояния событий.
Методы раздела events могут применяться в следующих сценариях работы.
Получение исторических событий
Чтобы получить события одного элемента за указанный период:
-
Используйте events/load, чтобы загрузить события в сессию.
-
Используйте events/get, чтобы получить загруженные события.
Метод
events/getне требуется, если вы передаете необязательный параметрselectorв запросеevents/load. В этом случае загруженные события, соответствующие селектору, возвращаются в объектеselectorответаevents/load. -
Используйте events/unload перед загрузкой событий за другой период.
Для объектов методы возвращают события, зарегистрированные детекторами объектов (например, trips, ignition, sensors, lls, speedings). Для ресурсов они возвращают события назначения водителей, зарегистрированные детектором resource_drivers.
Получение обновлений в реальном времени
Чтобы отслеживать события от выбранных элементов в реальном времени, выберите один из двух режимов: запрашивать обновления по расписанию или получать их через канал avl_evts.
В обоих режимах вы добавляете элементы в сессию и настраиваете детекторы событий с помощью events/update_items. Только для объектов также можно использовать events/update_units, но для новых интеграций используйте events/update_items.
Получение обновлений по запросу
- Используйте events/update_items, чтобы добавить элементы в сессию и настроить детекторы событий для каждого из них. Оставьте параметр
evt_flagsсо значением по умолчанию0. - Вызывайте events/check_updates регулярно, например каждые несколько секунд. Каждый вызов возвращает только изменения с момента предыдущего вызова. Если изменений нет, метод возвращает пустой объект.
Используйте этот режим, если ваша интеграция не может поддерживать постоянное соединение с сервером.
Получение обновлений через avl_evts
- Используйте core/update_data_flags, чтобы указать, какие элементы и какие данные элементов (общие свойства, местоположение, последнее сообщение и т. д.) получать через avl_evts. Этот метод настраивает канал данных, но не подписывается на детекторы событий.
- Используйте events/update_items, чтобы настроить детекторы событий и установить параметр
evt_flagsв0x200. Объедините его с флагами детализации, чтобы контролировать уровень детализации (например,0x207). - Читайте как данные элементов, так и обновления событий из avl_evts. Обновления событий возвращаются в поле units_update.
В этом режиме не вызывайте
events/check_updates. Он возвращает пустой объект.
Получение текущего или последнего состояния события
Чтобы получить текущее или последнее состояние события без загрузки событий в сессию, используйте events/get_last.