check_updates
Чтобы получить изменения событий по всем объектам в сессии, используйте метод events/check_updates.
Перед вызовом этого метода добавьте объекты в сессию с помощью метода events/update_units.
Конечная точка
svc=events/check_updates¶ms={
"lang": <text>,
"measure": <uint>,
"detalization": <uint>
}
Параметры
Все параметры необязательны.
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
| lang | Язык (двухсимвольный код). | en |
| measure | Система измерения:
|
0 |
| detalization | Флаги вывода (см. ниже). Должны быть указаны в десятичном формате. | 7 |
Флаги вывода
| Флаг | Описание |
|---|---|
| 0x1 | Базовый JSON: начало — конец события. |
| 0x2 | Данные конкретного детектора. |
| 0x4 | Пользовательские параметры (те, которые пользователь указал для этого события). |
| 0x10 | Полный JSON. Каждый детектор интерпретирует его по-своему. |
| 0x20 | Форматированное значение. |
Тип датчика
| Значение type | Описание | Регистрация событий |
|---|---|---|
| 1 | Датчики-переключатели:
|
События регистрируются от момента включения датчика до его выключения. |
| 2 | Мгновенные датчики:
|
События регистрируются от первого ненулевого значения датчика до последнего. |
| 3 | Дифференциальные датчики:
|
События регистрируются от начала роста значения датчика до окончания. |
| 4 | Аналоговые датчики:
|
События не регистрируются. |
Возвращаемый результат
Ответ сгруппирован по ID объекта. Для каждого объекта ответ содержит массив объектов детекторов:
{
"<unit_id>": [
{ "<detector_name>": { ... } },
{ "<detector_name>": { ... } },
...
],
"<unit_id>": [ ... ]
}
Структура каждого объекта детектора зависит от флагов, указанных в параметре detalization. Флаги можно комбинировать. В разделах ниже описывается каждый флаг отдельно.
Флаг 0x1
Возвращается базовый JSON (для всех групп датчиков).
"<type_name>": {
"<sensor_id>": {
"from": {
"t":<uint>, /* время (UNIX-время) */
"y":<double>, /* широта*/
"x":<double> /* долгота*/
},
"to": {
"t":<uint>, /* время (UNIX-время) */
"y":<double>, /* широта*/
"x":<double> /* долгота*/
},
"m":<uint>, /* время последнего сообщения */
"f":<uint> /* служебный флаг */
}
}
Флаг 0x2
Возвращаются данные конкретного детектора.
"ignition": {
"<sensor_id>": {
"state": <uint>, /* состояние: 0 — выключен, 1 — включен */
"type": 1, /* тип датчика: датчик-переключатель */
"hours": <uint>, /* моточасы за всю историю, с */
"switches": <uint>, /* количество срабатываний за всю историю */
"value": <bool> /* текущее значение */
}
}
Все типы датчиков для sensors:
"sensors": {
"<sensor_id1>": {
"state": <uint>, /* состояние: 0 — выключен, 1 — включен */
"type": 1, /* тип датчика: датчик-переключатель */
"hours": <uint>, /* моточасы за всю историю, с */
"switches": <uint>, /* количество срабатываний за всю историю */
"value": <bool> /* текущее значение */
},
"<sensor_id2>": {
"type": 2, /* тип датчика: мгновенный датчик */
"counter": <uint>, /* количество последовательных сообщений в событии */
"summary": <uint>, /* сумма значений в событии */
"total_counter": <uint>, /* общее количество сообщений за всю историю */
"total_summary": <uint>, /* общая сумма значений за всю историю */
"value": <double> /* последнее значение; если -348201.3876, значение неизвестно */
},
"<sensor_id3>": {
"type": 3, /* тип датчика: дифференциальный датчик */
"counter": <uint>, /* сумма значений в событии */
"total_counter": <uint>, /* сумма значений за всю историю */
"value": <double> /* последнее значение; если -348201.3876, значение неизвестно */
},
"<sensor_id4>": {
"type": 4, /* тип датчика: аналоговый датчик */
"value": <double> /* последнее значение; если -348201.3876, значение неизвестно */
}
}
"lls": {
"<sensor_id>": {
"value": <double>, /* последнее значение из сообщения, для которого рассчитан level */
"level": <double>, /* среднее медианное значение (используется указанное значение фильтрации ДУТ) */
"filled": <double> /* объем заправленного топлива */
}
}
"trips": {
"state": <bool>, /* состояние поездки: 0 — стоянка, 1 — поездка, 2 — остановка */
"max_speed": <uint>, /* максимальная скорость во время поездки */
"curr_speed": <uint>, /* текущая скорость */
"avg_speed": <uint>, /* средняя скорость относительно distance */
"distance": <uint>, /* пробег по GPS во время поездки */
"odometer": <uint>, /* общее расстояние для всех поездок в истории */
"course": <uint>, /* курс */
"altitude": <uint> /* высота */
}
"counters": {
"engine_hours": <uint>, /* счетчик моточасов */
"mileage": <uint>, /* счетчик пробега */
"bytes": <uint> /* счетчик GPRS-трафика */
}
"eco_driving": {
"criterion_type": <text>, /* тип критерия: "acceleration", "brake", "turn", "speeding", "sensor", "harsh", "idling" */
"index": <uint>, /* индекс критерия в массиве настроек */
"max_speed": <uint>, /* максимальная скорость, км/ч */
"mark": <uint> /* штрафные баллы, назначенные за это нарушение */
}
Флаг 0x4
Возвращаются пользовательские параметры. Зависит от того, что пользователь указал для конкретного события.
"<type_name>": {
"<sensor_id>": {
"p":{ /* определенный пользователем контент объекта */
"test":2,
"foo":"bar",
"trips":1
}
}
}
Флаг 0x10
Возвращается полный JSON.
Для датчиков с ‘‘type=2’’ и ‘‘type=3’’ (кроме датчиков уровня топлива) возвращается следующий ответ:
"sensors": {
"<sensor_id>": {
"msgs": [
{
"tm": <uint>, /* время сообщения, UNIX-время */
"v": <double> /* значение */
},
...
]
},
...
}
Для датчиков уровня топлива возвращается следующий результат:
"lls": {
"<sensor_id>": {
"msgs": [
{
"tm":<uint>, /* время сообщения (UNIX-время) */
"v":<double>, /* значение */
"l":<double> /* среднее медианное значение (используется указанное значение фильтрации ДУТ) */
},
...
]
}
},
...
}
Флаг 0x20
Возвращаются форматированные значения.
"ignition": {
"sensor_id": {
"format": {
"value":<text> /* форматированное значение (обычно «Вкл.»/«Выкл.») */
}
}
}
"sensors": {
"sensor_id": {
"format": {
"value":<text> /* форматированное значение, зависит от типа датчика и установленного формата */
}
}
}
"trips": {
"format": {
"distance":<text>, /* пробег относительно предыдущего сообщения */
"avg_speed":<text> /* средняя скорость относительно distance */
}
}
"lls": {
"sensor_id": {
"format": {
"value":<text>, /* форматированное значение, зависит от типа датчика и установленного формата */
"filled":<text> /* объем заправленного топлива */
}
}
}
"counters": {
"format": {
"engine_hours":<uint>, /* форматированное значение счетчика моточасов */
"mileage":<text>, /* форматированное значение счетчика пробега */
"bytes":<uint> /* форматированное значение счетчика GPRS-трафика */
}
}
Коды ошибок
Если запрос не выполнен, возвращается код ошибки.
| Код | Описание |
|---|---|
| 1 | Неверный или устаревший SID запроса. |
| 4 | Ошибка валидации параметров. |
| 7 | Не удалось загрузить библиотеку adf_avl_events или получить запись в формате JSON. |