Forum: Mikrocontroller und Digitale Elektronik Matchport response


von Michse (Gast)


Lesenswert?

Hallo allerseits!

Ich bin dabei ein älteres Projekt zu modernisieren und möchte dazu Daten 
von meinem PC via Ethernet(HTTP Requests) an dem Matchport und dann 
seriell an einen Microcontroller(STM32) und vice versa senden.

Zum Problem:

Der Matchport empfängt den POST Request vom PC und leitet ihm auch 
seriell weiter jedoch ist es mir nicht gelungen auf den Request zu 
antworten.

Testaufbau:

PC1 <Ethernet> Matchport <Seriell> PC2(Terminal)


Nachdem der Request abgesetzt wurde wartet PC1 auf die Response doch 
sobald ich vom Terminal etwas zurückschicken möchte wird die Verbindung 
abgebrochen.

Gibt es da einen Header der mitgeschickt gehört?

Danke im Vorraus!

von fop (Gast)


Lesenswert?

Du schreibst von einem MatchPort NR aus dem Hause Lantronix ?

von Michse (Gast)


Lesenswert?

Sry für die ungenaue Beschreibung. Es handelt sich um einen Matchport 
b/g (Lantronix).

von guest (Gast)


Lesenswert?

Michse schrieb:
> Gibt es da einen Header der mitgeschickt gehört?

Den HTTP Response Header vielleicht? Also der Status sollte wenigsten am 
PC ankommen: "HTTP/1.1 200 OK"
Optional weitere Headerzeilen. Nach einer Leerzeile folgt dann der 
eigentliche Inhalt.

Was siehst Du denn von dem POST Request auf der seriellen Schnittstelle? 
Wenn der Anfang etwa so aussieht: "POST /xxx HTTP/1.1", dann mußt Du das 
HTTP-Protokoll wohl selber implementieren.
https://tools.ietf.org/html/rfc7230 ff.

Im Zweifelsfall nimm Wireshark o.ä. und schau Dir an was da tatsächlich 
hin- und hergeht.

von Michse (Gast)


Lesenswert?

Ich bin derzeit nicht daheim und hab keinen zugriff auf den genauen 
Wortlaut der ankommenden Message, aber sie sieht so aus wie du es 
beschreibst => POST /xxx HTTP/1.1 xxx bis zu dem Text den ich 
mitgesendet habe(Fürs senden verwende ich Postman). Zurück kommt aber 
nichts(Wireshark) und Postman "wartet" auf eine Antwort die niemals 
kommt.

von guest (Gast)


Lesenswert?

Michse schrieb:
> (Fürs senden verwende ich Postman)
Das hier?
https://www.getpostman.com/

An welche Portnummer sendest Du den Request? Die Standardports für die 
seriellen Interfaces des Matchport sind wohl 10001 & 10002.

von Michse (Gast)


Lesenswert?

Genau das verwende ich. Port ist 10001. Ich poste den kompletten Request 
sobald ich wieder darauf zugriff habe.

von guest (Gast)


Lesenswert?

Als minimale Antwort sollte dann sowas reichen
1
HTTP/1.1 200 OK<CR><LF>
2
Connection: close<CR><LF>
3
<CR><LF>
4
Hello World
Du must bei Deinem Testaufbau also gegebenenfalls drauf achten, daß dein 
Terminal am seriellen Port CRLF als Zeilenende vervendet.
Irgenwie müßtest Du danach auch noch die TCP-Verbindung trennen.

Schöner wärs natürlich da noch ein paar weitere Header mitzusenden (z.B. 
"Content-Length", "Content-Type").

von Michse (Gast)


Lesenswert?

Danke für den Hinweis mit dem CRLF, jetzt kommt etwas vom Matchport zum 
PC(Mit Wireshark erfasst).

Beim Request kommt im Terminal folgendes an:

POST / HTTP/1.1
cache-control: no-cache
Postman-Token: xxx
Content-Type: text/plain
User-Agent: PostmenRuntime/6.3.2
Accept: */*
Host: xxx
accept-encoding: gzip, deflate
content-length: 15
Connection: keep-alive

Hello World


Die Verbindung ist offen und ich kann Daten versenden :) nur wie 
schließe ich die Verbindung wieder?

von guest (Gast)


Lesenswert?

Michse schrieb:
> Die Verbindung ist offen und ich kann Daten versenden :) nur wie
> schließe ich die Verbindung wieder?

Must Du mal in die Doku zum Matchport schauen.
Wenn Du den Modemmode benutzt eventuell mit "+++ATH<CR><LF>" o.ä. 
Irgendwo stand auch was von <EOT> (0x04) und ein Timeout ließe sich wohl 
ebenfalls konfigurieren.

von guest (Gast)


Lesenswert?

... achso, irgendein Hardwarepin gibt es anscheinend auch noch.

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.