Hallo, ich weiß, das Thema XPort wurde schon einige male angesprochen. Leider finde ich weder in den Datenblättern/"User-Guides" etc. von Lantronix, noch in alten Threads hier konkrete Antworten auf meine Fragen. Was ich haben möchte: Es gibt bereits ein Gerät mit mit einem Mikrocontroller mit RS232-Schnittstelle. Dieses Gerät möchte ich in ein Netzwerk einbinden können. Ich möchte dann folgende Funktionen haben: 1) Mit einem beliebigen Browser sollen aktuelle Sensorwerte des Geräts auf einer HTML-Seite angezeigt werden. Aktuatoren auf Geräteseite sollen über Buttons in der HTML gesteuert werden können. 2) Das Gerät soll E-Mails mit den aktuellen Daten senden, wenn "gewisse Ereignisse" eingetreten sind. Ich "vermute", dass diese beiden Sachen sowohl mit XPort, als auch XPort-AR möglich sind, weiß aber nicht wie. Macht "man" das mit Java-Applets? Oder wie geht das? Was zu genüge im Internet zu finden ist sind Anleitungen, wie man den XPort als "virtuelle serielle Schnittstelle" verwendet. Das möchte ich nicht. Vielleicht hat jemand Tipps/Links zur Hand. Viele Grüße, Alex
Ich habe so etwas mal für einen Kunden entworfen, im Prinzip hast du drei Möglichkeiten (mit dein kleinen XPorts): a) Ein Java Applett und dann kannst du 1:1 dein eigenes Protokoll sprechen b) Der uC kommuniziert direkt mit dem Browser und liefert alle HTML/JS/CSS Daten aus und der XPORT agiert nur als RS232 zu TCP Gateway und du implementiert im Prinzip einen keleinen HTTPServer auf dem uC c) HTML/JS/CSS und Grafiken liegen auf dem XPORT und die Steuerung geschieht über AJAX, der uC implementiert rudimentäres HTTP sodass du die Request vom JS entgegenimmst und per JS antwortest. Bei den Xport AR ist wohl noch mehr möglich, liegt aber bestimmt auch Preislich etwas höher.
Hallo Läubi, vielen Dank für deinen sehr konstruktiven Beitrag. Läubi .. schrieb: > a) Ein Java Applett und dann kannst du 1:1 dein eigenes Protokoll > sprechen Kannst du das vielleicht etwas näher erläutern? Ich habe noch nie (bewusst) ein Java-Applet erstellt. Macht man das mit Eclipse? Wie spreche ich damit die serielle Schnittstelle an? Gibt es dann eine API, oder wie läuft das? > b) Der uC kommuniziert direkt mit dem Browser und liefert alle > HTML/JS/CSS Daten aus und der XPORT agiert nur als RS232 zu TCP Gateway > und du implementiert im Prinzip einen keleinen HTTPServer auf dem uC Das habe ich hier im Forum auch schon gesehen. Das kann ich mir auch gut vorstellen, dass das läuft. Dann frage ich mich jedoch: Warum soll ich einen teuren XPort dafür benutzten. Von TI gibt es das Stellaris-Modul (ohne integrierten Webserver). Das kostet nur die Hälfte des XPorts. Außerdem wollte ich das nach Möglichkeit vermeiden, auch wenn es wahrscheinlich das für mich einfachste ist, da ich dazu quasi nichts neues lernen muss. > c) HTML/JS/CSS und Grafiken liegen auf dem XPORT und die Steuerung > geschieht über AJAX, der uC implementiert rudimentäres HTTP sodass du > die Request vom JS entgegenimmst und per JS antwortest. AJAX in der Webprogrammierung habe ich schon benutzt. Jedoch verstehe ich noch nicht, wie ich dann darüber auf die RS232 zugreifen können soll... Wie schaffe ich es, dass der XPort die HTML-Seite aus seinem integrierten Webserver lädt, den JS-Request aber an den µC durchreicht? > Bei den Xport AR ist wohl noch mehr möglich, liegt aber bestimmt auch > Preislich etwas höher. Etwa Faktor 2... Viele Grüße, Alex
Alex Bürgel schrieb: > Kannst du das vielleicht etwas näher erläutern? Ich habe noch nie > (bewusst) ein Java-Applet erstellt. Macht man das mit Eclipse? Im Prinzip reicht dir jede IDE (oder auch die Kommandozeile) welche Java Code compilieren kann. Zu Appletts selbst findet man auch viele Beispiel im Netz. Irgendwo gab es auch ein XPORT Spezifisches Beispiel ich finde es nur auf der Website nun nicht wieder. Alex Bürgel schrieb: > Wie spreche ich damit die serielle Schnittstelle an? > Gibt es dann eine API, oder wie läuft das? Auf Javaseite öffnest du einen Socket, alles was du da reinschreibst landet auf der seriellen Schnittstelle, alles was du auf die Serielle schreibst landet im Socket. Alex Bürgel schrieb: > Dann frage ich mich jedoch: Warum soll ich > einen teuren XPort dafür benutzten Ich kenne jetzt nicht das Stellaris Board, aber der XPORT "kann" noch eine ganze Menge siehe z.B. UserGuide (http://www.lantronix.com/pdf/XPort_UG.pdf) und nimmt halt das kanze TCP/IP Handling, DHCP und solche Späße ab. Alex Bürgel schrieb: > Jedoch verstehe ich noch nicht, wie ich dann darüber > auf die RS232 zugreifen können soll.. Du stellst einen einfachen Request an die XPORT Adresse, alles was per TCP gesendet wird landet dann bei dir auf der Seriellen und umgekehrt. Die Serielle Schnittstell läuft unter einem anderem Port als der interne Webserver, so kommt sich nix ins Gehege, allerdings musst du dafür entweder JSONP nutzen oder einen Speziellen Orgin Header mitsenden damit der Browser dies erlaubt.
Hallo Läubi und Danke nochmal! > Im Prinzip reicht dir jede IDE (oder auch die Kommandozeile) welche Java > Code compilieren kann. Zu Appletts selbst findet man auch viele Beispiel > im Netz. Also sind Applets ganze (kompilierte) Programme. Die liegen dann auf dem Server, werden beim HTTP-Aufruf zum Klienten übertragen und dort ausgeführt, korrekt? > Auf Javaseite öffnest du einen Socket, alles was du da reinschreibst > landet auf der seriellen Schnittstelle, alles was du auf die Serielle > schreibst landet im Socket. Gibt es da fertige Bibliotheken o.ä.? Woher bekomme ich den Zugang dieses Sockets bzw. wie "heißt" der Socket für RS232 auf dem XPort? Ob mir Lantronix dazu etwas sagen wird, wenn ich dort anfrage? > Du stellst einen einfachen Request an die XPORT Adresse, alles was per > TCP gesendet wird landet dann bei dir auf der Seriellen und umgekehrt. > Die Serielle Schnittstell läuft unter einem anderem Port als der interne > Webserver, so kommt sich nix ins Gehege, allerdings musst du dafür > entweder JSONP nutzen oder einen Speziellen Orgin Header mitsenden damit > der Browser dies erlaubt. In dieses JSONP bzw. Orgin Header muss ich mich dann mal ein bisschen einlesen. Davon habe ich noch nie etwas gehört. Viele Grüße, Alex
Alex Bürgel schrieb: > Gibt es da fertige Bibliotheken o.ä.? Woher bekomme ich den Zugang > dieses Sockets bzw. wie "heißt" der Socket für RS232 auf dem XPort? Das ganze läuft wie gesagt über Standrad Sockets, da braucht man nix XPORT spezifisches siehe http://docs.oracle.com/javase/1.4.2/docs/api/java/net/Socket.html Der Code könnte etwa so aussehen
1 | Socket s = new Socket("<ip des xport>", 10001); |
2 | OutputStream out = s.getOutputStream(); |
3 | out.write("Hallo\r\n"); |
4 | InputStream in = s.getInputStream(); |
5 | int byte = in.read(); |
Wie gesagt das ist alles recht XPORT unspezifisch. Alex Bürgel schrieb: > Also sind Applets ganze (kompilierte) Programme. Die liegen dann > auf dem Server, werden beim HTTP-Aufruf zum Klienten übertragen > und dort ausgeführt, korrekt? Ja, lies dich am besten etwas bei Google ein und starte mit einem Beispiel auf einer lokalen Seite. Der Vorteil eines Appletts ist einfach, dass der Browser den Clientcode mit ausliefert, du kannst aber auch ein "normales" java, C, C#, ... Programm schreiben, welches eben über einen Socket mit dem XPort kommuniziert.
Läubi .. schrieb: > Das ganze läuft wie gesagt über Standrad Sockets, da braucht man nix > > XPORT spezifisches siehe > > http://docs.oracle.com/javase/1.4.2/docs/api/java/... Super, das war die Information, die mir zum Verständnis gefehlt hat. Vielen Dank. Einzig ob ich Port 10001 verwenden kann ist fraglich. Port 80 wäre besser... der ist im Netzwerk ganz sicher verfügbar... Viele Grüße, Alex
Die Ports können in der Konfiguration des XPORTs geändert werden, 80 ist aber der des internen Webservers, solange das nicht durch einen Firewall geht sollte der Port 10001 unkritisch sein.
Läubi .. schrieb: > Die Ports können in der Konfiguration des XPORTs geändert werden, 80 ist > aber der des internen Webservers, solange das nicht durch einen Firewall > geht sollte der Port 10001 unkritisch sein. Wir befinden uns im Netzwerk einer großen Firma mit mehreren Standorten. Die Lösung soll auch zwischen den Standorten hinweg funktionieren. Ich weiß nicht, welche Ports hier wie freigegeben sind... kann man das irgendwie testen oder muss ich mich dafür an die IT-Abteilung wenden?
Hallo zusammen. Vielen Dank für die vorherigen Tipps. Das System läuft nun stabil. Ich krame den Thread trotzdem noch mal heraus, da es noch eine Frage gibt: Hat vielleicht jemand eine Idee, wie man eine txt-Datei, die im Dateisystem des XPort-ARs liegt byte für byte auslesen kann und sie über die serielle Schnittstelle schicken kann? Danke & Gruß, Alex
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.