Prozessor "Bitbereich extrahieren"

Wichtig

Dieser Prozessor ist standardmäßig nicht verfügbar. Wenden Sie sich an das Opendatasoft-Supportteam, wenn dieser Prozessor für Ihre Domain aktiviert werden soll.

Dieser Prozessor extrahiert einen beliebigen Bitbereich aus einem hexadezimalen oder binären Inhalt und wandelt ihn in einen der folgenden Datentypen um: Ganzzahl, vorzeichenlose Ganzzahl und Gleitkommazahl.

Anwendungsbeispiel: Bei der Verarbeitung von Daten aus einem Netzwerk von Sensoren, da Sensoren ihre Datenmengen häufig als hexadezimalen Inhalt kodieren.

Den Prozessor einrichten

Befolgen Sie die Anweisungen der unteren Tabelle, um die Parameter des Prozessors "Bitbereich extrahieren" einzurichten.

Beschriftung

Beschreibung

Obligatorisch

Beispiel

Feld

Feld, das den hexadezimalen oder binären Inhalt enthält

ja

"Spalte_a"

Eingabeart

Art des Inhalts: hexadezimal oder binär. Ist dieser Parameter nicht eingestellt, wird der Inhalt standardmäßig als hexadezimal angesehen.

nein

Entweder hexadezimal oder binär

Bitversatz starten

Der Ausgangsversatz entsprechend der Position des ersten Bits. Die Nummerierung beginnt mit 0.

ja

0, 8, 16, ...

Bitversatz stoppen

Der Abschlussversatz entsprechend der Position des letzten Bits. Muss größer als der Ausgangsversatz sein.

ja

7, 15, 31, ...

Umwandeln in

Gewünschtes Format zum Ausgeben und Konvertieren der Daten

ja

Entweder int (Ganzzahl), Uint (Ganzzahl ohne Vorzeichen) oder float

Ausgabefeld

Feld, in dem der extrahierte Bitbereich angezeigt wird. Es kann sich um ein vorhandenes Feld handeln, das aus der Liste ausgewählt wird, oder ein neues Feld, das zu diesem Zweck erstellt wurde (in diesem Fall bitte Eingabetext aus der Liste wählen und den Namen des neuen Feldes in den unteren Textbereich eingeben).

ja

"Ergebnis"

Beispiel

Ein Temperatursensor sendet einen hexadezimalen Wert.

hexadecimal value : 0x1649

Dieser hexadezimale Wert (2 Bytes) umfasst: - einen auf dem ersten Byte codierten Dezimalwert - die Sensorkennung, die auf den ersten 4 Bits des 2. Bytes codiert ist - eine Reihe Flags, die die Sensorkonfiguration darstellen, und auf den verbleibenden 4 Bits codiert sind

hexadecimal value : 0x1649          <- information sent by the sensor in hexadecimal
binary value : 00010110 01001001    <- same information in binary
  • Das erste Byte "00010110" ist die Temperatur in Grad

  • Die nächsten 4 Bits "0100" sind die Sensorkennung

  • Die nächsten 4 Bits "1001" sind die Sensorkonfiguration, aber uns interessiert nur das erste Bit

Die Verarbeitungspipeline enthält zu diesem Zweck 3 Prozessoren des Typs "Bitbereich extrahieren"

  • einen "Bitbereich extrahieren" von 0 bis 8 zur Umwandlung in eine Ganzzahl mit Vorzeichen (int) -> int_temperature

  • einen "Bitbereich extrahieren" von 8 bis 12 zur Umwandlung in eine vorzeichenlose Ganzzahl (uint) -> sensor_identifier

  • einen "Bitbereich extrahieren" von 12 bis 13 zur Umwandlung in eine vorzeichenlose Ganzzahl, wobei 0 "Not OK" bedeutet und 1 "OK" (uint) -> status

Bitbereich extrahieren 1

00010110 -> 22

Bitbereich extrahieren 2

0100 -> 4

Bitbereich extrahieren 3

1 -> OK

Endergebnis:

Temperature : 22 °C
Identifier : 4
Sensor : OK