KAPITEL 20. KOMMANDOZEILEN API
das Programm nur die Daten durchreicht, die per Parameter frei gegeben wur-
7
den
. Ohne Angabe eines Filter Parameters werden alle Daten blockiert.
20.4.1
Daten filtern
Die folgende Kommandokette filtert aus der Datei modbus-ascii.msblog
im examples/DataView Verzeichnis alle (an Port A und B) empfangenen
Datenbytes und speichert diese als neue Aufzeichnungsdatei
data-only.msblog.
type modbus-ascii.msblog | msb_filter -A -B > data-only.msblog
Genauso gut können Sie die Ausgabe von msb_filter zur formatierten Aus-
gabe direkt an das msb_format Programm weiter reichen.
type modbus-ascii.msblog | msb_filter -A -B | msb_format
20.4.2
Bestimmte Leitungsereignisse herausfiltern
Neben den Daten könnnen Sie auch die aufgezeichneten Leitungsänderun-
gen einzelner Leitungen herausfiltern. Z.B. wenn Sie alle Signaländerungen
aufgenommen haben, aber nur an den Daten und den Handshake Leitungen
RTS/CTS interessiert sind.
Die Auswahl der von msb_filter durchgereichten Signale erfolgt als Kom-
ma separierte Liste und entspricht dem --log-signals Parameter des Tools
msb_record.
type modbus-ascii.msblog | msb_filter -A -B --pass-signals=6,7 | msb_format
Obige Kommandokette extrahiert zusätzlich zu den übertragenen Daten die
Signaländerungen der Leitungen 6 und 7 (bei RS232 Verbindungen i.a. RTS
und CTS).
20.4.3
Einen Aufzeichnungsabschnitt filtern
Mit dem weiter unten beschriebenen msb_split können Sie eine Aufzeich-
nungsdatei in einzelne 'kleinere Häppchen' zerlegen. Was aber, wenn Sie le-
diglich an einem ganz bestimmten Ausschnitt der Aufzeichnung interessiert
sind? Z.B. an den ersten oder letzten 100000 Ereignissen. Oder an allen Er-
eignissen innerhalb eines bestimmten Zeitabschnitts?
Das Tool msb_filter enthält zwei zusätzliche Parameter zur Definition eines
Abschnittes:
1
--pass-selection=pos1,pos2
pos1 und pos2 spezifizieren die Ereignisnummer des ersten und letzten Ereig-
nisses welches durchgereicht werden soll (pass). Beispiel:
type modbus-ascii.msblog | msb_filter --pass-all --pass-selection=300,310
2
--pass-time=time1,time2
time1 und time2 definieren Begin und Ende des Abschnittes in Sekunden. Die
Angabe erfolgt als Fliesskommazahl und einer gewohnten Auflösung in Mikro-
sekunden.
7
Linux Anwender verwenden natürlich statt dem type Befehl das cat Kommando.
264