Содержание

Получить события из сессии

Когда вы загрузили события в сессию командой events/load и собираетесь получить результаты, используйте команду events/get:

По времени:

svc=events/get&params={"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

Формат выражения в параметре "expr"

ОператорОписаниеПример
{} выделение интервалов по значению параметров детализации trips{s>100}, поездки со скоростью больше 100
- произвольный интервал времени через дефис 1451953325-1451953525, с-до
| объединение (1615849200-1615935599|1615935601-1616022000), 2 интервала с-до
[] выбор id датчика sensors[3], если не указано, то берется первый

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

Мы получим результаты в зависимости от заданного type.

Флаг 0x1

Возвращает базовый 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> 		/* служебный флаг */
	}
}

Флаг 0x2

Возвращает данные конкретного детектора.

"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>           /* ограничение на дороге */ 
}

Флаг 0x4

Возвращает пользовательские параметры. Зависит от того, что пользователь указал для конкретного события.

"<type_name>": {
	"<sensor_id>": {
		"p":{	/* определенный пользователем контент объекта */
			"test":2,
			"foo":"bar",
			"trips":1
		}
	}
}

Флаг 0x8

Возвращает JSON c дополнительными параметрами:

для trips - трек в Google нотации.

{
    "trips": {
        "0": [
            {
                "track": "wspnGgvcv@??oey@kwl@~dtBkeRwjzF??~ja@_qo]??g~g^????????????~bV???????"
            }
        ]
    }
}

Флаг 0x10

Возвращает полный 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
                    },
                    {....},
                    {.....},
                    ....
                    .....
 
                ]
            }
        ]
    }
}

Флаг 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 трафика */ 
	}
}
"speedings": {
	"max_speed": <uint>,   /* форматированное значение макс скорости  */
	"last_speed": <uint>,        /*форматированное значение последней скорости*/
	"limit": <uint>           /* форматированное значение лимита на дороге */ 
}

Флаг 0x40

"selector": [
    {
    "tf": <uint>, /* начало интервала пересечения, unix time */
    "tt": <uint>, /* конец интервала пересечения, unix time */
	"d": {
	    "<type_name>":{
		"<sensor_id>":[
		    { },
		]
	    },
	}
    }, 
]

Флаг 0x80

"selector":{
    "<type_name>":{
	"<sensor_id>":[
	{ },
	]
    },
},
"summary":{
    "<type_name>":{
	"<sensor_id>":{
	    "<summary_param_value>:<uint>",    /* суммарные данные, отличаются для разных детекторов */
	    "format": {
	        "value":<text>	/* форматированное значение, зависит от типа датчика и установленного формата */
	    }
	}
}