KAPITEL 13. DER PROTOKOLLMONITOR
eins niedriger Telegrammnummer.
Die folgende Regel möge als kleine Eselsbrücke dienen:
Verwenden Sie ':' wenn Sie sagen können:
Einen Telegramminhalt untersuchen
Sie können verschiedenste Telegramm Informationen abfragen indem Sie die
entsprechende Funktion aufrufen. Alle verfügbaren Telegramm Funktionen sind
im Abschnitt
13.6.6
nannt, da sie gerade bei der Analyse unbekannter Telegramminhalte einen
sehr schnellen Überblick auf die im Telegramm enthaltenen Daten liefert. Es
handelt sich um die Funktion dump{}. Sie haben sie bereits früher in diesem
Kapitel kennengelernt.
dump gibt den Inhalt 'seines' Telegramms als Lua String aus. In diesem sind
alle Datenbytes entweder in hexadezimaler oder dezimaler Schreibweise und
durch ein Leerzeichen getrennt aufgelistet (Hexdump). Ein dump{} Aufruf ak-
zeptiert folgende benannte Parameter, hier mit ihren entsprechend Defaultwer-
ten:
t e l e g r a m : dump { f i r s t =1 , l a s t = 1, sep = ' ' , base =16 , w i d t h =3 , max= s i z e / 2 }
Ohne Parameter liefert dump den kompletten Inhalt (first=1, last=-1) als 3-
stellige (width=3) Hexwerte (base=16), getrennt durch ein Separator Leerzei-
chen (sep=' ').
Der Parameter max begrenzt die maximal Anzahl Datenbytes und gibt lediglich
die erste und letzte Hälfte von den in max spezifizierten Bytes aus.
Nehmen wir ein Telegramm mit der Bytefolge:
3A 30
32 30 32 30
Und eine einfache out() Funktion:
1
function o u t ( )
2
l o c a l t g = t e l e g r a m s . t h i s ( )
3
box . t e x t { c a p t i o n =" Time " , t e x t = t g : t i m e ( ) }
4
box . t e x t { c a p t i o n =" Data ( hex ) " , t e x t = t g : dump { } }
5
end
Die Ausgabe ist dann:
Time
Data (hex)
2.351468
03A 030 032 030 032 030 046 031 035 036 041 034 032 037 044 00D 00A
Mit dem Parameter base können Sie die Zahlenbasis von hexadezimal auf
dezimal ändern indem Sie base=10 übergeben.
4
box . t e x t { c a p t i o n =" Data ( dec ) " , t e x t = t g : dump { base=10 } }
Time
Data (dec)
2.351468
058 048 050 048 050 048 070 049 053 054 065 052 050 055 068 013 010
Da das Telegramm nur 8-Bit Werte enthält, begrenzen wir als nächstes die
Stellenanzahl bei der hexadezimalen Darstellung auf 2 Digits.
4
box . t e x t { c a p t i o n =" Data ( hex ) " , t e x t = t g : dump { w i d t h =2 } }
118
aufgelistet. Eine dieser Funktionen sei hier explizit ge-
46 31 35
36 41 34 32
Variable, bitte tue dies für mich
37 44 0D
0A