Nachrichtenbeispiel
Beispielanwendung SKK
Beschreibung
Als Beispiel dient die Referenzanwendung SKK (Schnitt-Kreis-Kreis):
- Das Modell besteht aus zwei Kreisen, die durch Ihre Parameter Mittelpunkt und Radius gegeben sind.
- Die Kernanwendung berechnet die Schnittpunkte, sofern vorhanden.
- Eingangsseitig können die Parameter mit Hilfe von Scroll Bars verändert werden.
- Ausgangsseitig wird eine Grafik gezeichnet, in der die Schnittpunkte gekennzeichnet sind.
- Die Anwendung eignet sich hervorragend als Beispielanwendung für das Framework.
- Die Geschwindigkeit der Datenübermittlung kann durch Beobachten der Grafik sehr einfach sichtbar gemacht werden.
Kernanwendung
- Elektronischer Zirkel.
- Berechnet die Schnittpunkte zweier Kreise.
- Unterscheidet systematisch die verschiedenen Fälle bezüglich der relative Lage.
- Wurde portiert von Delphi nach C# und weiter nach Java.
Parameter
- Anzahl der Zeilen
Sensoren
- Als Sensoren/Zeilenparameter gelten bestimmte Felder einer Zeile.
- Im Beispiel die Mittelpunkte und Radien, insgesamt sechs Parameter pro Zeile.
Beschreibung der Nachrichten
Einzeilige Message
Die Daten der Beispielanwendung SKK liegen in der Regel im Textformat vor, als Liste von einzeiligen Nachrichten.
Die einzeiligen Nachrichten entsprechen dem Key=Value Muster.
So ist es gedacht (Indizes in Klammern):
SKK.Kreise.W[1].Bib[1].M1X=50
Real müssen die Klammern weggelassen werden (spart Platz und lässt sich einfacher schreiben):
SKK.Kreise.W1.Bib1.M1X=50
- Links vom Gleichheitszeichen steht der Key.
- SKK kennzeichnet die Anwendung (den Typ)
- Im zweiten Abschnitt steht Kreise für die Kategorie.
- W1 kennzeichnet die Tabelle 1 (immer 1 bei SKK)
- Bib1 kennzeichnet die Zeile in der Tabelle
- M1X bedeutet, dass ein Wert für Parameter M1X (Mittelpunkt 1, X-Koordinate) gesendet wird.
- 50 rechts vom Gleichheitszeichen ist der Value.
Protokoll
Die einzeiligen Nachrichten entsprechen dem selbst definierten Protokoll. Das Programm enthält einen robusten Parser für das Protokoll.
Der Key (links vom Gleichheitszeichen) ist hierarchisch aufgebaut. Die einzelnen Ebenen werden immer durch Punkt getrennt. Der Entwurf für das Protokoll kann übersichtlich in einer Tabelle dargestellt werden. Die mit (X) endenden Einträge sind indizierte Token.
Level1 | Level2 | Level3 | Level4 | Level5 | Description |
SKK | Kreise | W1 | STL | Count | Anzahl Zeilen |
W(X) | Bib(X) | XX | Testmessage | ||
M1X | Mittelpunkt1.x | ||||
M1Y | Mittelpunkt1.y | ||||
M2X | Mittelpunkt2.x | ||||
M2Y | Mittelpunkt2.y | ||||
R1 | Radius1 | ||||
R2 | Radius2 |
STL initialisiert die Zeilen in Tabelle W bzw. in den Tabellen W(X). Es wird nur eine Tabelle verwendet. Es gibt aber andere Anwendungen des Frameworks, die mehrere Tabellen verwenden.
Wie in Level 4 definiert, können die für eine Zeile in W(X) bestimmten Nachrichten auf die Bib (eindeutige Kennzeichnung der Zeile in Tabelle W) zugewiesen werden.
Textformat
Das Textformat ist im Hauptteil eine Liste von einzeiligen Messages, die so auch einzeln über das Netzwerk (oder eine interne Verbindung) an das Programm gesendet werden können. Vorangestellt sind die Parameter und Properties für den Event, hier nur die Anzahl der reservierten Zeilen.
Event.StartlistCount = 2
SKK.Kreise.W1.STL.Count=2
SKK.Kreise.W1.Bib1.R1=58
SKK.Kreise.W1.Bib1.R2=58
SKK.Kreise.W1.Bib1.M1X=104
SKK.Kreise.W1.Bib1.M1Y=150
SKK.Kreise.W1.Bib1.M2X=146
SKK.Kreise.W1.Bib1.M2Y=82
SKK.Kreise.W1.Bib2.R1=41
SKK.Kreise.W1.Bib2.R2=100
SKK.Kreise.W1.Bib2.M1Y=120