Guten Tag,
auf meinem Controller versuche ich aktuell, einen String
zusammenzubauen. Dafür benutze ich die Funktion sprintf. Das ganze
sieht aktuell so aus:
1 | #define DOMAIN "www.google.de"
|
2 |
|
3 | typedef struct {
|
4 | char* Type;
|
5 | char* ID;
|
6 | }object;
|
7 |
|
8 | uint16 getADCValue(){
|
9 | return system_adc_read();
|
10 | }
|
11 |
|
12 | void main(){
|
13 | char requestText[SIZE];
|
14 | int n;
|
15 | for(n = 0; n < MAX_REQUESTS; n++){
|
16 | os_sprintf(requestText,"GET /SQL.php?request=enterTemp&reqid=%s&value=%d /HTTP/1.1\r\nUser-Agent: curl/7.37.0\r\nHost: %s\r\nAccept: */*\r\n\r\n",requests[n].ID,getADCValue(),DOMAIN);
|
17 | }
|
18 | }
|
Das Ergebnis, dass der ESP8266 auf der Konsole ausgibt, sieht allerdings
so aus (gekürzt):
1 | GET /SQL.php?request=enterTemp&reqid=request=enterTemp&reqid=&value=756 /HTTP/1.1
|
Erwarten würde ich so etwas (gekürzt):
1 | GET /SQL.php?request=enterTemp&reqid=6&value=251 /HTTP/1.1
|
Wenn ich requests[n].ID durch "6" ersetze, klappts wunderbar. Warum hat
sprintf ein Problem mit Structs?