Time
Data (hex)
2.351468
3A 30 32 30 32 30 46 31 35 36 41 34 32 37 44 0D 0A
Soweit so gut. Stellen Sie sich nun vor Sie wollen die letzten beiden Bytes
(das CRLF) als individuelle End-Of-String Box anzeigen. dump hält dazu die
zwei Positionsparameter first und last bereit, mit welchen Sie einen beliebigen
Ausschnitt auswählen können. Sie können eine Byte Position als absoluten
Wert angegeben, z.B. first=1 für das allererste Byte im Telegramm. Oder Sie
zählen rückwärts mit einem negativen Positionswert.
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 { f i r s t =1 , l a s t = 3,
w i d t h =2 } }
5
box . t e x t { c a p t i o n ="EOS" , t e x t = t g : dump { f i r s t = 2, l a s t = 1, w i d t h =2 }
}
6
end
Das letzte Byte wird mit -1 adressiert. Um die beiden letzten Bytes auszu-
wählen übergeben wir einen Bereich von first=-2 und last=-1. Entsprechend
beenden wir die Datenausgabe in Zeile 4 mit dem letzten Byte vor dem CRLF,
d.h. Position -3 (drei von hinten gezählt).
Time
Data (hex)
2.351468
3A 30 32 30 32 30 46 31 35 36 41 34 32 37 44
Wie Sie sehen bieten negative Indexe einen sehr konfortablen Weg um Daten
relativ zum Telegrammende auszugeben ohne sich dabei mit der Telegramm-
länge abmühen zu müssen.
Der Parameter sep ist leicht verständlich. Mit seiner Hilfe können Sie das Leer-
zeichen zwischen den Zahlenwerten durch jedes andere Zeichen oder String
ersetzen. Und - natürlich - auch komplett entfernen mit:
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 , sep = ' ' } }
Time
Data (hex)
2.351468
3A30323032304631353641343237440D0A
Der Protokollmonitor behandelt Telegramme ohne Längenbegrenzung. Gleich-
wohl ist es manchmal ziemlich lästig horizontal durch eine Riesenmenge von
dump{} produzierten Daten zu scrollen. Hier kommt der letzte Parameter max
ins Spiel.
max definiert die maximale Anzahl der von dump{} ausgegebenen Daten, die
erste Hälfte von max am Anfang, die zweite Hälfte am Ende. Die übrigen Daten
werden als Anzahl zwischen zwei Aufzählungspunkten angezeigt. Ein Beispiel:
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 , max=4 } }
Data (hex)
3A 30 ...[13]... 0D 0A
Ihr eigenes Template Schritt für Schritt
Für ein besseres Verständnis der nächsten Schritte empfehlen wir Ihnen die
Projektdatei Tutorial.msbprj im Examples\ProtocolView Verzeichnis
zu laden bzw. per Doppelklick zu starten. Das Beispiel funktioniert auch ohne
13.3. TEMPLATE SPRACHSYNTAX
EOS
0D 0A
119
Tutorial
Tutorial.msbprj