Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
embedded_systems:robi2:remote [2011-11-20 19:41] – Kurze Ergänzung als test des Symbian Browsers :) niederer | embedded_systems:robi2:remote [2012-01-30 11:40] (aktuell) – Kleinere Ergänzungen als Vorbereitung für aktuellen Stand niederer | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | <box red 80% | **Actung**> | + | <box red 80% | **Actung**> |
======Robi2 Remote Interface====== | ======Robi2 Remote Interface====== | ||
- | Es besteht die Möglichkeit, | + | Es besteht die Möglichkeit, |
===== Das Kommunikationsprotokoll ===== | ===== Das Kommunikationsprotokoll ===== | ||
- | Das Protokoll funktioniert nach dem Request-Response Prinzip wobei jeweils der Client die Requests stellt. Das Protokoll ist als Textformat entworfen. Dies ermöglicht die Überquerung von Plattformen, | + | Das Protokoll funktioniert nach dem Request-Response Prinzip wobei jeweils der Client die Requests stellt. Das Protokoll ist im Textformat entworfen. Dies ermöglicht die Überquerung von Plattformen, |
+ | |||
+ | ====Protokoll==== | ||
+ | Das Framing beschränkt sich auf eine Zeilenweise Trennung der einzelnen Requests und den jeweiligen Responses. Um das Protokoll möglichst zu vereinfachen wird auf eine Versionierung des Protokolls | ||
+ | |||
+ | FIXME Eventuelle, transparente Erweiterung? | ||
+ | Ist ein Aufruf nicht in Ordnung, so wird dem Aufrufer ein Fehlercode zurückgeliefert. In diesem Fall ist das erste Zeichen im Frame ein ' | ||
+ | |||
+ | Eine Beschreibung der möglichen Aufrufe befindet sich im Abschnitt [[ .# | ||
+ | |||
+ | ===Beispiele=== | ||
+ | **Gültige Kommando** | ||
+ | < | ||
+ | Request: | ||
+ | Response: < | ||
+ | </ | ||
+ | < | ||
+ | Request: | ||
+ | Response: 10 0 12 45 100 200 312 450 35 35 32 31 32 31 30 30< | ||
+ | </ | ||
+ | |||
+ | **Ungültige Kommando** | ||
+ | < | ||
+ | Request: | ||
+ | Response: *1 Command Unknown< | ||
+ | </ | ||
+ | |||
+ | ===Formale Beschreibung=== | ||
+ | < | ||
+ | Traffic | ||
+ | Request | ||
+ | Response = [ ReturnValue ] FrameEnd . | ||
+ | |||
+ | Command | ||
+ | Parameter | ||
+ | ReturnValue = [ FixedPoint | ||
+ | | Integer | ||
+ | | ( " | ||
+ | |||
+ | FixedPoint = Integer " | ||
+ | Integer | ||
+ | ErrorCode | ||
+ | Token = ( Grossbuchstabe | Kleinbuchstabe ) { AlphaNumerisch } . | ||
+ | |||
+ | AlphaNumerisch = Grossbuchstabe | Kleinbuchstabe | Digit . | ||
+ | Number | ||
+ | Grossbuchstabe = " | ||
+ | | " | ||
+ | | " | ||
+ | Kleinbuchstabe = " | ||
+ | | " | ||
+ | | " | ||
+ | Digit = " | ||
+ | NonZeroDigit | ||
+ | Delimiter | ||
+ | FrameEnd | ||
+ | </ | ||
+ | |||
+ | ===== Das Objektmodell ===== | ||
+ | ====Client Implementation==== | ||
+ | TODO | ||
+ | |||
+ | ====Server Implementation==== | ||
+ | TODO | ||
+ | |||
+ | =====Befehlssatz===== | ||
- | Request und Response werden jeweils durch ein Startzeichen identifiziert und durch einen Zeilenumbruch abgeschlossen. Das erste Datenfeld in der Nutzlast entspricht der Protokollidentifikation. So können zum Beispiel verschiedene Protokollversionen unterschieden werden. | ||
- | FIXME |