sich nur auf die aktuell sichtbaren Telegramme im Fenster bezieht. Wir kom-
men im nächsten Abschnitt darauf zurück.
Der Filtermechanismus ist am besten - wie üblich - an einem Beispiel erklärt.
Laden Sie das Tutorial Projekt erneut und wählen Sie im Protokollmonitor das
Template 'Tutorial-Complete'. Kopieren Sie das Template mit dem + Knopf,
damit Sie es als neues Template editieren können.
Die Tutorialaufzeichnung enthält die Kommunikation eines Masters mit zwei
Geräten. Die Geräte haben die Adressen 1 und 2 (nur als Erinnerung).
Und nun stellen Sie sich vor, Sie könnten einfach nur die Kommunikation zwisch-
en dem Master und dem ersten Gerät sehen oder nur alle Telegramme die eine
bestimmte Anfrage, z.B. nach der Temperatur betreffen.
Bestimmte Telegramme zu filtern heißt, die unerwünschten Telegramme aus
der internen Liste des Protokollmonitors zu entfernen. Dafür bietet die split
Funktion den besonderen Rückgabestatus REMOVED. Zunächst wollen wir nur
die Telegramme darstellen, die an das erste Gerät bzw. von diesem gesendet
werden (Geräteadresse 1). Um dies zu gewährleisten müssen wir alle Tele-
gramme mit einer abweichenden Adresse unterdrücken. In unserem Fall reicht
es, alle Telegramme mit der Adresse 2 zu entfernen. Die Adresse ist als zwei
Hex ASCII Zeichen im zweiten und dritten Byte des Telegramms kodiert. Im
folgenden das allererste Telegramm wie es im Datenmonitor dargestellt wird.
3A
30
32
30
Wir erreichen dies, indem wir einfach nach der Zeichenkette "02" an der 2ten
Position im Telegramm suchen. Oder in Lua formuliert:
i f s t r : f i n d ( " 0 2 " ) == 2 then . . .
1
Der Parameter str repräsentiert alle bis dato empfangenen Zeichen des Te-
legramms als String und ist damit ein idealer Kandidat für Lua's string Modul.
Diese Abfrage ist damit jedesmal wahr, wenn es sich um ein Telegramm an
bzw. vom 2ten Gerät handelt. Da wir diese nicht sehen wollen, geben wir RE-
MOVED zurück (siehe Zeile 3 im folgenden Listing).
function s p l i t ( data , i n t v a l , a l t e r , s t r , f i l t e r )
1
i f data == 58 then r e t u r n STARTED end
2
i f s t r : f i n d ( " 0 2 " ) == 2 then r e t u r n REMOVED end
3
4
i f s t r : f i n d ( " \ r \ n " ) then r e t u r n COMPLETED end
5
r e t u r n MODIFIED
6
end
Wenn Sie die split Funktion angepasst haben drücken Sie F5 (oder klicken
Sie auf den Ausführungsknopf in der Werkzeugleiste) und - voila - alle nun an-
gezeigten Telegramme betreffen nur noch die Kommunikation zwischen Master
und dem ersten Gerät.
Wenn Sie jetzt in Zeile 3 den String "02" mit "01" ersetzen werden nur noch die
Telegramme des zweiten Gerätes gezeigt.
Allerdings ist es ziemlich mühselig, jedesmal das Template zu editieren um
zwischen den verschiedenen Telegrammansichten hin- und herzuwechseln.
Hier kommt das Filtereingabefeld in der Werkzeugleiste ins Spiel.
32
43
43
0D
0A
13.4. FILTERUNG
:0202C4..
133