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

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

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

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

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

param199:3

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

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

Побитовый контроль также может применяться к 64-битовым значениям параметров, но учитывайте следующую особенность. При отображении числа с заполненным 64-ым битом этот бит расценивается системой как знак минус для числа, содержащегося в остальных 63 битах. Таким образом, значения параметра, большие чем (2^63 - 1) = 9223372036854775807, отображаются как отрицательные значения.

Для дополнительной информации см. статью Датчики: работа с битами.

Преобразование текстовых параметров

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


Система счисления исходного значения

Формула для преобразования в десятичную систему

Пояснение

Двоичная

text_param:2


Используйте эту формулу, чтобы значения текстового параметра считались двоичными и преобразовывались в десятичные. Например, если исходное значение 100, то итоговое значение 4.

Восьмеричная

text_param:8

Используйте эту формулу, чтобы значения текстового параметра считались восьмеричными и преобразовывались в десятичные. Например, если исходное значение 100, то итоговое значение 64.

Десятичная

text_param:10

Используйте эту формулу, чтобы значения текстового параметра считались десятичными и выводились в таком виде. Например, если исходное значение 100, то  итоговое значение тоже 100.

Шестнадцатеричная

text_param:16

Используйте эту формулу, чтобы значения текстового параметра считались шестнадцатеричными и преобразовывались в десятичные. Например, если исходное значение 100, то итоговое значение 256.

Определение номера дня в году

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 символов