Чтобы создавать, изменять и удалять датчики, нужно использовать команду unit/update_sensor:
svc=unit/update_sensor¶ms={"itemId":<long>, "id":<long>, "callMode":<text>, "unlink":<uint>, "n":<text>, "t":<text>, "d":<text>, "m":<text>, "p":<text>, "f":<uint>, "c":<text>, "vt":<uint>, "vs":<long>, "tbl":[ { "x":<double>, "a":<double>, "b":<double> } ]}
Название | Описание |
---|---|
itemId | ID объекта |
id | ID датчика (0 для создания) |
callMode | действие: создание, редактирование, удаление (create, update, delete) |
unlink | Удалять связи с другими датчиками и параметрами объекта при удалении (1 - да(по умолчанию), 0 - нет) |
Параметры, обязательные только при создании и редактировании | |
n | название |
t | тип (см. ниже) |
d | описание |
m | единица измерения |
p | параметр |
f | флаги датчика (см. ниже) |
c | конфигурация (см. ниже) |
vt | тип валидации (см. ниже) |
vs | ID валидирующего датчика |
tbl | таблица расчета |
Типы датчиков:
Здесь можно прочитать о типах датчиков подробно.
Флаги датчика:
Флаг | Описание |
---|---|
0x01 | Тип счетчика: мгновенный |
0x02 | Тип счетчика: дифференциальный |
0x03 | Тип счетчика: дифференциальный с переполнением (2 байта) |
0x04 | Тип счетчика: переключатель из ВЫКЛ в ВКЛ |
0x05 | Тип счетчика: Переключатель из ВКЛ в ВЫКЛ |
0x20 | включить опцию «С переполнением» (см. ниже) |
0x40 | Применять нижнюю/верхнюю границы ПОСЛЕ расчета (см. ниже) |
Уточнение для 0x20: - актуально для следующих датчиков:
Если флаг 0x20 не задан, то датчик работает так: дельта изменения будет равна abs(V2 - V1), где V2 – новое сообщение, V1 – предыдущее, abs() – модуль числа; если флаг задан, то при V2 < V1 дельтой будет считаться V2 (т.е. V1 = 0).
Уточнение для 0x40:
Типы валидации:
Тип | Описание |
---|---|
0x01 | Логическое И |
0x02 | Логическое ИЛИ |
0x03 | Математическое И |
0x04 | Математическое ИЛИ |
0x05 | Суммировать |
0x06 | Вычесть валидатор из датчика |
0x07 | Вычесть датчик из валидатора |
0x08 | Перемножить |
0x09 | Делить датчик на валидатор |
0x0A | Делить валидатор на датчик |
0x0B | Проверка на неравенство нулю |
0x0C | Заменять датчик валидатором в случае ошибки |
Параметры конфигурации датчика:
Замечание: JSON-объект передается как строка, потому необходимо заключить его в кавычки, все двойные кавычки для ключей и значений необходимо экранировать (\«).
"{
\"act\":<bool>,
\"appear_in_popup\":<bool>,
\"ci\":<object>,
\"filter\":<long>,
\"mu\":<uint>,
\"pos\":<uint>,
\"show_time\":<bool>,
\"unbound_code\":<text>,
\"validate_driver_unbound\":<bool>,
\"timeout\":<uint>,
\"uct\":<bool>,
\"lower_bound\":<double>,
\"upper_bound\":<double>
}"
Параметр | Описание |
---|---|
act | опция "Последнее сообщение": 0 - опция включена, 1 - опция выключена (см. дополнительную информацию ниже) |
appear_in_popup | галочка "Видимость": false - снять, true - поставить |
ci | пользовательские интервалы |
filter | переопределить степень фильтрации |
mu | единицы измерения: 0 - si, 1 - us, 2 - имперская, 3 - метрическая с галлонами |
pos | положение в списке Датчиков, счет от 1 |
show_time | галочка "Время": false - снять, true - поставить |
unbound_code | код снятия |
validate_driver_unbound | валидировать снятие, 0 - нет, 1 - да |
timeout | таймаут, секунды |
uct | опция "Переполнение по сырым данным": 0 - выкл, 1 - вкл |
lower_bound | опция "Нижняя граница" |
upper_bound | опция "Верхняя граница" |
fuel_params | настройки расхода топлива по ДУТ - см ниже |
engine_sensors | для датчика типа ДУТ можно указать id Датчика зажигания (моточасов)-используется для расчета расхода топлива(сливов) |
engine_efficiency | для датчика зажигания(моточасов) можно указать id ДПРД |
Уточнение для «act»: для этой опции использована инверсивная логика: выбранная галочка (значение 0) – это исторически старая логика, а выключенная опция (значение 1) – это более новая логика (данные используются во всплывающих подсказках, удобны в ситуациях, когда некоторые важные параметры редко приходят). Старая логика всё так же активна по умолчанию.
Уточнение для «filter»:
- опция позволяет переопределить степень фильтрации (ширину окна медианной фильтрации), валидна для датчиков:
Пример:
"c":"{\"appear_in_popup\":true,\"pos\":1,\"ci\":{}}"
Уточнение по «calc_fuel», «fuel_params», engine_sensors, engine_efficiency: новые опции могут быть использованы опционально (если работать только через api), и старые запросы и логика по прежнему актуальны (но до тех пор пока не были выполнены изменения в конфигурации датчиков)
Параметр «calc_fuel» устанавливает флаг расчета расхода топлива для каждого типа датчика соответственно :
Флаг | Описание |
---|---|
0x0 | не использовать расчет топлива в отчетах |
0x01 | расход по расчету |
0x02 | датчики уровня топлива |
0x04 | заменять ошибочные значения датчиков уровня топлива рассчитанными математически |
0x08 | датчики абсолютного расхода топлива |
0x10 | импульсные датчики |
0x20 | датчики мгновенного расхода топлива |
0x40 | расход по нормам |
«flags» - флаги устанавливают остальные настройки расхода топлива по ДУТ :
Значение | Опция |
---|---|
2 | фильтрация включена, значение в «filterQuality» |
8 | поиск заправок только при остановке, таймаут в «extraFillingTimeout» |
64 | рассчитывать объем заправки без учета фильтрации |
512 | расчет заправки по времени |
128 | рассчитывать объем слива без учета фильтрации |
256 | поиск сливов в движении |
1024 | расчет сливов по времени |
2048 | расчет расхода топлива по времени |
4069 | заменять ошибочные значения рассчитанными математически |
Пример новых параметров в конфигурации: ДУТ «fuel_params»
"fuel_params":{\"flags\":1728,\"ignoreStayTimeout\":20,\"minFillingVolume\":21,\"minTheftTimeout\":0,\"minTheftVolume\":15,\"filterQuality\":0,\"fillingsJoinInterval\":300,\"theftsJoinInterval\":300,\"extraFillingTimeout\":0}.
ДМРТ «fuel_params»
"fuel_params":{\"maxImpulses\":10, \"skipZero\":0}
Специальных настроек нет, «calc_fuel» - флаг для включения (нулевое значение - опция выключена) опции "Рассчитывать расход топлива по датчику":
Пример конфигурации ДМРТ
c: "{"act":1,"appear_in_popup":false,"calc_fuel":8,"ci":{},"cm":1,"fuel_params":{"flags":0},"mu":0,"pos":24,"show_time":false,"timeout":0}"
Расход топлива по расчету (Расход топлива: расход по расчету - старый метод) использует настройки датчиков моточасов (датчик зажигания и датчики двигателя)
При создании и редактировании:
[ <long>, /* ID датчика */ { "id":<long>, /* ID датчика */ "n":<text>, /* название */ "t":<text>, /* тип */ "d":<text>, /* описание */ "m":<text>, /* единица измерения */ "p":<text>, /* параметр */ "f":<uint>, /* флаги датчика */ "c":<object>, /* конфигурация */ "vt":<int>, /* тип валидации */ "vs":<long>, /* ID валидирующего датчика */ "tbl":[ /* таблица расчета */ { /* параметры */ "x":<double>, "a":<double>, "b":<double> } ] } ]
При удалении:
[ <long>, /* ID датчика */ null ]
|