Когда вы загрузили события в сессию командой events/load и собираетесь получить результаты, используйте команду events/get:
По времени:
svc=events/get¶ms={"selector":{ "type":<text>, "expr":<text>, "timeFrom":<uint>, "timeTo":<uint>, "detalization":<uint> } }
Название | Описание |
---|---|
type | группа датчиков: lls, trips, ignition, sensors, counters * (все группы) |
expr | выражение групп интервалов, используется вместо type для получения пользовательских интервалов событий |
timeFrom | время начала интервала, UNIX-time |
timeTo | время окончания интервала, UNIX-time |
detalization | флаги ответа (см.ниже) |
filter1 | ID датчика, опционально |
Флаг | Описание |
---|---|
0x1 | Базовый JSON: начало - конец события |
0x2 | Данные конкретного детектора |
0x4 | Пользовательские параметры (те, которые пользователь указал для этого события) |
0x8 | Данные по треку в trips |
0x10 | Полный JSON. Каждый детектор интерпретирует его по-своему |
0x20 | Форматированное значение |
0x40 | группировка по пересечениям интервалов с tf и tt |
0x80 | рассчитать и добавить суммарную информацию |
Для получения пользовательских интервалов событий используйте выражение в параметре "expr":<text> вместо параметра type
Оператор | Описание | Пример |
---|---|---|
{} | выделение интервалов по значению параметров детализации | trips{s>100}, поездки со скоростью больше 100 |
- | произвольный интервал времени через дефис | 1451953325-1451953525, с-до |
| | объединение | (1615849200-1615935599|1615935601-1616022000), 2 интервала с-до |
[] | выбор id датчика | sensors[3], если не указано, то берется первый |
Мы получим результаты в зависимости от заданного type
.
Возвращает базовый JSON (одинаков для всех групп датчиков)
"<type_name>": { "<sensor_id>": { "from": { "t":<uint>, /* время (UNIX-time) */ "y":<double>, /* широта */ "x":<double> /* долгота */ }, "to": { "t":<uint>, /* время (UNIX-time) */ "y":<double>, /* широта */ "x":<double> /* долгота */ }, "m":<uint>, /* время последнего полученного сообщения */ "f":<uint> /* служебный флаг */ } }
Возвращает данные конкретного детектора.
"ignition": { "<sensor_id>": { "state":<uint>, /* состояние: 0 - выкл, 1 - вкл */ "type": 1, /* тип датчика: датчик-переключатель */ "hours":<uint>, /* моточасы за всю историю, сек */ "switches":<uint>, /* количество срабатываний за всю историю */ "value":<bool> /* текущее значение */ } ... }
Перечислены 4 возможных типа датчиков для 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> /* cчётчик GPRS-трафика */ }
"speedings": { "max_speed": <uint>, /* максимальная скорость в нарушении */ "last_speed": <uint>, /* скорость из последнего сообщения на интервале*/ "limit": <uint> /* ограничение на дороге */ }
Возвращает пользовательские параметры. Зависит от того, что пользователь указал для конкретного события.
"<type_name>": { "<sensor_id>": { "p":{ /* определенный пользователем контент объекта */ "test":2, "foo":"bar", "trips":1 } } }
Возвращает JSON c дополнительными параметрами:
для trips - трек в Google нотации.
{ "trips": { "0": [ { "track": "wspnGgvcv@??oey@kwl@~dtBkeRwjzF??~ja@_qo]??g~g^????????????~bV???????" } ] } }
Возвращает полный JSON события, в зависимости от его типа
Для датчиков type=2
и type=3
(кроме ДУТ):
"sensors": { "<sensor_id>": { "msgs": [ { "tm":<uint>, /* время сообщения, UNIX-time */ "v":<double> /* значение */ }, ... ] }, ... }
Для ДУТ:
"lls": { "<sensor_id>": { "msgs": [ { "tm":<uint>, /* время сообщения, UNIX-time */ "v":<double>, /* значение */ "l":<double> /* среднее медианное значение (используются выставленные значения фильтрации ДУТ) */ }, ... ] } }, ... }
Trips «msgs» - геоданные всех сообщений поездки
{ "trips": { "0": [ { "msgs": [ { "tm": 1616135555, "x": 9.03540039062, "y": 44.4910011292, "c": 0, "z": 300, "s": 0, "m": 0 }, {....}, {.....}, .... ..... ] } ] } }
Возвращает форматированные значения.
"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 трафика */ } }
"speedings": { "max_speed": <uint>, /* форматированное значение макс скорости */ "last_speed": <uint>, /*форматированное значение последней скорости*/ "limit": <uint> /* форматированное значение лимита на дороге */ }
"selector": [ { "tf": <uint>, /* начало интервала пересечения, unix time */ "tt": <uint>, /* конец интервала пересечения, unix time */ "d": { "<type_name>":{ "<sensor_id>":[ { }, ] }, } }, ]
"selector":{ "<type_name>":{ "<sensor_id>":[ { }, ] }, }, "summary":{ "<type_name>":{ "<sensor_id>":{ "<summary_param_value>:<uint>", /* суммарные данные, отличаются для разных детекторов */ "format": { "value":<text> /* форматированное значение, зависит от типа датчика и установленного формата */ } } }
|