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.
-
Converta o número recebido no Wialon para o sistema binário:
2646793773→10011101110000101101111000101101No Wialon, os bits são contados a partir de um.
-
Divida o número resultante em dois (de acordo com a contagem de números de dois bytes):
1101111000101101e1001110111000010 -
Crie um sensor personalizado
numeral_1nas propriedades da unidade no Wialon. No campo Parâmetro, especifique a seguinte fórmula: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
-
Crie um sensor personalizado
numeral_2. No campo Parâmetro, especifique a seguinte fórmula: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.
- Converta o número recebido no Wialon para o sistema binário:
1017282565 → 111100101000101000000000000101
-
Crie um sensor personalizado
floatnas propriedades da unidade no Wialon. No campo Parâmetro, especifique a seguinte fórmula: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.
-
Crie um sensor personalizado
Accel_MAXnas propriedades da unidade no Wialon. No campo Parâmetro, especifique a seguinte fórmula:(((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
-
Crie um sensor personalizado
Brk_MAX. No campo Parâmetro, especifique a seguinte fórmula:((-(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
-
Crie um sensor personalizado
Crn_MAX. No campo Parâmetro, especifique a seguinte fórmula:(-(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.