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

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

По времени:

svc=events/get&params={"selector":{
					"type":<text>,
					"expr":<text>,
					"timeFrom":<uint>,
					"timeTo":<uint>,
					"detalization":<uint>
				    },
				    ...
		      }

По индексу:

svc=events/get&params={"selector":[
				    {
					"type":<text>,
					"expr":<text>,
					"indexFrom":<uint>,
					"indexTo":<uint>,
					"detalization":<uint>,
					"filter1":<uint>
				    },
				    ...
		      ]}

Параметры

Название Описание
type группа датчиков: lls, trips, ignition, sensors, counters * (все группы)
expr выражение групп интервалов, используется вместо type для получения пользовательских интервалов событий
timeFrom время начала интервала, UNIX-time
timeTo время окончания интервала, UNIX-time
detalization флаги ответа (см.ниже)
indexFrom индекс первого события, которое будет получено
indexTo индекс последнего события, которое будет получено
filter1 ID датчика

Флаги ответа

Флаг Описание
0x1 Базовый JSON: начало - конец события
0x2 Данные конкретного детектора
0x4 Пользовательские параметры (те, которые пользователь указал для этого события)
0x10 Полный JSON. Каждый детектор интерпретирует его по-своему
0x20 Форматированное значение
0x40 группировка по пересечениям интервалов с tf и tt
0x80 рассчитать и добавить суммарную информацию

Пользовательские интервалы событий

Для получения пользовательских интервалов событий используйте выражение в параметре "expr":<text> вместо параметра type

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

ОператорОписаниеПример
& пересечение trips&ignition
| объединение trips|ignition
~ отрицание trips&~ignition
[] выбор id датчика sensors[3], если не указано, то берется первый
() скобки trips&~ignition&(~sensors[3]|sensors[5])
- произвольный интервал через дефис 1451953325-1451953525&trips&ignition
{} выделение интервалов по значению параметров детализации trips{s<20}&ignition

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

Мы получим результаты в зависимости от заданного 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-трафика */ 
}

Флаг 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-time */
					    "v":<double>	/* значение */
					},
					...
				    ]
			},
	...
}

Для ДУТ:

"lls": {
	"<sensor_id>": {
		"msgs": [
			    {
				"tm":<uint>,	/* время сообщения, UNIX-time */
				"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 трафика */ 
	}
}

Флаг 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>	/* форматированное значение, зависит от типа датчика и установленного формата */
	    }
	}
}
Follow us on Facebook Gurtam Wialon Twitter Gurtam Wialon info@gurtam.com   |   Copyright © 2002-2024 Gurtam