Forum: Mikrocontroller und Digitale Elektronik Wiport Daten an Server -> Erfahrungen bzw Einstellungen


von Patti (Gast)


Lesenswert?

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 :-)

von Patti (Gast)


Lesenswert?

Arbeitet denn keiner mit dem Wiport?

Gruß Patti

von Rolf Magnus (Gast)


Lesenswert?

Bisher noch nicht. :)
Wo bekommt man den denn und wieviel kostet er?

von Patti (Gast)


Lesenswert?

Gibt bei Segor, ich glaube um die 130€ mit Antenne :-)

von vinculum (Gast)


Lesenswert?

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).

--

von Rolf Magnus (Gast)


Lesenswert?

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.

von Patti (Gast)


Lesenswert?

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

von PM (Gast)


Lesenswert?

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

von Patti (Gast)


Lesenswert?

Man findet dazu aber auch nichts passendes im Netz. Ich verzweifel hier 
schon völlig...

Patti

von PM (Gast)


Lesenswert?

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.

von Patti (Gast)


Lesenswert?

Und wie erkenne ich, dass der Daemon angestoßen wurde und ich die TCP 
Verbindung Wiport - Seitig trennen kann?

Patti

von PM (Gast)


Lesenswert?

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.

von Patti (Gast)


Lesenswert?

@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

von PM (Gast)


Lesenswert?

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

von Patti (Gast)


Lesenswert?

@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 :-)

von Rahul D. (rahul)


Lesenswert?

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...

von Patti (Gast)


Lesenswert?

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?

von Patti (Gast)


Lesenswert?

Man findet auch keine Beispiele zu dem Wiport. Er scheint ja überhaupt 
nicht verbreitet zu sein.
Patti

von Simon K. (simon) Benutzerseite


Lesenswert?

Lass es doch einfach bei einem Thread:
Beitrag "Daemon starten unter Xampp"

von Patti (Gast)


Lesenswert?

@Simon
Es handelte sich aber um 2 verschieden Problem und Bereiche!
Gruß Patti

von STK500-Besitzer (Gast)


Lesenswert?

Lass den WiPort einfach solange UDPs schicken, bis der betreffende 
Server auf seine Aufforderung reagiert.

von PM (Gast)


Lesenswert?

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

von Patti (Gast)


Lesenswert?

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

von PM (Gast)


Lesenswert?

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.

von Patti (Gast)


Lesenswert?

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

von PM (Gast)


Lesenswert?

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.

von Patti (Gast)


Lesenswert?

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!!!!!!

von PM (Gast)


Lesenswert?

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

von Patti (Gast)


Lesenswert?

Da steht:
1
Attempts to connect when directed by a command string
2
received from the serial port. The first character of the command
3
string must be a C (ASCII 0x43), and the last character must be
4
either a carriage return (ASCII 0x0D) or a line feed (0x0A). No
5
blanks or space characters may be in the command string.
6
Between the first and last command string characters must be a
7
full or partial destination IP address and can include a
8
destination port number.
9
The IP address must be in standard dot-decimal notation and
10
may be a partial address, representing the least significant 1, 2,
11
or 3 bytes of the remote IP address. The period is required
12
between each pair of IP address numbers.
13
If present, the port number must follow the IP address, must be
14
presented as a decimal number in the range 1-65535, and must
15
be preceded by a forward slash (ASCII 0x2F). The slash
16
separates the IP address and the port number. If you omit the
17
port number from a command string, the internally stored remote
18
port number starts a connection.
19
If a partial IP address is presented in a command string, it is
20
interpreted to be the least significant bytes of the IP address and
21
uses the internally stored remote IP address to provide the most
22
significant bytes of the IP address. If the IP address entered is
23
0.0.0.0/0, the device server enters Monitor Mode.

Also ich finde dort keine Erklärung, dass man zwischen Start-String und 
EOT Daten senden kann!?

von PM (Gast)


Lesenswert?

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
)

von PM (Gast)


Lesenswert?

- Communication between TCP and UDP to serial.

von Msp 4. (msp430_crew)


Lesenswert?

@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

von Msp 4. (msp430_crew)


Lesenswert?

Ich bin am verzweifeln...

von PM (Gast)


Lesenswert?

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

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
Noch kein Account? Hier anmelden.