Data Filtering, Data Monitoring, Data Trigger, Data Packets, File Transmission Queue
SuperCom verfügt über intelligente Funktionen um längere oder komplexe Operationen einfach zu lösen (Smart Path).
Diese intelligente Funktionen erleichtern nicht nur die Lösung von komplexen Aufgaben schnell sondern arbeiten im 'nicht-blockierenden' Modus, im Hintergrund. Das Resultat ist eine stabile Anwendungen, entwickelt wesentlich schneller als mit herkömmlichen Werkzeugen, die 'weich und ruckelfrei' arbeitet.
Dieses Konzept wird im folgenden mit Beispielen demonstriert. Wie bei SuperCom üblich, lassen sich alle folgende Bespiele über alle unterstützte Verbindungswege einsetzen (z.B. Seriell, TCP/IP, ISDN).
C/C++ Beispiel
|
Die Parameter cStart, cStop definieren die Regeln für das Datenpaket. Danach wartet die Funktion bis ein Datenpaket entsprechend den Regeln empfangen wird, die gewünschte Anzahl an Daten empfangen wurde oder die eingestellte Zeit abläuft. Die Parameter cStart und cStop werden je nach Vorgaben definiert oder auch nicht.
WildCards
Nun ist nicht immer jedes Zeichen in einem Datenpaket bekannt (z.B. Prüfsummenzeichen, Längenbyte, etc.). Der Weg solche Stellen zu beschreiben geht über WildCards. Ein Wildcard ist ein spezielles Zeichen, in userem Fall zwei, die als Ersatz für ein unbekanntes Zeichen intepretiert werden. Die SuperCom Funktion nutzt die Zeichen "\?" für den "Ein-Zeichen Wildcard". Eine Startsequenz könnte z.B. "H\?llo" definieren. Diese Sequenz belegt im Speicher 6 Bytes, die damit definierte Startsequenz ist jedoch nur 5 Bytes lang. Hier wurde der Wildcard an Position 2 gesetzt. Das bedeutet wir erwarten in Position 2 jedes beliebige Zeichen. Diese Startsequenz liefert bei "Hello", "Hallo", usw.
Wertebereiche
In manchen Fällen sind die zu erwartenden Bytes eines Triggers bekannt bestehen jedoch aus einen Satz von Werten (set) oder aus einem Bereich von Werten (range). Diese
Konstellation kann mit der Sequenz \[] beschrieben werden. Einzelne Werte werden, innerhalb der eckigen Klammern, durch ein ',' getrennt aufgelistet und Bereiche mit Anfang- und Endwert getrennt durch '..'.
Beispiele
Der Trigger "\[1,2,3,a..z]" definiert ein einzelnes Zeichen im Trigger und meldet sobald das Zeichen '1', '2' oder '3' oder ein Zeichen aus dem Bereich 'a' bis 'z' empfangen wird.
Der Trigger "User\[1,2,3]" meldet sobald "User1", "User2" oder "User3" empfangen wird.
Der Trigger "User\[a..c]" meldet sobald "Usera", "Userb" oder "Userc" empfangen wird.
Der Trigger "User\[1,2,3,a..c]" meldet sobald "User1", "User2" oder "User3" oder "Usera", "Userb" oder "Userc" empfangen wird.
Der Trigger "User\[1,2]\[a..b]" meldet sobald "User1a", "User2a" oder "User1b" oder "User2b" empfangen wird.
Die Kombination von Wildcards und Wertebereiche ermöglicht komplexe Datenpakete zu filtern.
Die Datenpacket-Sammler Funktion ist so verlässlich, daß sogar ganze Protokolle darüber abgewickelt werden können. Einmal richtig konfiguriert arbeitet es zuverlässig und liefert die erwarteten Datenpakete.
Beispiel #2
C/C++ Beispiel
|
Ähnlich einfach geht es über das ActiveX API.
C/C++ Beispiel
|
Die Eigenschaften DPStart, DPEnd, DPLimitLen und DPTimeout definieren die Regeln für das Datenpaket und DPCollect aktiviert den Datenpaketsammler. Von nun an werden fortlaufend Datenpakete entsprechend den Regeln gesammelt und gemeldet. Für die Signalisierung wird die Ereignisfunktion OnDataPacket verwendet, welche auch die Datenpakete gleich mitliefert.
Die Eigenschaften DPStart, DPEnd können unabhängig voneinander und je nach Vorgaben definiert werden oder auch nicht (z.B. Start="at"CRLF, Ende=CRLF, wobei CR=Carriage Return, LF=Line Feed).
WildCards
Der Puffer für den DPStart im obigen Beispiel belegt im Speicher 5 Bytes, die damit definierte Startsequenz ist jedoch nur 4 Bytes lang. Hier wurde der Wildcard an Position 2 gesetzt. Das bedeutet wir erwarten in Position 2 jedes beliebige Zeichen. Diese Startsequenz liefert bei "at"CRLF, "aT"CRLF, "ax"CRLF, usw.
Zusätzlich zu den Wildcards können auch Wertebereiche definiert werden und somit komplexe Datenpakete gesammelt werden.
Der Datenpaketsammler wird komplett im Hintergrund ausgeführt. Dadurch kann die Anwendung andere Aufgaben nachgehen bis die entsprechende Ereignisse eintreffen und die Daten liefern. Eine automatische Paket Sammelmaschine einfach aktiviert!
Trigger (Auslöser Datenpaket)
In vielen Situationen sollte es das Kommunikationsmodul sein, daß schnell und direkt auf empfangene Daten reagiert. Die Anwendung kann sich anderen Aufgaben widmen bis die Kommunikationsdaten die Aufmerksamkeit verlangen.
Wie im folgenden Beispiel gezeigt wird, ist es einfach mit SuperCom auf bestimmte Daten (Trigger) per Ereignis (Event) zu reagieren:
C/C++ Beispiel
|
Ein Trigger ist also ein Datenpaket bzw. eine Zeichenkette.
WildCards
Nun ist nicht immer jedes Zeichen bekannt (z.B. Prüfsummenzeichen, Längenbyte, etc.). Da wird einfach für das betreffende Zeichen ein Wildcard gesetzt. Ein Wildcard ist ein spezielles Zeichen, in userem Fall zwei, die als Ersatz intepretiert werden. Die SuperCom Funktion nutzt die Zeichen "\?" als Wildcard. Der Puffer für den Trigger "H\?llo" belegt im Speicher 6 Bytes, der Trigger hat jedoch die Länge 5. Hier wurde der Wildcard an Position 2 gesetzt. Das bedeutet wir erwarten in Position 2 jedes beliebige Zeichen. Dieser Trigger meldet z.B. bei "Hello", "Hallo" usw. Ein zusätzliches kleines Handbuch behandelt dieses mächtige Trigger Helper API und zeigt auch Aspekte der Anwendungen von Trigger in Protokollen.
Zusätzlich zu den Wildcards können auch Wertebereiche definiert werden und somit komplexe Trigger verarbeitet werden.
SuperCom behandelt den Trigger intern nur im binären Modus. Dadurch werden nicht nur Zeichenketten sondern auch binäre Daten korrekt verarbeitet.
Diese Arbeitsweise entlastet die Anwendung sehr, da nicht ständig nach den empfangenen Daten geprüft werden muß. Sobald eine definierte Zeichenkette von SuperCom empfangen wird, signalisiert es die Anwendung per Ereignis (Event). Das Trigger-Ereignis EV_TRIGGER wird über die UserEventProc gemeldet.
Ähnlich einfach geht es über das ActiveX API .
C/C++ Beispiel
|
Sobald eine definierte Zeichenkette (Trigger) empfangen wird meldet SuperCom das spezielle Ereignis SCOMM_EV_TRIGGER über die OnComm Event Funktion. Es können beliebige Zeichenketten (Trigger) für die Überwachung gesetzt werden und genauso einfach wieder entfernt werden.
WildCards
Für nicht bekannte Zeichen kann das Wildcard "\?" gesetzt werden z.B "H\?llo".
Zusätzlich zu den Wildcards können auch Wertebereiche definiert werden und somit komplexe Trigger verarbeitet werden.
Daten-Filter
Bestimmte Aufgaben erfordern die Filterung (Austausch oder entfernung von bestimmten Daten) des Datenstroms. Es ist aus vielen Gründen vorteilhaft, wenn diese Aufgabe im Kommunikationsmodul schnell und direkt bewältigt wird ohne Eingriff der Anwendung.
SuperCom bietet eine Daten-Filter Funktionalität für die Datenfilterung und -manipulation innerhalb der Datenkommunikation.
Die Funktion ComFilterInit installiert die SuperCom Datenfilterung entsprechend den vordefinierten Regeln. Die gesamte Datenfilterung findet auf unterster Ebene während des Datenempfangs bzw. -versands statt. Dabei gibt es mehrere vordefinierte Regeln, welche über ComFilterInit eingestellt werden können. Die Anwendung erhält stets die netto Daten.
C/C++ Beispiel
|
Die Eigenschaft DataFilter definieren die Regeln für die Datenfilterung.
Die gesamte Datenfilterung findet auf unterster Ebene während des Empfangs bzw. Versands statt. Dabei gibt es mehrere vordefinierte Regeln, welche über DataFilter eingestellt werden können. Die Anwendung erhält stets die netto Daten.Zusammenfassend
Die hier vorgestellten Werkzeuge bieten verschiedene Wege zur Problemlösung. Viele weitere Kombinationen sind ebenfalls möglich. Das Handbuch bietet hierzu reichlich information und bei gezielten Anfragen zeigen unsere techniker gerne weitere Lösungsmöglichkeiten auf.
Intelligente Funktionen lösen komplizierte Aufgaben. Das was man von einem professionellen Tool erwartet.
Eine DUAL API SuperCom software ermöglicht eine noch bessere Anwendung der hier vorgestellten Werkzeugen. Es erlaubt, unter anderem, den Aufruf von Funktionen aus dem ActiveX API und DLL API je nach Bedarf.
Vielseitigkeit
SuperCom ist weiterhin das einzige Toolkit, daß die unterschiedlichsten Entwicklungsumgebungen unterstützt. Es ist nicht, wie üblich, an eine Entwicklungsumgebung festgebunden. Der Entwickler hat die Freiheit seine Entwicklungsumgebung bzw. den Compiler nach seinem aktuellem Bedarf auszuwählen. Das bedeutet eine enorme Zeit- und Kostenersparnis für die Entwicklungsabteilung.
Als SuperCom Kunde, können Sie uns einfach kontaktieren und schnell die geeignete Funktion, Parameter-Definition für eine Funktion, Trigger-Einstellung usw. erfragen. Wir sagen Ihnen schnell ob und wie eine geeignete Funktion aufgerufen werden muss, um bestimmte Daten (-Pakete) fehlerfrei zu empfangen.