Здесь показаны различия между двумя версиями данной страницы.
Both sides previous revision Предыдущая версия Следущая версия | Предыдущая версия Следущая версия Both sides next revision | ||
ru:sidebar:remoteapi:apiref:unit:calc_sensors [29/11/2013 12:31] 127.0.0.1 внешнее изменение |
ru:sidebar:remoteapi:apiref:unit:calc_sensors [26/06/2015 14:33] mast |
||
---|---|---|---|
Строка 3: | Строка 3: | ||
<code javascript> | <code javascript> | ||
svc=unit/calc_sensors¶ms={"source": <text>, | svc=unit/calc_sensors¶ms={"source": <text>, | ||
- | "indexFrom": <uint>, | + | "indexFrom":<uint>, |
- | "indexTo": <uint>, | + | "indexTo":<uint>, |
- | "unitId": <long>, | + | "unitId":<long>, |
- | "sensorId": <long>} | + | "sensorId":<long>, |
+ | "width":<uint>} | ||
</code> | </code> | ||
Строка 16: | Строка 17: | ||
| unitId | ID объекта | | | unitId | ID объекта | | ||
| sensorId | ID датчика, если 0 возвращает все датчики | | | sensorId | ID датчика, если 0 возвращает все датчики | | ||
+ | | width | количество элементов, которые должны вернуться, используется агрегирование (см. ниже), опциональный | | ||
+ | |||
+ | :!: Если source указан, то и unitId обязательно должен быть указан. Если source НЕ указан, впишите в unitId любое значение (оно не используется) -- сообщения будут браться прямо из message loader. | ||
+ | |||
+ | ===== Объяснение параметра width ===== | ||
+ | |||
+ | Когда нужно получить фиксированное количество значений датчика, причем уже агрегированныx (т.е. предобработанныx), тогда следует использовать параметр **width**. Например, можно получать обработанные данные для создания и зума графика.\\ | ||
+ | Логика работы функциональности следующая:\\ | ||
+ | 1. система находит все сообщения, попавшие в запрашиваемый интервал;\\ | ||
+ | 2. затем делит весь интервал на **width** подинтервалов;\\ | ||
+ | 3. на каждом таком подинтервале система находит самое первое значение датчика (**left**), последнее значение (**right**), минимальное значение (**bottom**) и максимальное значение (**top**). Указанные данные попадут в финальный ответ сервера. | ||
===== Возвращаемый результат ===== | ===== Возвращаемый результат ===== | ||
Строка 26: | Строка 38: | ||
] | ] | ||
</code> | </code> | ||
+ | |||
+ | Если указан параметр **width**, то ответ будет таким: | ||
+ | <code=javascript> | ||
+ | [ | ||
+ | [ | ||
+ | { | ||
+ | "name":<sensor_name>, | ||
+ | "data":[ | ||
+ | { | ||
+ | "left":[<unix_time1>,<value1>], | ||
+ | "right":[<unix_time2>,<value2>], | ||
+ | "bottom":[<unix_time3>,<value3>], | ||
+ | "top":[<unix_time4>,<value4>] | ||
+ | }, | ||
+ | ... | ||
+ | ] | ||
+ | }, | ||
+ | ... | ||
+ | ] | ||
+ | ] | ||
+ | </code> | ||
+ | где **<sensor_name>** -- имя датчика, | ||
+ | \\ **<unix_timeN>** -- UNIX-время сообщения, | ||
+ | \\ **valueN** -- значение датчика в сообщении, | ||
+ | \\ **left** -- начальное значение датчика в подинтервале и его время, | ||
+ | \\ **right** -- конечное значение датчика и время, | ||
+ | \\ **bottom** -- наименьшее значение датчика и время, | ||
+ | \\ **top** -- наибольшее значение датчика и время. |
|