Exemplos de uso do controle de parâmetro bit a bit

Alguns dispositivos permitem transmitir dados do usuário. No Wialon, esses dados são registrados por padrão como números inteiros sem sinal, independentemente da forma como são enviados pelo dispositivo. Para que os relatórios e as mensagens no Wialon exibam os “valores claros”, ou seja, os valores exatamente como são enviados pelo dispositivo, é possível usar o método de controle de parâmetro bit a bit. Este guia descreve três exemplos de uso desse método para trabalhar com os dados de origem.

Para mais informações, consulte o artigo especializado Sensors: Working with bits.

Exemplo 1

Considere o caso em que uma unidade envia dados, por exemplo, no parâmetro user_d1, como dois números inteiros sem sinal de dois bytes. No Wialon, esses dados são registrados como user_d1=2646793773.

  1. Converta o número recebido no Wialon para o sistema binário:

    264679377310011101110000101101111000101101

    No Wialon, os bits são contados a partir de um.

  2. Divida o número resultante em dois (de acordo com a contagem de números de dois bytes):

    1101111000101101 e 1001110111000010

  3. Crie um sensor personalizado numeral_1 nas propriedades da unidade no Wialon. No campo Parâmetro, especifique a seguinte fórmula:

    Copied!
    user_d1:1*const1+ user_d1:2*const2+ user_d1:3*const4+ user_d1:4*const8+ user_d1:5*const16+ user_d1:6*const32+ user_d1:7*const64+ user_d1:8*const128+ user_d1:9*const256+ user_d1:10*const512+ user_d1:11*const1024+ user_d1:12*const2048+ user_d1:13*const4096+ user_d1:14*const8192+ user_d1:15*const16384+ user_d1:16*const32768
    

  4. Crie um sensor personalizado numeral_2. No campo Parâmetro, especifique a seguinte fórmula:

    Copied!
    user_d1:17*const1+ user_d1:18*const2+ user_d1:19*const4+ user_d1:20*const8+ user_d1:21*const16+ user_d1:22*const32+ user_d1:23*const64+ user_d1:24*const128+ user_d1:25*const256+ user_d1:26*const512+ user_d1:27*const1024+ user_d1:28*const2048+ user_d1:29*const4096+ user_d1:30*const8192+ user_d1:31*const16384+ user_d1:32*const32768
    

Como resultado, os relatórios e as mensagens no Wialon exibem os valores de dois sensores de dois bytes (numeral_1=56877 e numeral_2=40386) em vez de user_d1=2646793773.

Exemplo 2

Neste exemplo, considere o caso em que uma unidade envia dados como um número de ponto flutuante (float). No Wialon, os dados são registrados como user_d3=1017282565.

  1. Converta o número recebido no Wialon para o sistema binário:

1017282565111100101000101000000000000101

  1. Crie um sensor personalizado float nas propriedades da unidade no Wialon. No campo Parâmetro, especifique a seguinte fórmula:

    Copied!
    const-1^user_d3:32*const2^((user_d3:24*const1+user_d3:25*const2+user_d3:26*const4+user_d3:27*const8+user_d3:28*const16+user_d3:29*const32+user_d3:30*const64+user_d3:31*const128)-127)*(const1+(user_d3:1*const1+user_d3:2*const2+user_d3:3*const4+user_d3:4*const8+user_d3:5*const16+user_d3:6*const32+user_d3:7*const64+user_d3:8*const128+user_d3:9*const256+user_d3:10*const512+user_d3:11*const1024+user_d3:12*const2048+user_d3:13*const4096+user_d3:14*const8192+user_d3:15*const16384+user_d3:16*const32768+user_d3:17*const65536+user_d3:18*const131072+user_d3:19*const262144+user_d3:20*const524288+user_d3:21*const1048576+user_d3:22*const2097152+user_d3:23*const4194304)/const8388608)
    

    A fórmula do parâmetro do sensor é criada com base na fórmula de conversão para o formato IEEE 754 de 32 bits:

    F=(-1)S2(E-127)(1+M/223)

Como resultado, o Wialon exibe os valores do sensor float em vez de user_d3=1017282565.

Exemplo 3

Considere o caso do dispositivo Teltonika FMT100, em que o parâmetro io_258 registra os valores do acelerômetro em três eixos quando os valores especificados no dispositivo são excedidos. Os dados desse parâmetro são úteis no trabalho com o aplicativo Eco Driving. No Wialon, os dados são registrados como io_258=932034904003. Os valores devem ser convertidos em g.

A imagem abaixo mostra a estrutura do parâmetro.

Os valores nos eixos têm sinal. No Eco Driving, são usados apenas os valores dos eixos X e Y. No eixo X, dependendo do sinal, são determinadas a aceleração e a frenagem. No eixo Y, é determinada a aceleração transversal, que será usada como valor absoluto (módulo), pois o sinal (esquerda/direita) não é considerado no Eco Driving.

  1. Crie um sensor personalizado Accel_MAX nas propriedades da unidade no Wialon. No campo Parâmetro, especifique a seguinte fórmula:

    Copied!
    (((io_258:48*const32768)-(io_258:33*const1+io_258:34*const2+io_258:35*const4+io_258:36*const8+io_258:37*const16+io_258:38*const32+io_258:39*const64+io_258:40*const128+io_258:41*const256+io_258:42*const512+io_258:43*const1024+io_258:44*const2048+io_258:45*const4096+io_258:46*const8192+io_258:47*const16384))*io_258:48)/const1000
    

  2. Crie um sensor personalizado Brk_MAX. No campo Parâmetro, especifique a seguinte fórmula:

    Copied!
    ((-(io_258:33*const1+io_258:34*const2+io_258:35*const4+io_258:36*const8+io_258:37*const16+io_258:38*const32+io_258:39*const64+io_258:40*const128+io_258:41*const256+io_258:42*const512+io_258:43*const1024+io_258:44*const2048+io_258:45*const4096+io_258:46*const8192+io_258:47*const16384))*(io_258:48-const1))/const1000
    

  3. Crie um sensor personalizado Crn_MAX. No campo Parâmetro, especifique a seguinte fórmula:

    Copied!
    (-(io_258:17*const1+io_258:18*const2+io_258:19*const4+io_258:20*const8+io_258:21*const16+io_258:22*const32+io_258:23*const64+io_258:24*const128+io_258:25*const256+io_258:26*const512+io_258:27*const1024+io_258:28*const2048+io_258:29*const4096+io_258:30*const8192+io_258:31*const16384))*(io_258:32-const1))/const1000+(((io_258:32*const32768)-(io_258:17*const1+io_258:18*const2+io_258:19*const4+io_258:20*const8+io_258:21*const16+io_258:22*const32+io_258:23*const64+io_258:24*const128+io_258:25*const256+io_258:26*const512+io_258:27*const1024+io_258:28*const2048+io_258:29*const4096+io_258:30*const8192+io_258:31*const16384))*io_258:32)/const1000
    

    Dois bytes são reservados para o eixo Y. Os números dos bits no Wialon vão de 17 a 32. Como são considerados os valores em módulo (absolutos), a fórmula é um pouco mais longa que as anteriores.

Os exemplos apresentados mostram que a área de aplicação do controle bit a bit não se limita ao controle de um bit específico. Trata-se de uma ferramenta abrangente que permite criar sensores personalizados no Wialon. Você mesmo pode formular a lógica e o cálculo desses sensores para cumprir as tarefas mais desafiadoras.

Caso encontre um erro no texto, selecione-o e aperte Ctrl+Enter.