Herunterladen Inhalt Inhalt Diese Seite drucken

Die Bpack Und Bunpack Funktionen - IFTOOLS MSB-RS485-PLUS Handbuch

Inhaltsverzeichnis

Werbung

KAPITEL 18. LUA ANALYSER ERWEITERUNGEN
Beachten Sie! Das bit32 Module ist auf 32 Bit begrenzt. Größere Werte werden
automatisch auf 32 bit gekürzt entsprechend dem Rest der Teilung durch 2
bit Modul umbenannt in bit32
In der Analszer Version 5.0 wurde das bit module in bit32 umbenannt
um mit der offiziellen Lua Beschreibung übereinzustimmen.
Auf Protokoll bzw. Datenebene werden Sie allerdings häufiger mit dem Pro-
blem konfrontiert, einzelne Bits auszuwerten oder - z.B. im Zusammenhang
mit Berechnungen von Prüfsummen - Datenbytes bitweise zu modifizieren.
Das bit Modul erweitert den integrierten Lua Interpreter um die folgenden
Funktionen:
Funktion Beschreibung
band
liefert die bitweise UND Verknüpfung der beiden Parameter x1
und x2, z.B. bit32.band(0xFF,0x01)
bor
liefert die bitweise ODER Verknüpfung der beiden Parameter x1
und x2, z.B. bit32.bor(0xFF,0x01)
bxor
liefert die bitweise XOR (exklusiv oder) Verknüpfung der beiden
Parameter x1 und x2, z.B. bit32.bxor(0xFF,0x0F)
bnot
das Resultat ist die logische Negation jedes einzelnen Bits
(auch Einerkomplement). Dabei wird jede 1 durch eine 0 ersetzt
und umgekehrt. Z.B. bit32.bnot(0x55)
lshift
verschiebt den übergebenen Wert x bitweise um n Bits nach
links, z.B. bit32.lshift(0x100,2)
rshift
verschiebt den übergebenen Wert x bitweise um n Bits nach
rechts, z.B. bit32.rshift(0x1FF,1)
Sketch Beispiel
1
p r i n t ( s t r i n g . f o r m a t ( "%X " , b i t 3 2 . band ( 0xFF , 0x03 ) ) )
2
p r i n t ( s t r i n g . f o r m a t ( "%X " , b i t 3 2 . bor ( 0x03 , 0x10 ) ) )
3
p r i n t ( s t r i n g . f o r m a t ( "%X " , b i t 3 2 . bxor ( 0x1001 , 0x1000 ) ) )
4
p r i n t ( s t r i n g . f o r m a t ( "%X " , b i t 3 2 . bnot ( 0x1001 ) ) )
5
p r i n t ( s t r i n g . f o r m a t ( "%X " , b i t 3 2 . l s h i f t ( 0x1000 , 2 ) ) )
6
p r i n t ( s t r i n g . f o r m a t ( "%X " , b i t 3 2 . r s h i f t ( 0x4000 , 2 ) ) )
18.2.3

Die bpack und bunpack Funktionen

Die Funktion bunpack ist der Lua lpack Bibliothek entliehen und integraler
Bestandteil des Lua Interpreters in der Analyser Software. Sie gibt Ihnen die
Möglichkeit beliebige Bytefolgen in ganz bestimmte Zahlentypen und Werte
umzuwandeln.
Die Arbeitsweise von bunpack ähnelt der scanf Funktion in C. Entsprechend
eines Formatstrings wird dabei aus einer übergebene Bytefolge (Lua String)
ein oder mehrere Zahlen extrahiert. Lua ist bei der Rückgabe von Funktions-
aufrufen nicht auf einen einzelnen Wert beschränkt. bunpack kann deshalb
224
> 3
> 13
> 1
> FFFFEFFE
> 4000
> 1000

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis