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