Processeur Extraire la plage de bits
Ce processeur n'est pas disponible par défaut. Veuillez contacter l'équipe d'assistance d'Opendatasoft si vous souhaitez que ce processeur soit activé dans votre domaine.
Ce processeur extrait une plage de bits arbitraire depuis un contenu hexadécimal ou binaire et la convertit dans l'un des types de données suivants : entier, entier non signé et non entier.
Exemple d'utilisation : pour le traitement de données provenant d'un réseau de sondes, car celles-ci encodent souvent leur charge utile sous la forme de contenu hexadécimal.
Configurer le processeur
Pour définir les paramètres du processeur Extraire la plage de bits, suivez les indications du tableau ci-dessous.
Label | Description | Obligatoire | Exemple |
Champ | Champ contenant le contenu hexadécimal ou binaire | Oui |
|
Type d'entrée | Type du contenu : hexadécimal ou binaire. Si ce paramètre n'est pas défini, le contenu est considéré comme hexadécimal par défaut. | Non | Soit en hexadécimal soit en binaire |
Décalage du bit de départ | Décalage de départ correspondant à la position du premier bit. Il commence à 0. | Oui | 0, 8, 16, ... |
Décalage du bit d'arrêt | Décalage d'arrêt correspondant à la position du dernier bit. Doit être supérieur au décalage de départ. | Oui | 7, 15, 31, ... |
Convertir en | Format dans lequel les données doivent être renvoyées et converties | Oui | Soit int (entier), unint (entier non signé) ou non entier (float) |
Champ de sortie | Champ où la plage de bits extraite sera affichée. Il peut s'agir d'un champ existant choisi dans la liste, ou d'un nouveau champ créé à cet effet (dans ce cas, choisissez "Saisir du texte" dans la liste et écrivez le nom du nouveau champ dans la zone de texte en dessous). | Oui |
|
Exemple
Une sonde de température envoie une valeur hexadécimale.
hexadecimal value : 0x1649
Cette valeur hexadécimale (deux octets) contient :
une valeur décimale encodée sur le premier octet
l'identifiant de la sonde encodé sur les quatre premiers bits du deuxième octet
un ensemble d'indicateurs représentant la configuration de la sonde, codés sur les quatre bits restants
hexadecimal value : 0x1649 <- information sent by the sensor in hexadecimal
binary value : 00010110 01001001 <- same information in binary
le premier octet '00010110' est la température en degrés
les quatre bits suivants '0100' sont l'identifiant de la sonde
les quatre bits suivants '1001' sont la configuration de la sonde, mais nous souhaitons uniquement le premier bit
Par conséquent, le pipeline de traitement contiendra trois processeurs Extraire la plage de bits
un processeur Extraire la plage de bits de 0 à 8 pour convertir en entier signé (int) -> int_temperature
un processeur Extraire la plage de bits de 8 à 12 pour convertir en entier non signé (unint) -> sensor_identifier
un processeur Extraire la plage de bits de 12 à 13 pour convertir en entier non signé (unint) -> status avec 0 correspondant à "Not OK" et 1 correspondant à "OK"
Extraire la plage de bits 1
00010110 -> 22
Extraire la plage de bits 2
0100 -> 4
Extraire la plage de bits 3
1 -> OK
Résultat final:
Temperature : 22 °C
Identifier : 4
Sensor : OK