Exemples d’utilisation du contrôle des paramètres au niveau de bit
Certains appareils permettent de transmettre des données utilisateur. Dans Wialon, ces données sont enregistrées par défaut sous forme d’entiers non signés, quelle que soit la forme sous laquelle l’appareil les envoie. Pour que les rapports et les messages de Wialon affichent des « valeurs claires », c’est-à-dire les valeurs telles qu’elles sont envoyées par l’appareil, vous pouvez utiliser la méthode du contrôle des paramètres au niveau de bit. Ce guide présente trois exemples d’utilisation de cette méthode pour traiter les données sources.
Pour en savoir plus, consultez l’article d’expert Sensors: Working with bits.
Exemple 1
Supposons qu’une unité envoie des données, par exemple dans le paramètre user_d1, sous la forme de deux entiers non signés de deux octets. Dans Wialon, ces données sont enregistrées sous la forme user_d1=2646793773.
-
Convertissez en binaire le nombre reçu dans Wialon :
2646793773→10011101110000101101111000101101Dans Wialon, les bits sont numérotés à partir de un.
-
Divisez le nombre obtenu en deux (selon le nombre d’entiers de deux octets) :
1101111000101101et1001110111000010 -
Créez un capteur personnalisé
numeral_1dans les propriétés de l’unité dans Wialon. Dans le champ Paramètre, indiquez la formule suivante :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
-
Créez un capteur personnalisé
numeral_2. Dans le champ Paramètre, indiquez la formule suivante :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
Les rapports et les messages de Wialon affichent alors les valeurs de deux capteurs de deux octets (numeral_1=56877 et numeral_2=40386) au lieu de user_d1=2646793773.
Exemple 2
Dans cet exemple, l’unité envoie les données sous la forme d’un nombre à virgule flottante (float). Dans Wialon, ces données sont enregistrées sous la forme user_d3=1017282565.
- Convertissez en binaire le nombre reçu dans Wialon :
1017282565 → 111100101000101000000000000101
-
Créez un capteur personnalisé
floatdans les propriétés de l’unité dans Wialon. Dans le champ Paramètre, indiquez la formule suivante :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)La formule du paramètre du capteur est construite à partir de la formule de conversion au format IEEE 754 32 bits :
F=(-1)S2(E-127)(1+M/223)

Wialon affiche alors les valeurs du capteur float au lieu de user_d3=1017282565.
Exemple 3
Prenons l’exemple de l’appareil Teltonika FMT100, dont le paramètre io_258 enregistre les valeurs de l’accéléromètre sur trois axes lorsque les seuils définis dans l’appareil sont dépassés. Les données de ce paramètre sont utiles avec l’application Éco-conduite. Dans Wialon, ces données sont enregistrées sous la forme io_258=932034904003. Les valeurs doivent être converties en g.
L’image ci-dessous montre la structure du paramètre.

Les valeurs sur les axes sont signées. Dans Éco-conduite, seules les valeurs des axes X et Y sont utilisées. Sur l’axe X, l’accélération et le freinage sont déterminés selon le signe. Sur l’axe Y, c’est l’accélération transversale qui est déterminée ; elle est utilisée en valeur absolue (module), car le sens (gauche/droite) n’est pas pris en compte dans Éco-conduite.
-
Créez un capteur personnalisé
Accel_MAXdans les propriétés de l’unité dans Wialon. Dans le champ Paramètre, indiquez la formule suivante :(((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
-
Créez un capteur personnalisé
Brk_MAX. Dans le champ Paramètre, indiquez la formule suivante :((-(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
-
Créez un capteur personnalisé
Crn_MAX. Dans le champ Paramètre, indiquez la formule suivante :(-(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
Deux octets sont réservés à l’axe Y. Dans Wialon, les numéros de bits vont de 17 à 32. Comme ce sont les valeurs absolues (module) qui sont prises en compte, la formule est un peu plus longue que les précédentes.
Ces exemples montrent que le contrôle au niveau de bit ne se limite pas à la vérification d’un bit précis. Il s’agit d’un outil complet qui permet de créer des capteurs personnalisés dans Wialon. Vous pouvez définir vous-même la logique et le calcul de ces capteurs pour accomplir les tâches les plus complexes.