Fleetrun
Hecterra
NimBus
Другие приложения
Wialon для Android/iOS
Logistics
Wialon Local
Wialon Hosting
WiaTag
Configurator
LeaseControl
Содержание
Преобразование параметров
  • sensors
  • sensor_parameters

Параметры, поступающие непосредственно от оборудования, можно преобразовывать. Для этого в поле  Параметр  свойств датчика необходимо указать операцию преобразования. Случаи ее применения описаны ниже.

Побитовый контроль параметра

Побитовый контроль параметра позволяет контролировать не весь параметр в целом, а конкретный бит. Эта операция используется, если устройство показывает разные данные через один параметр: первый бит может соответствовать состоянию сигнализации (вкл/выкл), второй — состоянию водительской двери (открыта/закрыта), третий — состоянию фар и т. д. 

Чтобы контролировать, например, третий бит параметра param199 , после его названия необходимо поставить двоеточие и номер бита:

param199:3

Таким образом на основе одного параметра можно создать несколько датчиков для контроля разных битов.

Параметры типа double при побитовом контроле автоматически приводятся к типу int , после чего выделяется бит.

Побитовый контроль также может применяться к 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’, но можно применять и к другим символам.

Символ указывается в одиночных кавычках.

0000AA
rtrim(param) или rtrim(param,'0')

Обрезает все нули справа. По умолчанию обрезается ‘0’, но можно применять и к другим символам.

Символ указывается в одиночных кавычках.

A0000A
lower(param)Переводит символы в нижний регистр.Aa
upper(param)Переводит символы в верхний регистр.aA
reverse(param)Меняет порядок символов на обратный. A12344321A
reverseb(param)Меняет порядок символов на обратный по два. Если в строке нечетное количество символов, то сначала она дополняется ведущим нулем слева, а затем происходит перестановка.C1B2A2A1B0C
lfill(param,5,'0')

Добавляет указанный символ (третий параметр функции) слева до тех пор, пока в строке не будет требуемое количество символов (второй параметр функции).

Добавляемый символ указывается в одиночных кавычках.

A0000A

rfill(param,5,'0')

Добавляет указанный символ (третий параметр функции) справа до тех пор, пока в строке не будет требуемое количество символов (второй параметр функции).

Добавляемый символ указывается в одиночных кавычках.

AA0000
sequence(param,2,3,5,4,1,0,1414)

Изменяет порядок символов. Символы расставляются в порядке, указанном после имени параметра. Если указан несуществующий индекс (порядковый номер), то на месте этого символа подставляется 0.

Индексы считаются слева направо, начиная с 0.

0C1B2A1BA2C00
hex(param)Переводит в шестнадцатеричную систему.10a
dec(param)Переводит в десятичную систему.00A10
hextoascii(param)Переводит из шестнадцатеричной системы в ASCII.3A29:)
concat(param,substr(param,1,4),'00')

Склеивает строки. Можно склеивать более двух строк. 

В приведенном примере используется вместе с функцией substr (см. ниже), то есть к строке параметра приклеивается часть (подстрока), извлеченная из этого же параметра. Также присоединяются символы ‘00’.

Символы указываются в одиночных кавычках.

0C1B2AD35E0C1B2AD35EC1B200
substr(param,1,4)

Выбирает определенные символы из значения параметра. Выбранные символы образуют подстроку.

Для функции указываются 3 обязательных параметра:

  1. исходная строка,
  2. индекс (порядковый номер символа), с которого начинается искомая подстрока, 

  3. длина искомой подстроки, то есть сколько символов должно быть извлечено.

Индексы считаются слева направо, начиная с 0.

Извлеченную подстроку можно присоединить к другой строке с помощью функции concat, как в примере выше.

0C1B2AD35EC1B2
len(param)

Возвращает число, определяющее количество символов в строке. С результатом можно выполнять математические операции, так как оно является числом.


Например, в выражении substr(param,len(param)-4,4) в качестве индекса используется выражение len(param)-4. Она означает, что подстрока будет считаться с четвертого с конца символа.
0C1B2AD35E10

Математическое операции

Математические операции сложения (+) и вычитания (-) возможны только с числовыми значениями, с текстовыми  —  только после их преобразования в числовые (см. пример для функции len выше).

Если в выражении с математической операцией один из элементов не является числовым, то результат не будет получен.



Если вы заметили ошибку в тексте, пожалуйста, выделите её и нажмите Ctrl+Enter.
Спасибо за ваш отзыв!
Сообщить об ошибке
Текст с ошибкой Комментарий
Максимум 500 символов