Fleetrun
Hecterra
NimBus
Outras aplicativos
Wialon for Android/iOS
Logistics
Wialon Local
Wialon Hosting
WiaTag
Configurator
LeaseControl
pt
Conteúdo
Conversão de parâmetros
  • sensors
  • sensor_parameters

Os parâmetros recebidos diretamente do dispositivo podem ser convertidos. Para isso, deve-se especificar a operação de conversão no campo Parâmetro nas propriedades do sensor. As situações em que esta operação pode ser aplicada são descritas a seguir.

Controle de parâmetro bit a bit

O controle de parâmetro bit a bit permite controlar um bit específico de um parâmetro. Esta operação é utilizada se o dispositivo apresenta dados diferentes em um parâmetro: o primeiro bit pode corresponder ao estado do alarme (ligado/desligado), o segundo ao estado da porta do motorista (aberta/fechada), o terceiro ao estado dos faróis, etc.

No sistema de monitoramento, a numeração de bits começa em 1. Para controlar, por exemplo, o terceiro bit do parâmetro param199, digite dois pontos e o número do bit após seu nome:

param199:3

Desta forma é possível criar vários sensores com base em um parâmetro para controlar diferentes bits.

Os parâmetros do tipo double são convertidos automaticamente ao tipo int, após o qual um bit é recuperado.

O controle de parâmetros bit a bit também pode ser aplicado a valores de parâmetros de 64 bits, mas considere a seguinte particularidade. Ao exibir um número com o 64º bit preenchido, esse bit é considerado como um sinal de menos para o número contido nos 63 bits restantes. Assim, os valores de parâmetro maiores que (2^63 - 1) = 9223372036854775807 são exibidos como negativos.

Conversão de parâmetros de texto

Os valores dos parâmetros de texto podem ser convertidos em números inteiros decimais. Por exemplo, se um sensor tiver um parâmetro de expressão que contenha um parâmetro de texto, o valor de texto deverá ser convertido em numérico para obter o resultado correto. Para a conversão, use o operador : (dois pontos) após o nome do parâmetro e especifique o sistema numérico do qual deseja converter o valor original em decimal. O Wialon oferece suporte à conversão dos sistemas binário, octal, decimal e hexadecimal.

Sistema numérico do valor original

Fórmula de conversão para o sistema decimal

Explicação

Binário

text_param:2


Use essa fórmula para tratar os valores de parâmetros de texto como binários e convertê-los em decimais. Por exemplo, se o valor original for 100 (em binário), o valor final será 4 (em decimal).

Octal

text_param:8

Use esta fórmula para tratar os valores de parâmetros de texto como octais e convertê-los em decimais. Por exemplo, se o valor original for 100 (em octal), o valor final será 64 (em decimal).

Decimal

text_param:10

Use essa fórmula para tratar os valores de parâmetros de texto como decimais e gerá-los como tal. Por exemplo, se o valor original for 100 (em decimal), o valor final será 100.

Hexadecimal

text_param:16

Use essa fórmula para tratar os valores de parâmetros de texto como hexadecimais e convertê-los em decimais. Por exemplo, se o valor original for 100 (em hexadecimal), o valor final será 256 (em decimal).

Determinação do número do dia em um ano

Você pode converter a hora UNIX da mensagem para o número do dia relativo a 1º de janeiro. Para isso, crie um sensor personalizado com o parâmetro time:d.

Por exemplo, para 11:00:00 (UTC) de 28 de março de 2017, o horário do UNIX é 1490698800. Portanto,

time = 1490698800

time:d = 87

Conversão dos parâmetros dos sensores dos motoristas, reboques e passageiros

A conversão de valores de parâmetros numéricos e de texto está disponível para os tipos de sensores Vinculação de motoristaVinculação de reboque e Sensor de passageiro. Para converter o valor de um parâmetro é necessário especificar uma expressão no campo Parâmetro das propriedades do sensor, que pode incluir funções e operações matemáticas.

As funções só podem ser aplicadas a valores de texto, enquanto as operações matemáticas se aplicam a valores numéricos.

Os valores convertidos são usados da seguinte forma:

Funções

As funções aplicam-se apenas aos valores de texto dos parâmetros. O que cada uma delas faz está descrito na tabela abaixo, onde param é o nome do parâmetro no qual o dispositivo envia o valor do texto.


Função

Descrição

Exemplo do valor original

Exemplo do valor após a função

ltrim(param) ou ltrim(param,'0') 

Corta todos os zeros à esquerda. Por padrão, '0' é cortado, mas também pode ser aplicado a outros caracteres. O caractere a ser removido deve ser especificado entre aspas simples.

0000A

A

rtrim(param) ou rtrim(param,'0')

Corta todos os zeros à direita. Por padrão, '0' é cortado, mas também pode ser aplicado a outros caracteres. O caractere a ser removido deve ser especificado entre aspas simples.

A0000

A

lower(param)

Converte caracteres em letras minúsculas.

A

a

upper(param)

Converte caracteres em letras maiúsculas.

a

A

reverse(param)

Inverte a ordem dos caracteres.

A1234

4321A

reverseb(param)

Inverte a ordem dos caracteres em dois. Se uma string tiver um número ímpar de caracteres, primeiro ela será anexada com um zero à esquerda e, em seguida, invertida.

C1B2A

2A1B0C

lfill(param,5,'0')

Adiciona o caractere especificado (parâmetro de terceira função) à esquerda até que a string contenha o número necessário de caracteres (parâmetro de segunda função).

O caractere adicionado deve ser especificado entre aspas simples.

A

0000A

rfill(param,5,'0')

Adiciona o caractere especificado (terceiro parâmetro de função) à direita até que a string contenha o número necessário de caracteres (segundo parâmetro de função).

O caractere adicionado deve ser especificado entre aspas simples.

A

A0000

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

Altera a sequência dos caracteres. Os caracteres são organizados na ordem especificada após o nome do parâmetro. Se um índice inexistente for especificado, "0" será colocado no lugar desse caractere.

Os índices são contados da esquerda para a direita, começando em 0.

0C1B2A

1BA2C00

hex(param)

Converte do sistema decimal para o sistema hexadecimal.

10

a

dec(param)

Converte do sistema hexadecimal para o sistema decimal.

00A

10

hextoascii(param)

Converte do sistema hexadecimal para ASCII.

3A29

:)

concat(param,substr(param,1,4),'00')

Une as strings. Mais de duas strings podem ser unidas.

No exemplo, ela é usado junto com a função substr (veja abaixo), ou seja, uma parte (substring) extraída da string de parâmetro é unida à mesma string do parâmetro. Dois caracteres '00' também são adicionados.

Os caracteres devem ser especificados entre aspas simples.


0C1B2AD35E

0C1B2AD35EC1B200

substr(param,1,4)

Extrai caracteres especificados do valor do parâmetro. Os caracteres extraídos formam uma substring.

Existem 3 parâmetros obrigatórios para esta função:

  1. string original,
  2. índice a partir do qual a substring pesquisada começa,
  3. comprimento da substring pesquisada, isto é. quantos caracteres devem ser extraídos.

Os índices são contados da esquerda para a direita, começando em 0.

A substring extraída pode ser combinada com outra string usando a função concat como no exemplo acima.

0C1B2AD35E

C1B2

len(param)

Retorna um número que especifica o número de caracteres na string. Sendo um número, é possível então realizar operações matemáticas com o resultado.

Por exemplo, a expressão substr(param,len(param)-4,4) usa a expressão len(param)-4 como índice. Isso significa que a substring será contada a partir do quarto caractere a partir do final.

0C1B2AD35E

10


Operações matemáticas

Operações matemáticas de adição (+) e subtração (-) só são possíveis com valores numéricos. Com valores de texto elas só são possíveis após a conversão em valores numéricos (veja o exemplo para a função len acima).


Caso um dos elementos numa expressão com uma operação matemática não for numérico, o resultado será 0.

Caso encontre um erro no texto, selecione-o e aperte Ctrl+Enter.
Obrigado pelo seu feedback!
Reportar um erro
Texto com erro Comentário
Maximum 500 characters