Преобразование параметров
Параметры, поступающие непосредственно от оборудования, можно преобразовывать. Для этого в поле Параметр свойств датчика необходимо указать операцию преобразования. Случаи ее применения описаны ниже.
Побитовый контроль параметра
Побитовый контроль параметра позволяет контролировать не весь параметр в целом, а конкретный бит. Эта операция используется, если устройство показывает разные данные через один параметр: первый бит может соответствовать состоянию сигнализации (вкл/выкл), второй — состоянию водительской двери (открыта/закрыта), третий — состоянию фар и т. д.
В системе мониторинга нумерация битов начинается с 1. Чтобы контролировать, например, третий бит параметра param199, после его названия необходимо поставить двоеточие и номер бита:
param199:3
Таким образом на основе одного параметра можно создать несколько датчиков для контроля разных битов.
Параметры типа double при побитовом контроле автоматически приводятся к типу int, после чего выделяется бит.</blockquoteПобитовый контроль также может применяться к 64-битовым значениям параметров, но учитывайте следующую особенность. При отображении числа с заполненным 64-ым битом этот бит расценивается системой как знак минус для числа, содержащегося в остальных 63 битах. Таким образом, значения параметра, большие чем (2^63 - 1) = 9223372036854775807, отображаются как отрицательные значения.Для дополнительной информации см. статью Датчики: работа с битами.
Преобразование текстовых параметров
Если для датчика указан параметр в виде выражения, в котором содержится текстовый параметр, то текстовое значение преобразуется в 53-битное целое число. По умолчанию исходное значение считается десятичным. Если это число из другой системы счисления, укажите ее после текстового параметра через двоеточие — и число автоматически преобразуется в десятичное. Например, если в параметре text_param пришло значение 100, то
text_param = 100 text_param:10 = 100 text_param:16 = 256 text_param:2 = 4
Определение номера дня в году
Unix-время сообщения можно преобразовать в номер дня в году относительно 1 января. Для этого необходимо создать произвольный датчик с параметром time:d.
Например, для 11:00:00 (UTC) 28 марта 2017 года UNIX-время соответствует значению 1490698800. Следовательно,
time = 1490698800 time:d = 87
Преобразование параметров датчиков водителей, прицепов и пассажиров
Для датчиков типов Назначение водителя, Назначение прицепа и Датчик пассажиров доступно преобразование текстовых и числовых значений параметров. Для этого в поле Параметр свойств датчика необходимо указать выражение, которое может включать функции и математические операции.
Функции могут применяться только к текстовым значениям, математические операции — к числовым.
Преобразованные значения используются:
- при срабатывании уведомлений о назначении водителей, прицепов или пассажиров;
- во всплывающей подсказке и расширенной информации объекта;
- в сообщениях с данными;
- в отчетах, например, в таблице Трассировка датчика в столбце Форматированное значение.
Функции
Функции применяются только к текстовым значениям параметров. В таблице ниже их описание, где param — имя параметра, в котором устройство отправляет текстовое значение.
Функция Описание Пример значения до Пример значения после ltrim(param) или ltrim(param,'0') Обрезает все нули слева. По умолчанию обрезается ‘0’, но можно применять и к другим символам.
Символ указывается в одиночных кавычках.
0000A A rtrim(param) или rtrim(param,'0') Обрезает все нули справа. По умолчанию обрезается ‘0’, но можно применять и к другим символам.
Символ указывается в одиночных кавычках.
A0000 A lower(param) Переводит символы в нижний регистр. A a upper(param) Переводит символы в верхний регистр. a A reverse(param) Меняет порядок символов на обратный. A1234 4321A reverseb(param) Меняет порядок символов на обратный по два. Если в строке нечетное количество символов, то сначала она дополняется ведущим нулем слева, а затем происходит перестановка. C1B2A 2A1B0C lfill(param,5,'0') Добавляет указанный символ (третий параметр функции) слева до тех пор, пока в строке не будет требуемое количество символов (второй параметр функции).
Добавляемый символ указывается в одиночных кавычках.
A 0000A rfill(param,5,'0')
Добавляет указанный символ (третий параметр функции) справа до тех пор, пока в строке не будет требуемое количество символов (второй параметр функции).
Добавляемый символ указывается в одиночных кавычках.
A A0000 sequence(param,2,3,5,4,1,0,1414) Изменяет порядок символов. Символы расставляются в порядке, указанном после имени параметра. Если указан несуществующий индекс (порядковый номер), то на месте этого символа подставляется 0.
Индексы считаются слева направо, начиная с 0.
0C1B2A 1BA2C00 hex(param) Переводит в шестнадцатеричную систему. 10 a dec(param) Переводит в десятичную систему. 00A 10 hextoascii(param) Переводит из шестнадцатеричной системы в ASCII. 3A29 :) concat(param,substr(param,1,4),'00') Склеивает строки. Можно склеивать более двух строк.
В приведенном примере используется вместе с функцией substr (см. ниже), то есть к строке параметра приклеивается часть (подстрока), извлеченная из этого же параметра. Также присоединяются символы ‘00’.
Символы указываются в одиночных кавычках.
0C1B2AD35E 0C1B2AD35EC1B200 substr(param,1,4) Выбирает определенные символы из значения параметра. Выбранные символы образуют подстроку.
Для функции указываются 3 обязательных параметра:
- исходная строка,
индекс (порядковый номер символа), с которого начинается искомая подстрока,
- длина искомой подстроки, то есть сколько символов должно быть извлечено.
Индексы считаются слева направо, начиная с 0.
Извлеченную подстроку можно присоединить к другой строке с помощью функции concat, как в примере выше.
0C1B2AD35E C1B2 len(param) Возвращает число, определяющее количество символов в строке. С результатом можно выполнять математические операции, так как оно является числом.
Например, в выражении substr(param,len(param)-4,4) в качестве индекса используется выражение len(param)-4. Она означает, что подстрока будет считаться с четвертого с конца символа.0C1B2AD35E 10 Математические операции
Математические операции сложения (+) и вычитания (-) возможны только с числовыми значениями, с текстовыми — только после их преобразования в числовые (см. пример для функции len выше).
Если в выражении с математической операцией один из элементов не является числовым, то результат не будет получен.