Hallo Leute,
es muß Kongretter werden sonst steige ich aus.
Ich habe schon mal wochen lange diskutiert nd dann wochen Programmiert und jetzt habe ich viel gelernt und das wars dann das wäre dann das dritte oder vier mal hier im forum.
Ich versuche das jetzt mal ein bisschen zu trennen UlrichC hätte gerne einen der für Ihn alles macht. Was sicher auch für die meinsten VB programmieren hier unter uns zu trifft. UlrichC zwar aus anderen gründe aber das ist ja mal egal.
Wir sind uns einig das echte textteile für RS232 und für AVR einfach zu heftig sind oder in der PC welt kein problem und schön weil sie lesen kann.
Drum bin ich der Meinung das wir das trennen müssen so weh wie das auch tut.
PicNick hat folgen auf bau beschrieben:
HEADER / SOURCE-ID / DESTINATION-ID / MsgNR / Action /DataLen / Data (optional).......
Den finde ich gar nicht mal schlecht.
Wir müssen nur ein Teil tauschen die MsgNR denn nummer eindeutig durch das sytem zu bekommen wird nix.
Ich würde daraus ein resposnummer machen mit der größe ein WORD das sollte hin passen.
Meine Defintion von der Message:
HEADER = 3 byte => immer RNM => RoboterNetzMessage
SOURCE = 2 Byte => WORD 0000 und FFFF dürfen nicht verwendet werden.
DESTINATION = 2 Byte => WORD 0000 und FFFF dürfen nicht verwendet werden.
resposnummer = 2 Byte => WORD
Action = 2 BYte => WORD => 65535 Aktionen
DataLen = 2 Byte => WORD wieviel Bytes kommen noch bis ende
Data = 0 Byte bis 65535
Aktionen im Bereich von 0 bis 4000 sind fest definiert und drüber darf jeder machen was er will
ich denke 4000 Sollte reiche die zahl ist aber nur aus gedacht.
Wird könnten so eine art DHCP machen:
wenn was online geht dann muß es grundsätzlich mal so eine Nachricht schicken:
RNM HEADER
<00><00> SOURCE
<FF><FF> DESTINATION
<00><00> resposnummer
<00><00> Action
<00><00> DataLen
Das ist jetzt die Broadcast anfrage nach einer eingener ID.
Kommt inerhalb von 5 sec keine Antwort war man wohl der Erste und darf sich was aussuchen.
Bekommt man die Antwort:
RNM<ID des Senden modules><00<00><00><00><00><01><00><01><Neue ID>
Gibt es einen der die Id's vergibt.
Bekommt man:
RNM<ID des Senden modules><00<00><00><00><00><02><00><00>
kann man sich zwar eine aus suchen aber diese ID's sind schon in verwendung.
Das baucht man natürlich nur wenn man unbedingt dynamiche adressen vergabe braucht.
Im internet muß auch einer die Ip's in den DNS reinkopfen.
Wie finden ich meinen Weg:
RNM<ID des Senden modules><FF><FF><00><01><00><03><00><00>
Wird jetz von dem modul gesendet. Trift es jetzt auf ein Teil welche weiß das es Procy spiel muß
wird einfach RNM<ID des Senden modules><FF><FF><00><01><00><03><00><01><ID des Proxy moduls>
daus und wenn ein zweite kommt kommt noch ein word dran.
Was ist ein Proxymodul:
ein AVR der zu Beispiel eine RS232 hat und auf der anderen seite ein IC2 Bus muß jetz sein ID anhängen.
und per RS232 weiter schicken so weiß der PC die ID'S die Hinter dem AVR am RS232 Port hängen.
Wenn jetzt ein PC modul an der AVR Hinter dem Proxy AVR was schicken will macht er einfach:
RNM<ID des Senden modules><id Procy><resposnummer><00><04><länge nachricht><nachricht>
wo bei die nachricht wieder ganz normal auf gebaut ist mit ausnahme des RNM vorne dran.
Bei PC => IC2 verbindung muß halt die ID und die Adresse des I²C Gleich sein.
So jetzt bin ich mal gespannt.
In den 4000 Actions könnte man dann auch nocht die smir's Telegramme verstecken.
gibt halt ein großes Dokument aber mit ein bisschen sorgfallt sollte es klappen.
Auf dem PC könnte man dann in der smirs welt nocht die ID's durch namen ersetzt dann wird es lesbarer.
so jetzt habe ich mir die halbe nach um die Ohren gehauen nur weil ich diesen text nicht lassen
konnte obwohl ich eineglich mal mein Robi zum laufen bringen sollte.
Gruß
Lesezeichen