Hallo,

irgend wie ist das Definieren doch nicht so leicht aber ich habe jetzt mal an gefangen.

Code:
Grundsätzlich gelten Natürlich die Defintionen und Regeln
für das Protokoll so Wie es Marvin und PicNick es definiert
haben mein Definition sind nur erweiterung damit die Schnistelle
EasyToUse wird bzw bleibt. Und die Komponenten so einfach sein Können.

Da PickNick zur Zeit in anderen Projekten gebunden ist kann auch nicht
mit Ihm die Erweiterung abstimmen aber ich denke er liest mit und würde
sich schon bitter beschweren wenn so sehr aus dem Runder läuft.

Haupt unterschied zwischen meiner Implementierung des TCP Stack's (heist das so?)
Und dem von PickNick ist der das PickNick eine TCP verbindung für jeden Client hält.
Und ich auf MultiCast als Übertragungsweg setze.

Damit gilt den rn_server brauche ich nur einmal im Netz und die RNComNetworkLayer
muß auf jeden Rechner der am RNCom-Netz teilnehmen möchte.

Vor und nach Teile:
RN_SERVER                    RNComNetworkLayer


Um nun von einem Teil netz in das andere zu kommen braucht man keine besonderheiten
sonder muß nur Irgendwo den Übergang definieren.

In dem man in der RNComNetwork.ini
StartTCPConnect=1
RN_ServerIP=192.168.2.10
die Obigen werte anpasst.

Im RN_SERVER wir immer nur 1 Client angezeigt nämlich der Networklayer. Da PickNick zur
Zeit mehr als 1 Client am TCP Prot nicht darstellen kann. Da aber eh alles an alle
geschickt wird ist das kein Problem.

Da ich auch eine Weile gebraucht habe bis ich das Protokoll geblick habe folge hier jetzt
die Zusammenfassung nach meine Verständnis mit meinen erweiterungen.

Zur Darstellung:
<00> Bedeutet 1 Byte mit dem Wert 0 die Darstellung ist HEX also <FF> für den wert 255.

Der TCPTeil:
POS     Wert         Bedeutung
0       beliebig     Lowbyte der länge des TCP Telegramms
1       beliebig     HighByte der Länge des TCP Telegramms
                     Damit ergibt sich eine Maximal länge des Telegrams von 65535 Bytes
                     aber in meinen Componeten ist bei 10240 ist Schluß das liegt an dem
                     TCP Stack von window mehr Byte kann ich nicht auf einmal senden.
2       beliebig     Class an die Gesendet werden soll.
                     Der wert 4 = AVR an Com1 es wird da von Ausgangen das es nur eine Serialen
                     übergang zum Microcontroller gibt.
                     Bis hier Standart defintion RNCom.
                     Meine erweiterung 100,101,102 Sind PC Programme also <64>,<65>,<66>
3       beliebig     ID des Programmes 1 - 255 die 0 steht für Broadcast an alle oder alle der selben
                     Klasse jenach dem was in der Class drin steht
4       beliebig     Absender Class also im Normalfall 100,101,103
5       beliebig     Absender ID

ab hier Folgen die Daten

6                    Abhängig davon was in der Absender klasse steht
                     Ist der Absender der Class 10X dann muß Hier <01> Kommen
                     Für ein KeyValue String (0 Bytes nicht zulässig). Meine erweiterung ist hier eine <02>
		             Ist das Nachfolgende Binärdaten also 0 Bytes zulässig. Format anwendungs spezifisch.
          	         Ist die Absender Class <82> dann ist in Byte 6 und 7 der wert des AD-Wandlers des AVR's
                     die ID gibt an welcher es war da die Max auf lösung des AVR Ad's 10 Byte sind also max 1023
                     werden hier zwei byte benötigt
                     Meine erweiterung: Absender Class <83> ist das Byte nummer 6 der wert der IO Port's in ID steht 
                     welcher.
                     
Zusammen Fassung der Klassen:

Geräte auf der Roboter Seite:

<01>(01)              Heartbeat nur Zwischen PC und Roboter
<05>(02)              Next nur Zwischen PC und Roboter Nächste Adresse im Roboter
<09>(09)              IAM nur Zwischen PC und Roboter Ich bin ein ?
<0D>(13)              ASK nur Zwischen PC und Roboter (Habe ich auch noch net geblickt)
<11>(17)              UART vom PC nach COM1 ohne Interpreation des Inhalts (Bypass)
<15>(21)              VAL Meßwert
<19>(25)              Interne sachen von Picknick vielleicht klärt uns irgend wann mal auf
<1D>(29)              Interne sachen von Picknick vielleicht klärt uns irgend wann mal auf

Klasse(Dezimal)       Bedeutung
<01>(01)              RN-SERVER System Class
<42>(66)              PCF Expander    (Hier fehlt mir noch der Daten Aufbau)
<53>(83)              SERVO (RNSNET)  600 - 2000 µS 2 Bytes also werte zwischen 0-65535 wo bei die Forderen werte wirklich gehen
<62>(98)              RNBFRA 1.2
<64>(100)             PC zu PC im Byte 7 (Position 6) Steht welcher Typ von Daten <01> KeyValue <02> Binär
<65>(101)             PC zu PC im Byte 7 (Position 6) Steht welcher Typ von Daten <01> KeyValue <02> Binär
<66>(102)             PC zu PC im Byte 7 (Position 6) Steht welcher Typ von Daten <01> KeyValue <02> Binär
<82>(130)             AD-Wandler im Roboter (es kann maximal 256 stück geben) Auflösung 2Byte also 0 - 65535
<83>(131)             I/O Port              (es kann maximal 256 stück geben) Auflösung 1 Byte also 0-255
<84>(132)             Schrittmotor    (Hier fehlt mir noch der Daten Aufbau)
<85>(133)             Getriebemotor   (Hier fehlt mir noch der Daten Aufbau)
<86>(134)             Roboterlage (Kompass) 2,4,6 Byte 2 Byte muß 6 können 
                      Die ersten 2 Himmelesrichtung 0-3600 (wert dur 10 teilen)
                      Die zweiten 2 Kippwinkel rechts/Links   
                          Kippwinkel = 0 Lage normal 
                          Kippwinkel = 900 Roboter liegt auf der Linken seite
                          Kippwinkel = 1800 Roboter liegt auf auf dem Kopf 
                          Kippwinkel = 2700 Roboter liegt auf dr Rechten Seite
                      Die dritten 2 Kippwinkel Vorne/Hinten 
                          Kippwinkel = 0 Lage normal 
                          Kippwinkel = 900 Roboter Steht auf der Nase
                          Kippwinkel = 1800 Roboter liegt auf auf dem Kopf
                          Kippwinkel = 2700 Roboter Sitze auf dem Hintern
                      



Init PC <-> Roboter:
PC hält den Comport offen Roboter muß sich melden.
Daten                            was geht wirklich über V24                    Richtung     Bedeutung
<01><00><00><00>                 <A9><01><00><00><00><01><AA>                  Robi -PC     Heartbeat
<05><00><09><00><00>			 <A9><05><00><09><00><00><0C><AA>              PC - Robi    Next Gib mir Mal den Typ des gerätest 0
<09><00><25><00><01><82><00>     <A9><09><00><25><00><01><82><00><AF><AA>      Robi -PC     IAM Ich bin ein ADC habe die Adresse <25> und es gibt noch mehr Geräte nächste Adresse ist die 1
<05><00><09><00><01>             <A9><05><00><09><00><01><0D><AA>              PC - Robi    Next Gib mir Mal den Typ des gerätest 1 
<09><00><29><00><02><82><01>     <A9><09><00><29><00><02><82><01><A1><AA>      Robi -PC     IAM Ich bin ein ADC habe die Adresse <29> und es gibt noch mehr Geräte nächste Adresse ist die 2
<05><00><09><00><02>             <A9><05><00><09><00><02><0E><AA>              PC - Robi    Next Gib mir Mal den Typ des gerätest 2 
<09><00><30><00><03><83><00>     <A9><09><00><30><00><03><83><00><B9><AA>      Robi -PC     IAM Ich bin ein IO Port habe die Adresse <30> und es gibt noch mehr Geräte nächste Adresse ist die 3
<05><00><09><00><03>		     <A9><05><00><09><00><03><0F><AA>              PC - Robi    Next Gib mir Mal den Typ des gerätest 3 
<09><00><00><00><FF><62><00>     <A9><09><00><00><00><FF><62><00><94><AA>      Robi -PC     IAM Ich bin ein RNBFRA 1.2 habe die Adresse <00> und es Gibt keine Weiteren geräte Mehr
Kompass ist jetzt drin (Lage).
US Entfernungsmesser, Infrarot Entfernungsmesser müssen nicht definiert werden den das sind AD's oder man mach noch so was wie entfernung und richtung aber bestimmt nich den Typ das währe in Meinen augen ja kontra produktiv den alles soll ja mit allen können. Was interessiert mich wie die Daten erzeugt werden.

Display, Tastatur ist das einzig wo ich überhaupt keine Idee habe.

So jetzt muß ich mal was für den Hof machen vielleicht heut nacht mehr mal sehen.

Gruß

PS: 492.77 km Berlin -> Freiensteinau