Параметр является обязательным свойством датчика. Как правило, на основе данных, приходящих в параметре, и базируется работа датчика.
Параметры могут иметь самые разные наименования, которые закладываются в конфигурации оборудования — например, param199, param240, TEMP, pwr_int, gsm, can6 и многие другие. Как правило, узнать, какие параметры используются и за что они отвечают, можно в спецификации оборудования. Также можно в панели сообщений запросить сообщения от объекта и в соответствующей графе просмотреть доступные параметры.
Параметры из последнего сообщения объекта доступны для выбора в выпадающем списке при добавлении или редактировании датчика. Но даже если параметр отсутствует в выпадающем списке, его все равно можно ввести вручную.
Один и тот же параметр может использоваться для создания любого количества датчиков. Максимально разрешенное количество датчиков можно посмотреть в настройках пользователя на вкладке «Учетная запись».
Некоторые параметры определены в системе по умолчанию и подходят практически для любого типа оборудования:
speed | скорость движения |
---|---|
altitude | высота над уровнем моря |
sats | количество спутников |
course | курс (направление движения) |
lat | географическая широта |
lon | географическая долгота |
time | UNIX-время сообщения |
Примечание.
Некоторые редкие типы оборудования могут не поддерживать какие-либо из этих параметров — например, высоту или скорость.
В системе зарезервировано 32 цифровых входа и выхода. Они задаются следующим образом:
inN | цифровой вход, где N — номер входа |
---|---|
outN | цифровой выход, где N — номер выхода |
adcN | аналоговый вход, где N — номер входа |
Например, adc8 — это параметр, фиксирующий значения с восьмого аналогового входа.
Обычно данные по цифровым входам/выходам представлены в сообщениях в следующем формате: I/O = 0/0, где I — вход (input), O — выход (output). Если I/O = 0/0, все биты (входы/выходы) не активны. Если что-либо из этого не 0, значит, какой-то вход (I) или выход (O) активирован. Чтобы определить, какой именно, нужно шестнадцатеричное число преобразовать в номер бита.
Допустим, в месте, где было включено зажигание, мы получили сообщение с параметром I/O = 10/0. Чтобы получить отсюда номер бита (входа), в котором отображается значение датчика, в калькуляторе в режиме шестнадцатеричных чисел (HEX) нужно ввести полученное значение, то есть 10, а затем переключиться в двоичный режим (BIN). Мы получим новое число — 10000. Теперь необходимо посчитать, в какой позиции появилась единица. Счет необходимо вести справа налево. В нашем случае единица стоит в пятой позиции, значит, датчик зажигания подключен к пятому порту, а так как изменившаяся цифра стоит до дроби (I/O), следовательно, речь идет о входе. Таким образом, мы получаем наименование параметра — in5 (цифровой вход 5).
Для датчика также допускается указание наименования параметра в виде «in» или «out» для обозначения суммы всех входов и выходов, соответственно.
Кроме того, можно создать виртуальный датчик на основе параметра типа constN, где N — любое число. Датчик, созданный по этому параметру, всегда возвращает N. Например, const10, const-8.5.
Такой датчик может использоваться как самостоятельно (удобен в графиках для визуального обозначения какой-то критической отметки), так и для создания виртуальных датчиков при помощи системы валидации, а также в выражениях.
Параметр при конфигурации датчика можно задавать составным выражением, где могут использоваться:
+ | сложение |
---|---|
− | вычитание |
∗ | умножение |
/ | деление |
^ | возведение в степень |
( ) | скобки приоритета |
| | проверка наличия значения |
: | операция преобразования |
Например, ^const2 — возвести в квадрат, ^const0.5 — извлечь квадратный корень.
Примечание.
Параметры из предыдущего сообщения недоступны в уведомлениях, а также при трассировке графиков.
Благодаря выражениям можно создавать самые разнообразные датчики, отвечающие любым потребностям и поставленным задачам.
Параметр для датчика скорости по координатам может выглядеть так:
((lat-#lat)^const2+(lon-#lon)^const2)^const0.5/(time-#time)*const200000
Расшифровка:
Скорость вычисляется по формуле «расстояние, деленное на время». Для вычисления расстояния применяется теорема Пифагора. Получается разница широты в соседних сообщениях, возведенная в квадрат, плюс разница долготы в соседних сообщениях, возведенная в квадрат, и из этой суммы извлекается квадратный корень. Полученный результат и есть расстояние (правда, в градусах). Оно делится на разницу времени в соседних сообщениях. Таким образом, получается расстояние, выраженное в градусах в секунду. Для перевода в привычные километры в час нужно применить коэффициент. Он может быть разным для различных мест. В примере выше приведен коэффициент для Москвы, который равен 200000.
Если при этом имеется датчик зажигания, то параметр можно задать так:
((lat-#lat)^const2+(lon-#lon)^const2)^const0.5/(time-#time)*const200000*[Имя датчика зажигания]
Для получения данных о реальных моточасах нужно создать два датчика:
Создаем датчик с типом «Относительные моточасы» и параметром:
(time-#time)*[Имя датчика коэффициента]/const3600
Т.е. параметр представляет собой разницу во времени между соседними сообщениями, умноженную на коэффициент интенсивности работы и разделенную на 3600. Деление на 3600 необходимо, чтобы перевести секунды в часы.
Датчик коэффициента, который будет определять интенсивность работы оборудования в зависимости от оборотов двигателя, создаем по следующей схеме:
Сначала создаем датчик, с помощью которого будем высчитывать коэффициент моточасов:
Допустим, параметр param1 шлет значение оборотов двигателя. Тогда параметр датчика коэффициента будет такой:
(param1+#param1)/const2
Т.е. этот параметр представляет собой среднее арифметическое оборотов двигателя за интервал между двумя соседними сообщениями.
Чтобы получить из оборотов коэффициент, нужно применить таблицу преобразований:
Не забудьте указать в настройках объекта, что расчет моточасов будет производиться по датчику относительных моточасов (вкладка «Основное»).
На автомобиле установлено оборудование, которое присылает какой-либо параметр (например, in1). Затем данное оборудование сломалось и было установлено новое. Новое оборудование присылает те же самые данные только в другом параметре (например, in2). Чтобы исключить потерю данных при генерации отчета, в поле ввода параметров при создании датчика необходимо использовать проверку наличия значения. Старое оборудование отработало на автомобиле в течение декабря, новое — в течение января, а отчет необходимо получить за два этих месяца. Тогда, если при вводе параметров была применена проверка наличия значения (указано в параметрах датчика «in1|in2»), то система будет брать значение из параметра «in1», а если значение «in1» невалидно (например, оборудование отсутствует), то из параметра «in2». Другими словами, при использовании проверки наличия значения системой берется в расчет первое валидное значение параметра.
in1|in2
Как правило, данные, присылаемые параметром, являются числовыми, однако в некоторых случаях устройство может присылать в параметре текст. Это может быть, например, название какого-либо статуса (служебное/личное), состояние (свободен/занят, on/off), время, прошедшее с какого-то события, и др.
Датчики с текстовыми параметрами не требуют настройки таблиц расчета. Текстовые данные отображаются в том виде, в котором они пришли. Однако область применения текстовых данных ограничена: они могут быть отображены только в дополнительной информации об объекте, в панели сообщений, в проигрывателе треков, а также при трассировке трека.
Операция преобразования может применяться только к параметрам, поступающим непосредственно от оборудования. Случаи применения описаны ниже.
Побитовый контроль параметра
Побитовый контроль параметра предполагает возможность контролировать не весь параметр в целом, а конкретный бит. Например, для того, чтобы контролировать третий бит параметра param199 после его названия нужно поставить двоеточие и номер бита.
param199:3
Это удобно, если устройство через один параметр показывает множество разнообразных данных: например, первый бит отображает состояние сигнализации (вкл/выкл), второй — состояние водительской двери (открыта/закрыта), третий — состояние фар и т.д. Таким образом, при помощи побитового контроля параметра можно на основе одного параметра создать несколько различных датчиков.
Примечание.
Параметры типа double при побитовом контроле автоматически приводятся к int, после чего выделяется бит.
Советуем напрямую не обращаться к биту выше 53-его. В случае если это необходимо, можно придерживаться следующей схемы:
Преобразование текстовых параметров
Если в формуле датчика встречается текстовый параметр, то он преобразуется в 64-битное целое число. Указать систему счисления можно через двоеточие (по умолчанию считается в десятичной системе). Допустим, в параметр «text_param» пришло значение «100», тогда
text_param = 100 text_param:16 = 256 text_param:2 = 4
Определение номера дня в году
Для определения номера дня в году (относительно 1 января) необходимо указать после двоеточия «d». Например, для 28 марта 2017 в 11:00:00 (UTC) UNIX-время соответствует значению «1490698800». Следовательно,
time = 1490698800 time:d = 87
|