Hallo Leute,
wer hat schon einmal ein Projekt mit dem Wiport von Lantronix
realisiert?
Ich möchte mit dem Wiport eine TCP Verbindung zu einem Server aufbauen.
Dann möchte ich, mit einem Daemon, der an dem Port lauscht wo der Wiport
anklopft, eine PHP Script ausführen, das die auf dem Wiport generierte
Webseite abruft. Leider gibt es immer Probleme, so dass der Daemon das
Script nicht ausführt.
Wer kann mir hier einen Tipp geben? Wie würdet ihr das lösen? Man findet
auch keine Bsp. oder anderen Projekte, die in die Richtung gehen...
Danke :-)
Was gibt es denn für Probleme?
Wer ist hier Client und wer Server? Der Wiport kann doch immer nur eins
sein. Wenn er sich als Client am Server connectet, wie kann dann der
Server bei ihm eine Webseite abrufen?
Der Lantronix XPort arbeitet im Prinzip genauso, nur über Leitung (was
der Wiport auch kann).
--
Das ist mir dann doch etwas zu teuer. Da bekomme ich ja für die Hälfte
schon einen Wlan-Router mit Linux drauf. Da werde ich wohl in absehbarer
Zeit keine Kommentare zu dem Ding abgeben können.
Hallo,
habe den Wiport jetzt schon am laufen. Leider wird die TCP Verbindung
dauerhaft ausgeführt. Aber warum?
Ich baue eine TCP Verbindung zum Server an PORT X auf. Nun stoße ich den
Daemon, welcher an der ein PHP Script ausführt.
Dadurch das die TCP Verbindung nicht geschlossen wird, wird aber das
Script immer wieder ausgeführt.
Wie kann ich den Socket schließen, nachdem der Daemon einmal ausgeführt
wurde?
Ich komme einfach nicht weiter...
Ich bin dankbar für jeden Tipp.
Bye Patti
Wie hast den die Verbindung aufgebaut?
Beim "normalem" XPort gibts da extra ein Modi, in dem man mit
Cxxxx.xxxx.xxxx.xxxx/portLF oder so ähnlich eine Verbindung aufbaut. Mit
EOT kannst die dann wieder verbinden. Denke mal das ist beim Wiport
genau so. Einfach mal in die Doku schauen, steht alles drin ;)
Gruß
Philipp
Userguide gra wiedergefunden...
Schau mal unter "Manual Connection" (musst den Wiport natürlich
entsprechend konfigurieren) da steht alles.
Beim mir läuft das auch prima.
Lass den Daemon doch was zurücksenden... Irgendeine Bestätigung.
Oder noch einfacher, lass doch einfach den WiPort die ganzen Daten
senden, dann brauchst das ganze Theater nicht. WiPort stellt die
Verbindung her, sendet seine Daten, bekommt evt noch eine Bestätigung
und trennt die Verbindung dann wieder.
Meiner Meinung nach die sauberste Lösung.
@PM
Das mit dem Senden geht meines Erachtens nicht. Ich habe schon etliche
Stunden mit einer Lösung des Problemes verbracht.
Ich kann nur eine TCP Verbindung aufbauen aber nichts senden.
Die Daten liegen dann auf dem Wiport als HTML Seite vor und werden
abgeparst (wenns denn mal ginge :-( )
Oder habe ich da doch was falsch verstanden? Wenn es ginge, das wäre ja
perfekt. ABer ich wüste nicht wie...heul
Patti
Naja, musst Dir ja "nur" serverseitig einen Prozess schreiben der auf
Port X horcht. Zu dem Port verbindet sich der Wiport und sendet seine
Daten (ggf nach einer Authentifizierung).
Das Programm kann die Daten dann in ein Datenbank schreiben oder sonst
was damit machen.
Gehen wird das auf jeden Fall (hab mal kurzzeitig in einer Firma gejobbt
die haben das so gemacht), aber frag jetzt nicht wie das serverseitig
aussehen muss, da kenn ich mich nicht aus. Einfach mal nach "socket
programing" googlen, da solltest ausreichend Infos finden.
Philipp
@Philipp
Meinen wir das Gleiche? Du meinst doch auch das der Wiport die Daten
nicht senden kann, oder?. Ich kann doch Serverseitig nur den Daemon
laufen lassen der an Port X lauscht. Wenn dann der Wiport die
TCP-Verbindungen aufbaut. Erkennt der Daemon dies und führt dann die
parsen.php aus. In der parsen.php wird mit fsockopen dier Webseite vom
Wiport und geholt.
Patti
PS: Danke für deine Zeit :-)
Es ist eher unmöglich, jemandem eine Website per TCP zu schicken, die
dieser dann (auch gegen seinen Willen) "ansieht".
Der Reglefall ist doch, dass ein Client (das kann auch ein Server im
Internet sein) eine TCP/IP-Verbindung zu einem Server aufbaut, und bei
diesem per HTTP-Request die Internetseite anfrangt.
Um einen Computer dazu zu bringen, sich eine Website herunter zu laden,
benötigt man einen "Trigger". Das ist entweder ein Cronjob oder ein
externes Ereignis. Dazu ghören dann auch irgendwelche Deamons, die auf
irgendwelche Verbindungen (z.B. UDP) warten und darauf dann reagieren.
Sollte also kein Problem darstellen, wenn man die beiden Server
programmieren kann...
Der Daemon erkennt ja die TCP-Verbindung des Wiport, nur scheint er
diese nicht wieder zu schließen. Dadurch kann man nicht auf die vom
Wiport generierte Webseite zugreifen, da der Wiport nur eine Verbindung
herstellen kann.
Hab ich da ein theoretisches Problem oder wo ist der Haken?
Ja, aber warum so umständlich...
Wie ich Dich verstanden habe hast Du Daten und die sollen an den server
gesendet werden.
Dein Weg: HTML Seite erzeugen, Server Triggern, Server holt sich die
HTML Page und filter sich da dann die Daten raus um sie abzuspeichern.
Warum nicht: Werte werden über Wiport an den server gesendet (per TCP),
der Speichert die Daten und gut ist. Alles ohne HTML und parsen.
Philipp
Hi Philipp,
leider kann der Wiport keine Daten per TCP schicken. Er kann nur eine
Anfrage an eine IP:Port machen. Sonst wäre es ja alles nicht so
umständlich.
Meine anfänglichen Probleme, daß die Verbindung nicht beendet wird ist
auch erledigt (Einstellungssache im Wiport).
Im Augenblick funktioniert schon der Daemon und das parsen mit fsockopen
wird auf jedenfall ausgeführt. Leider gibt es einen "111" Fehler.
Patti
Klar kann er das, baust einfach die Verbindung (wie ich weiter oben
schon beschriebe habe) und dann wird alles was über die serielle
Schnitstelle vom Wiport reinkommt gleich weiter zum Server gesendet.
So hab ich mir auch u.a. ein Abfrage meines email Postfaches gebaut, um
zu schaun ob mails da sind ohne den PC einschlaten zu müssen.
Das verstehe ich nicht ganz, Philipp!
Kannst Du nochmal genau erklären wie man den Wiport einstellt um damit
Daten per TCP zu senden!?
Beim mir wird der Wiport über serielle Schnittstelle vom Mikrocontroller
angesteuert. Und jetzt könnte ich Daten vom Mikrocontroller an meinen
Server senden....ist das richtig?
Danke für deine Hilfe!
Patti
Hmm, also ich würd sagen Du solltest Dich dann erst mal mit der
grundlegenden Funktionsweise auseinander setzen... Steht alles im User
Guide.
Konfigurierst beim Wiport entsprechend die serielle Schnitstelle und
setzt ihn auf Manual Connection.
Dann sendet der uC über die serielle Schnitstelle
Cxxx.xxx.xxx.xxx/portLF (C zum verbinden, x ist IP Adresse ders Servers,
Slash als Trennzeichen, port durch die Portnummer am Server ersetzen,
und mit LF (0x0A) am Ende). Darauf hin baut der Wiport die Verbindung
auf. Alle weiteren Daten die der uC jetzt über die serielle Schnitstelle
sendet werden an den Server weitergelietet. Willst Du z.B. Messwerte
übertragen sendest Du die einfach: Temp1:23.4;Temp2:26.0;CRLF
Daten kommen genau so am Server an, und da kannst die dann weiter
verarbeiten.
Wenn alle daten gesendet sind, einfach mit dem uC EOT (0x04) senden und
die Verbindung wird abgebaut.
Fertig.
Aber wie gesagt, steht auch alles in der Doku.
Hallo Philipp, das funktioniert tatsächlich!
Ich weiß garnicht wie ich dir danken kann!? Wie wärs mit deiner
Kontonummer :-) ?
Kannst Du mir noch sagen wo das im UserGuide steht? Ich hatte die Doku
schon 3 mal durchgelesen und nichts gefunden!
Tausend Dank!!!!!!
Hi,
mmm, das mit der Kontonummer klingt gut ;)
Das ganze steht im User Guide unter
5: Configuration via Serial Mode or Telnet Port
->Connect Mode
->b) Response
->Manual Connection
In der Version die ich hab(aktuelle von Lantronix Seite) steht das auf
Seite 42.
Gruß
Philipp
Naja, das ist ja der Grund warum es den Wiport überhaupt gibt... wird
also nicht extra erwähnt, und ist ja eigentlich der Grund warum es das
Ding überhaupt gibt.
(Wenn Du das umbedingt lesen möchtest, steht in
2: Introduction
-> Capabilities
-> geleich der erste Aufzählungspunkt
)
@PM
Ich habe immer noch starke Probleme beim senden. Der Wiport funktioniert
manchmal einwandfrei. Ansonsten meldet er sich auf der Fritzbox an und
sendet keine Daten.
Wer kennt solche Probleme mit dem Wiport? Wie empfindlich ist der Wiport
gegenüber Störungen?
Danke Euch.
Patti
Sorry, dazu kann ich leider nix sagen. Hab nur mit dem XPort gearbeitet.
Aber WiPort hat doch auch "normalen" Netzwerkanschluss.
Lass ihn doch erst mal darüber laufen und schau ob alles einwandfrei
läuft über einen längeren Zeitraum (ggf mit Wireshark).
Sollte das dann zuverlässig laufen noch mal an den WLAN Einstellungen
fummeln. Evt im abgeschottetem Netz erst mal ohne Verschlüsselung und
sich dann an den Fehler rantasten.
Gruß
PM