Содержание

Значения датчиков

Для того, чтобы получить значения датчиков, нужно использовать команду unit/calc_sensors:

svc=unit/calc_sensors&params={"source": <text>,
			      "indexFrom":<uint>,
			      "indexTo":<uint>,
			      "unitId":<long>,
			      "sensorId":<long>,
			      "width":<uint>}

Параметры

Название Описание
source источник сообщений - название слоя треков, если пусто, то будет использоваться messages loader в качестве источника
indexFrom индекс первого сообщения
indexTo индекс последнего сообщения
unitId ID объекта
sensorId ID датчика, если 0 возвращает все датчики
width количество элементов, которые должны вернуться, используется агрегирование (см. ниже), опционально

:!: Если source НЕ указан, сообщения будут браться прямо из message loader.

Объяснение параметра width

Когда нужно получить фиксированное количество значений датчика, причем уже агрегированныx (т.е. предобработанныx), тогда следует использовать параметр width. Например, можно получать обработанные данные для создания и зума графика.
Логика работы функциональности следующая:
1. система находит все сообщения, попавшие в запрашиваемый интервал;
2. затем делит весь интервал на width подинтервалов;
3. на каждом таком подинтервале система находит самое первое значение датчика (left), последнее значение (right), минимальное значение (bottom) и максимальное значение (top). Указанные данные попадут в финальный ответ сервера.

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

[		/* массив данных из сообщений */
	{			/* значения датчика(ов) из одного сообщения */
		<text>:<double|text>,	/* ID датчика: значение датчика */
		...
	}
]

Если указан параметр width, то ответ будет таким:

[
	[
		{
			"name":<sensor_name>,
			"data":[
				   {
					"left":[<unix_time1>,<value1>],
					"right":[<unix_time2>,<value2>],
					"bottom":[<unix_time3>,<value3>],
					"top":[<unix_time4>,<value4>]
				   },
				...
				]
		},
		...
	]
]

где <sensor_name> – имя датчика,
<unix_timeN> – UNIX-время сообщения,
valueN – значение датчика в сообщении,
left – начальное значение датчика в подинтервале и его время,
right – конечное значение датчика и время,
bottom – наименьшее значение датчика и время,
top – наибольшее значение датчика и время.