Processeur Extraire la plage de bits

Important

Ce processeur n'est pas disponible par défaut. Veuillez contacter l'équipe support Opendatasoft si vous souhaitez l'activer 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 avec le contenu hexadécimal ou binaire

oui

column_a

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

Hexadécimal ou 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. Il 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 dans lequel la plage de bits extraite sera affichée. Il peut s'agir d'un champ existant choisi dans la liste ou d'un champ créé à cette fin (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

result

Exemple

Une sonde de température envoie une valeur hexadécimale.

hexadecimal value : 0x1649

Cette valeur hexadécimale (2 octets) comprend : - une valeur décimale encodée sur le 1er octet - l'identifiant de la sonde encodé sur les 4 premiers bits du 2e octet - un ensemble d'indicateurs représentant la configuration de la sonde, encodés sur les 4 bits restants

hexadecimal value : 0x1649          <- information sent by the sensor in hexadecimal
binary value : 00010110 01001001    <- same information in binary
  • le premier octet '00010110' correspond à la température en degrés

  • les 4 bits suivants '0100' correspondent à l'identifiant de la sonde

  • les 4 bits suivants '1001' correspondent à la configuration de la sonde, mais nous souhaitons uniquement le premier bit

Par conséquent, le pipeline de traitement comprendra 3 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