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

set_prms_limit

Чтобы ограничить количество параметров сообщений, которые сервер возвращает для каждого объекта в текущей сессии, используйте метод core/set_prms_limit.

Метод полезен для объектов с большим количеством параметров сообщений, например для объектов с BLE-метками. При наличии ограничения сервер возвращает не весь список, а только последние параметры, поэтому ответ становится намного меньше.

Метод core/set_prms_limit недоступен в Wialon Local.

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

Copied!
svc=core/set_prms_limit&params={
  "prms_limit": <uint>
}

Параметры

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

Название Описание
prms_limit Максимальное количество параметров сообщений, возвращаемых для каждого объекта:
  • 0 — без ограничения. Сервер возвращает все параметры сообщений. Это значение по умолчанию для новой сессии;
  • положительное число — сервер возвращает не более указанного количества последних параметров.
По умолчанию максимальное значение — 1 000 000; на сервере может использоваться другое значение.

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

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

Чтобы изменить ограничение, повторно отправьте запрос core/set_prms_limit с новым значением. Формат новых событий меняется сразу. Чтобы получить список параметров с новым ограничением, выполните следующее:

  • Если новое ограничение — положительное число, отправьте запрос core/update_data_flags с флагом параметров сообщений в режиме 1.
  • Если новое ограничение равно 0, сначала удалите флаг параметров сообщений из сессии (режим 2), а затем добавьте его снова (режим 1). Если у объекта уже есть этот флаг, его добавление в режиме 1 без предварительного удаления ничего не возвращает.

Ответ

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

Copied!
{
  "prms_limit": <uint>  /* Сохраненное ограничение. */
}

Если запрос не выполнен, возвращается код ошибки. В большинстве случаев продолжает действовать предыдущее ограничение. Однако ошибка 6 может вернуться и после сохранения нового ограничения, если серверу не удалось сформировать ответ. В этом случае отправьте запрос повторно, чтобы убедиться, что нужное ограничение установлено.

Коды ошибок

Код ошибки Описание
1 Невалидная сессия.
4 Параметр prms_limit не указан или не является целым числом. Если значение отрицательное или превышает максимальное, ответ также содержит "reason": "WRONG_PRMS_LIMIT".
6 Не удалось сохранить ограничение.

Пример

В этом примере сессия получает не полный список параметров сообщений объекта, а не более 100 последних параметров. Для этого сначала установите ограничение, а затем добавьте в сессию флаг параметров сообщений для объекта.

Ограничьте количество параметров сообщений до 100:

Copied!
svc=core/set_prms_limit&params={"prms_limit":100}

Ответ:

Copied!
{
  "prms_limit": 100
}

Затем запросите параметры сообщений объекта:

Copied!
svc=core/update_data_flags&params={"spec":[{"type":"id","data":28877572,"flags":1048576,"mode":1}]}

Ответ:

Copied!
[
  {
    "i": 28877572,
    "d": {
      "prms": {
        "engine_temp": {
          "v": 87,
          "ct": 1790541264,
          "at": 1790541264
        },
        ...
      },
      "prms_total": 2450
    },
    "f": 1048576
  }
]

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