Содержание

Датчики: создание, редактирование и удаление

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

svc=unit/update_sensor&params={"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:

  1. если флаг не указан: граница применяется к сырым данным (в случае с ДУТ могут быть проблемы с указанием границ к сырым данным);
  2. если флаг указан: граница будет применена к данным, полученным после преобразования.

Типы валидации:

Тип Описание
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 расход по нормам

Параметры "fuel params" для ДУТ

«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»

 "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
]