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

Управление событиями

Управление событиями — это процесс, который можно разделить на две части:

  • добавление необходимых элементов в сессию с указанием нужных типов событий;
  • получение и обработка событий.

Добавление элементов в сессию

Чтобы получать события от элементов, необходимо добавить эти элементы в сессию с помощью метода core/update_data_flags.

Добавить элементы в сессию можно тремя способами:

  • по типу;
  • по ID;
  • по списку ID.

Пример 1

Добавим в сессию три объекта: Bavarian Tractor, Alabama и Touareg. Их ID известны, поэтому добавляем эти объекты, указав значение col для параметра type:

Copied!
https://hst-api.wialon.com/wialon/ajax.html?
svc=core/update_data_flags&
params={
  "spec": [
    {
      "type": "col",
      "data": [34868, 22800, 553632],
      "flags": 1,
      "mode": 0
    }
  ]
}&
sid=<your_sid>

Так как установлен только базовый флаг, мы сможем получать события только о переименовании этих объектов.

Так как значение параметра mode равно 0, все предыдущие флаги элемента будут заменены флагами из запроса.

Ответ:

Copied!
[
  {
    "i": 34868,
    "d": {
      "nm": "Bavarian Tractor",
      "cls": 2,
      "id": 34868,
      "mu": 0,
      "uacl": 880333094911
    },
    "f": 1
  },
  {
    "i": 22800,
    "d": {
      "nm": "Alabama",
      "cls": 2,
      "id": 22800,
      "mu": 0,
      "uacl": 880333094911
    },
    "f": 1
  },
  {
    "i": 553632,
    "d": {
      "nm": "Touareg",
      "cls": 2,
      "id": 553632,
      "mu": 0,
      "uacl": 880333094911
    },
    "f": 1
  }
]

Пример 2

Если вам больше не нужно получать события от объекта Touareg, его можно удалить из сессии. Так как удаление касается только одного объекта, укажите в запросе значение id для параметра type.

Copied!
https://hst-api.wialon.com/wialon/ajax.html?
svc=core/update_data_flags&
params={
  "spec": [
    {
      "type": "id",
      "data": 553632,
      "flags": 1,
      "mode": 2   /* удаление флага */
    }
  ]
}&
sid=<your_sid>

Чтобы полностью удалить объект из сессии, укажите значение 1 для параметра flags. Перестать получать все сообщения от объекта можно, только если явно запросить удаление базового флага.

Например, если вы изначально добавили объект с флагом 3 (сочетание флагов 1 и 2), а затем удалили только флаг 2, флаг 1 останется активным. В результате вы перестанете получать события, связанные с флагом 2, но продолжите получать события, связанные с флагом 1.

Ответ:

Copied!
[
  {
    "i": 553632,
    "d": null,
    "f": 0
  }
]

Значение 0 в поле f подтверждает, что объект успешно удален из сессии.

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