Hallo Zusammen, ich habe einen XPort, der via Router mit einem PC und mehreren anderen XPorts verbunden ist. Ich benötige eine seielle Kommunkation des PC mit dem XPort. Dazu installiere ich einen virtuellen COM-Port auf dem PC und los geht's. Soweit so gut! Nun möchte ich aber auch, das der XPort auch mit seinen anderen Kollegen gelegentlich seriell kommuniziert (notfalls auch nur in eine Richtung - nämlich zu den anderen hin)! Weiß jemand ob das geht und falls ja, wie? Bin für jeden Tip dankbar!
Warum benötigst Du mehrere XPORTs?! Wieso tut es nicht nur einer?!
Soweit ich mich erinnere, kann man den XPort in Java programmieren ... was wohl auch nötig ist, wenn er selber aktiv werden soll. Normalerweise ist das ja ein passiver Server, d.h. ein Client baut eine TCP-Verbindung auf und sendet etwas. Das wird zur seriellen Verbindung und dem daran hängenden MC durchgereicht, der auch antworten kann, solange die Verbindung noch steht. Wenn der Client die Verbindung kappt ist Ruhe ... Frank
Hans schrieb: > Warum benötigst Du mehrere XPORTs?! Wieso tut es nicht nur einer?! weil mehrere Geräte vom PC aus gesteuert werden sollen und eines davon zusätzlich bestimmte Zuständes des Systems an die anderen weiterreichen soll, damit diese darauf reagieren können... Frank Esselbach schrieb: > Wenn der Client die Verbindung kappt > ist Ruhe ... Ich habe mal was von "UDP Broadcast" gehört - geht's vielleicht damit: ein XPort sendet einfach an alles was am Router hängt?!? quasi: jeder hört was irgendein anderer sendet...
Das wollte ich meinen. Die XPorts können ja über Ethernet kommunizieren. UDP Broadcasts sind eine Möglichkeit. Ansonsten bieten Sie auch den UDP-Mode 0. Dieser ist von Lantronix nicht dokumentiert, bietet aber die Möglichkeit, gezielt udp Pakete an unterschiedliche Empfänger zu senden. Dies ist dadurch möglich, dass man in Mode 0 das Startbyte (0x02), dann vier Byte IP und zwei Byte Länge des Datenpaketes voranstellt. Im Gegenzug wird ein solcher Header auch eintreffenden Paketen vorangestellt. Wieso Lantronix das nicht dokumentiert ist mir schleierhaft.
Hans schrieb: > Dies ist dadurch möglich, dass man in Mode 0 das Startbyte (0x02), dann > vier Byte IP und zwei Byte Länge des Datenpaketes voranstellt. Im > Gegenzug wird ein solcher Header auch eintreffenden Paketen > vorangestellt. > Wieso Lantronix das nicht dokumentiert ist mir schleierhaft. Mir auch. Der ganz UDP Kram ist nicht dokumentiert, macht es aber besoners einfach. Ist der Device Address Table dafür nicht auch irgendwie nutzbar? Der Rest funktioniert bei mir wie im Bild.
Ah ja - vielen Dank schon mal! Hans schrieb: > dass man in Mode 0 das Startbyte (0x02), dann > vier Byte IP und zwei Byte Länge des Datenpaketes voranstellt. Im > Gegenzug wird ein solcher Header auch eintreffenden Paketen > vorangestellt. Wenn ich das richtig verstehe bedeutet das, falls ich vier XPorts eine Nachricht schicken mnöchte, muß ich diese 4 mal an die entsprechenden Adressen senden und auf der Gegenseite dann die 6 hinzugefügten Bytes (IP + Länge) wieder aus der seriellen Zeichenkette rausfiltern. Und für die Antworten der 4 XPorts gilt genau dasselbe... Andy H. schrieb: > Der Rest funktioniert bei mir wie im Bild. Da ich im Bereich Netzwerk TCP/IP bzw. UDP nicht so bewandert bin, hätte ich gerne gewußt, was die im Bild gezeigten Adressen und Ports eigentlich bedeuten. Die Adresse ist der Host, der angesprochen wird, wenn man keine IP + Länge voranstellt?!? Ich würde hier erwarten, dass Die IP + Länge immer(!) angegeben werden muß... Und was bedeuten die Ports - warum gerade 8801?!? Noch etwas zur Hostverbindung: Ich habe mal UDP eingestellt und da hat der virtuelle COM-Port den XPort nicht mehr erreicht. Auch der device-manager schien nicht mehr zu funktionieren... Kann ich den virtuellen COM-Port auf dem PC irgendwie weiter nutzen, falls ich den XPort im UDP-Mode 02 betreibe?
rainer schrieb: > falls ich den > XPort im UDP-Mode 02 betreibe? Korrektur: es muss natürlich Mode 0 heißen - das Startbyte ist 0x02! rainer schrieb: > dann die 6 hinzugefügten Bytes > (IP + Länge) wieder aus der seriellen Zeichenkette rausfiltern. Korrektur: dann die 7 hinzugefügten Bytes (Startbyte + IP + Länge)... P.S.: eine Möglichkeit, dass nur einmal gesendet wird und alle empfangen diese eine Sendung gibt es wohl nicht?
Hans schrieb:
> UDP Broadcasts sind eine Möglichkeit
UDP Broadcast würde mich auch interessieren! Wie genau funktioniert das
eigentlich bzw. was man da einstellen?
atomi schrieb: > UDP Broadcast würde mich auch interessieren! Wie genau funktioniert das > eigentlich bzw. was man da einstellen? Eigentlich müsste es reichen als Zieladresse aaa.bbb.ccc.255 anzugeben. Manche router und manche switches lassen das aber nicht durch.
Andy H. schrieb:
> Eigentlich müsste es reichen als Zieladresse aaa.bbb.ccc.255 anzugeben.
Meinst Du, ich nehme als Adresse in der Erweiteruzng (die oben
beschriebenen 7 Bytes mit Datagrammtyp: 0x00) der seriellen Daten
einfach aaa.bbb.ccc.255 als Adresse?
Oder geb' ich in der Maseke Datagrammtyp 01 und ind der Adresstabelle
unten dann bei 1. aaa.bbb.ccc.255 ein.
Local Port Remote Port Remote Host usw. was gehört dahin, oder kann
man das schlicht vergessen?
Protocol - UDP Datagram Type 01 Accept incoming = YES (Daten empfangen =JA) Local Port = 12345 (Der Port auf dem Daten empfangen werden) Remote Port = 12345 (Der Port an den Daten gesendet werden) Remote Host = 123.456.789.255 (Broadcast-Adresse) Den einzelnen Xports vergibtst du dann Adressen im Bereich 123.456.789.1 ...2 ...3 usw. Das machst Du im Menüpunkt "Server" bei IP-Address. Mske 255.255.255.0 Gateway ist egal, solange kein Router eingebunden ist. So müsste es klappen meine ich
Hallo, irgendwie geht das alles am Thema vorbei - TCP,UDP,Broadcast,Port,Router ist völlig egal, solang man nicht den XPort dazu veranlasst, was zu senden, das tut er nämlich von sich aus nicht. Der angeschlossene µC muss dazu Daten über die serielle Schnittstelle an den XPort geben, und dabei können auch Adresse, Port usw. eingestellt werden, d.h. der µC kann Verbindung aufnehmen wohin er will, nicht der XPort. Es sei denn, man programmiert ein Linux-Programm, aber der XPort weiss ja von nichts. Gruss Reinhard
Hallo Reinhard, klar - der XPort macht von selbst nichts. Deshalb hier nochmal eine Klarstellung: Ich möchte einfach, das der MC dem XPort über die serielle Leitung Daten sendet und der XPort daraufhin dieses Daten an alle anderen angeschlossenen XPorts und den PC empfangenweiterleitet. Die empfangenen XPorts leiten diese Daten wiederum seriell an einen anderen MC weiter. Ich möchte nicht, dass die Daten immer nur an einen bestimmten Gegenüber weitergeleitet werden. Im besten Fall kann man irgendwie über die serielle Schnittstelle des XPorts steuern, wohin die Daten geschickt werden und ob sie von allen oder nur von einem XPort (bzw. PC) empfangen wedern. Außerdem sollte im Idealfall auch der PC etwas losschicken können, was entweder von allen XPorts oder auch nur von einen speziellen XPort empfangen wird - je nachdem was der PC gerade möchte...
rainer schrieb: > Ich möchte einfach, das der MC dem XPort über die serielle Leitung Daten > sendet und der XPort daraufhin dieses Daten an alle anderen > angeschlossenen XPorts und den PC empfangenweiterleitet. Hallo, das ist eben falsch gedacht (auch ohne XPort). Wenn der MC an 5 andere XPorts und an den PC Daten senden soll, dann muss er nacheinander 6 Verbindungen aufbauen und die Daten senden. Alles andere wie Broadcast führt bloss in die Irre (und geht vom MC aus wahrscheinlich garnicht). Am PC das Gleiche: entweder hast du für obige 6 MCs 6 virtuelle Comports (man kann ein solches Port nur mit einer IP-Adresse einrichten) oder du baust gleich selbst 6 TCP-Verbindungen nacheinander auf. Dann hast du auch Verbindungen mit Fehlersicherung. Am besten denkst du dir erst mal die XPorts weg und betrachtest das Ganze, als ob es normale V24-Verbindungen wären. Gruss Reinhard
Reinhard Kern schrieb: > Alles andere wie Broadcast > führt bloss in die Irre (und geht vom MC aus wahrscheinlich garnicht). Hallo Reihard, aber was soll dann dieses Broadcast überhaupt und warum wurde es hier so detailiert beschrieben, wenn sowieso nicht funktioniert?!? Gruß rainer
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.