Справочный центр Wialon

avl_evts

Метод avl_evts возвращает информацию о событиях, которые произошли с момента предыдущего вызова этого метода.

Конечная точка

Copied!
https://<host>/avl_evts?sid=<text>

Параметры

Запрос должен содержать следующий параметр:

Параметр Описание
sid ID сессии.

Возвращаемый результат

Если запрос выполнен успешно, ответ возвращается в следующем формате:

Copied!
{
  "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. Он возвращает пустой объект.

Уровень детализации задается флагами детализации (биты 0x10x100) параметра 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 Внутренняя ошибка (пустой ответ).

Если вы заметили ошибку в тексте, пожалуйста, выделите её и нажмите Ctrl+Enter.