Forum: Mikrocontroller und Digitale Elektronik ESP auf GET-Request vom Atmel antworten


von MOBA 2. (Gast)


Lesenswert?

Hallo,

ich verstehe nicht ganz, wie ich auf einen Get-Request antworten soll.
Ich nutze einen ESP8266 + ATXMEGA.

Wenn ich einen GET-Request sende (bspw. per URL am Browser), dann möchte 
ich darauf auf 2 Wege antworten.

1. einfach nur 200 (HTTP OK)
2. 200 (HTTP OK) mit Daten (bspw. hier jetzt einfach mal HALLO


Ich mache es so, was nicht geht:
1
usart_puts("AT+CIPSEND=");
2
  usart_ltoa(UserID);
3
  usart_putc(',');
4
  usart_ltoa((strlen(str) + strlen("HTTP/1.1 200 OK\nTESTDATEN\nConnection: close\nContent-type:text/html\n\n")));  //control bytes + bytes of befehl  
5
  usart_puts("\r\n");
6
  
7
  _delay_ms(2);
8
  
9
  usart_puts("HTTP/1.1 200 OK\nTESTDATEN\nConnection: close\nContent-type:text/html\n\n");

von Peter II (Gast)


Lesenswert?

Marius D. schrieb:
> Ich mache es so, was nicht geht:

und was geht nicht? kommt nichts an?

von Peter II (Gast)


Lesenswert?

Nachtrag:

dein code ist auch maximal umständlich und braucht viel viel speicher.
1
usart_puts("AT+CIPSEND=");
2
const char* tmp = "HTTP/1.1 200 OK\nTESTDATEN\nConnection: close\nContent-type:text/html\n\n");
3
4
usart_ltoa(UserID);
5
usart_putc(',');
6
usart_ltoa((strlen(str) + strlen(tmp)));
7
usart_puts("\r\n");
8
_delay_ms(2);
9
usart_puts(tmp);

da ich den esp nicht kenne, kann ich nicht beurteilen ob der Rest 
sinnvoll ist, sieht aber merkwüdig aus.
Wo kommt str her?
Was macht die UserId dort?

von MOBA 2. (Gast)


Lesenswert?

Peter II schrieb:
> Marius D. schrieb:
>> Ich mache es so, was nicht geht:
>
> und was geht nicht? kommt nichts an?

Jop, so siehts leider aus.
In der App geht das zwar so halbrichtig (dauert 2sek. der Empfang), aber 
am Browser geht nix. Glaube auch an der App ist das nicht wirklich 
korrekt, da das so lange dauert.

von MOBA 2. (Gast)


Lesenswert?

Peter II schrieb:
> Nachtrag:
>
> dein code ist auch maximal umständlich und braucht viel viel speicher.
>
>
1
> usart_puts("AT+CIPSEND=");
2
> const char* tmp = "HTTP/1.1 200 OK\nTESTDATEN\nConnection: 
3
> close\nContent-type:text/html\n\n");
4
> 
5
> usart_ltoa(UserID);
6
> usart_putc(',');
7
> usart_ltoa((strlen(str) + strlen(tmp)));
8
> usart_puts("\r\n");
9
> _delay_ms(2);
10
> usart_puts(tmp);
11
> 
12
>
>
> da ich den esp nicht kenne, kann ich nicht beurteilen ob der Rest
> sinnvoll ist, sieht aber merkwüdig aus.
> Wo kommt str her?
> Was macht die UserId dort?



Das ist auch nur ein Testschnipsel und der XMega hat 64k.
Der "str" ist der Datenstring (bspw. Timer aktiviert)
Die UserID ist, eine ESP-Sache, die ID die mir das gesendet hat. Also 
jeder Teilnehmer der dem ESP was sendet bekommt eine ID (0-4 also 5 
gleichzeitige Sockel). Wenn ich also an ID 0 sende bekommt diese dann 
die Antwort (bspw. 0 = App, 1 = App Tablet, 2 = Browser, etc...).

von MOBA 2. (Gast)


Lesenswert?

Ich muss den Threat kurz mal auf Eis legen, jetzt geht es?!
Das muss ich erstmal genauer untersuchen. Melde mich nochmal.

von MOBA 2. (Gast)


Lesenswert?

Jap, funktioniert jetzt doch alles, ich weiß nicht warum das nicht ging, 
aber nun klappt es mit meinem Codeschnipsel!

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.