-
Werde die Defintionen dem Nächst fertig habe weil ich die eh noch für meine Prg's zusammen schreiben muß. Leider hat mich das formu mal wieder nich benachrichtig deswegen kommt mein post erst jetzt.
Habe so eben das Zip updatet. Der AVRSim kann jetzt ganz einfach script datei lesen. Der Prüsummen und kodierung zum RNCom Programm passiert von alleine.
CRLF(Enter taste im Editor) heist neues Telegram jede zeile wird mit einem Abstan von ca. 100 mSec gesendet.
Datei inhalt
<00><01><02>
Hallo
jump 0
Das wird gesendet:
<A9><00><01><02><03><AA>
<A9><48><61><6C><6C><6F><46><AA>
das jump sprint wieder in die Zeile 0
Das sollte für die erst simulationen reichen.
Das jump ist nicht zingend ist da kein jump ende einfach mit der letzten Zeile.
Gruß
-
so jump und neuer befehl wait kann jetzt auch
wait 500 bedeutet warte mit der nächsten zeile 500 ms werte unter 10 ms macht er nicht. bei jump kann man auch ein zahl ran hängen die bei zurücksrpunk dann warten.
pro zeile sin 100 msec normal das habe ich halt so programmiert.
Gruß
-
Super, der Simulator läuft. Jetzt muss ich nicht immer meine Hardware anwerfen wenn ich was ausprobieren will.
Netter Gruß
-
das freut mich. Da sich die Mail's und die ICQ anfragen mit wie Funktiont das kann das oder das machen häufen muß ich heute wohl mal an die Doku ran.
Gruß
-
So habe mal an gefangen mein Les weiße des protokolls und mein erweiterten defintionen in ein Text datei zusammen zu Packen. Die wir dem zip File bei gepackt. Hier eine Vorab version zu beurteilung.
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
Gruß
-
Das mit der Docu ist prima.
Wenn Du nichts dagegen hast werde ich das schrittweise mit in die gesamt Docu übernehmen.
Da Du ja den Multicast Zweig verfolgst brauchen wir da eine Beschreibung.
Ich muss mal sehen, dass ich Deine Komponenten auch korrekt in meinen Grafiken wiedergebe.
Ich mache zurzeit vieles der Docu in Powerpoint weil es sich für diese Sache als recht praktisch erwiesen hat. Falls Du was Grafisches machen willst kann ich das empfehlen. Da kann man schön Verbindungslinien, Grafiken, Textfelder und sonstiges einbinden.
Netter Gruß
-
Klar habe ich da nichts gegen wenn du das in die Gesamt doku auf nimmst.
Multicast werden ich beschreiben kein Problem.
Ich nehme Visio zum erzeugen der Bilder das finde dort auch sehr einfach.
Gruß
-
so aber nächsten winter muß er fertig sein ich hasse so was am frühen morgen.
siehe:
https://www.roboternetz.de/phpBB2/vi...=265999#265999
-
Genau genommen sollte es schon früher fertig sein.
Die Vogonen haben zwar vergangenes Jahr das Graswachstum abgeschaltet.
Ich vermute aber, dass das nicht von Dauer ist. Und ich bald wieder von Hand den Rasen mähe. Das ist für jemanden der vor geraumer Zeit beschlossen hat einen automatischen Rasenmäher zu bauen eine echte Niederlage.
Ich baue gerade einen schnelleren Rechner für mich zusammen.
Vielleicht geht es dadurch schneller ;-)
Ansonsten sieht es für ein erstes einfaches Grundsystem schon gar nicht schlecht aus. Da wir bereits Adressen festlegen und Die Messages über RS232 und TCP/IP laufen lassen.
Auf dem Level 3, also Bedeutung des Messages –Inhalts sollten wir für eine erste Ausführung auch schon was festlegen.
Was ich meine:
ADC Wandler: Integer und davon 10 bit
Servo: Integer Bereich 600 -2200
Kompass: Integer: Bereich 0-360
Koordinaten: x Integer, y Integer. Format erst x dann y innerhalb einer Message.
Das ist jetzt als Beispiel gedacht. Aber wenn wir wollen, dass ein allgemeines Zusammenspiel stattfindet sollten wir da mal was vorläufiges festlegen.
Und am Ende des Jahres fegt nur noch der Roboter Schnee.
Netter Gruß
-
Hat den dein Roboter das Mechanisch potenzial den Rassen zu mähen ?
Hätte hier so ca. 8000 m² übungs Fläsche *g*. Ausmähen wenn die Pferde nicht drauf sind.
Hättest du vieleicht mal luß hier her zu kommen ? Niemand habe ich fast so weit. Dann könnten wir bei mir mal ein RNCom Workshop machen.
Hätte auch ein geschlosse Halle (400 m²) zu Testen so fern das wetter so gut ist das wir die Pferde raus schmeissen können oder Offenstall fertig ist.
Zu Definitionen schreibe ich getrennt was da muß ich noch mal überlegen.
So weit