Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
embedded_systems:robi2:remote [2011-11-16 13:12] – angelegt 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 FIXME |