Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
embedded_systems:robi2:remote [2011-11-20 19:41] – Kurze Ergänzung als test des Symbian Browsers :) niederer | embedded_systems:robi2:remote [2011-12-14 17:31] – Erster Entwurf des abgespeckten Protokolls 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 | ||
+ | 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ültiges Kommando** | ||
+ | < | ||
+ | Request: | ||
+ | Response: 127< | ||
+ | </ | ||
+ | |||
+ | **Ungültiges Kommando** | ||
+ | < | ||
+ | Request: | ||
+ | Response: *1 Command Unknown< | ||
+ | </ | ||
+ | |||
+ | **Ungültige Parameter** | ||
+ | < | ||
+ | Request: | ||
+ | Response: *2 Invalid Parameter< | ||
+ | </ | ||
+ | |||
+ | ===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 |