arduino ethernet problem

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
farbrorlarry
Inlägg: 247
Blev medlem: 10 mars 2006, 19:44:31
Ort: Arboga
Kontakt:

arduino ethernet problem

Inlägg av farbrorlarry »

Hej.

Jag försöker att få till arduino att skicka in lite värden till min webbserver, dock verkar vi inte komma helt överens. Gjort lite småförändringar bara i exempel koden för pachubestring som följer med utvecklings miljön. Typ ip-adress o lite sådana små saker. Men när den postar in saker:

Kod: Markera allt

    client.print("PUT /api/XXXXX.csv HTTP/1.1\n"); // send the HTTP PUT request.  Change x's to your feed
    client.print("Host: www.pachube.com\n");                // fill in your feed address here:
    client.print("X-PachubeApiKey: <<<<<API KEY HERE>>>>>>\n");       // fill in your Pachube API key here:
    client.print("Content-Length: ");
    client.println(thisData.length(), DEC);

    // last pieces of the HTTP PUT request:
    client.print("Content-Type: text/csv\n");
    client.println("Connection: close\n");

    // here's the actual content of the PUT request:
    client.println(thisData);
Ser alla strängar som skickats in i typ client.print("Content-Length: "); ok ut medans client.println(thisData); blir konstigt när man kollar med ngrep, som om de vart radbrutna efter varje tecken. Skriver jag ut motsvarande på serial istället går det bra. Ser även rätt ut när jag tar emot det med nc som mottagare istället för apache(fast ngrep visar fortfarande radbrytningarna). Kör jag det som en char array går det bra. Någon som har förslag? Jag har även testat ett annat exempel som verkar fungera men den gör egentligen samma sak men anropas inte det som en funktion. Vilket inte borde påverka. Någon annan som testat detta exempel som kan verifiera samma problematik?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: arduino ethernet problem

Inlägg av sodjan »

Vad säger Apache loggarna ?
farbrorlarry
Inlägg: 247
Blev medlem: 10 mars 2006, 19:44:31
Ort: Arboga
Kontakt:

Re: arduino ethernet problem

Inlägg av farbrorlarry »

"request failed: error reading the headers"

Jag kan alltså ta emot requesten med "nc -l 80" klippa ut det, och skicka in det till apachen med telnet och det blir ok :lol:

Skall ta en tcpdump på det så kan man kolla exakt vad den skickar för byte efter varje tecken.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: arduino ethernet problem

Inlägg av sodjan »

OK.
Har inte Apache någon trace eller debug funktion som också
loggar vad den faktiskt "ser" från klienten ?
Användarvisningsbild
6502
Inlägg: 174
Blev medlem: 2 mars 2007, 23:04:17
Ort: Tomelillla
Kontakt:

Re: arduino ethernet problem

Inlägg av 6502 »

Logga med Wireshark så ser du exakt vad som skickas på trådarna.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: arduino ethernet problem

Inlägg av sodjan »

Applikationens (i detta fall Apache) egen log är oftast mycket
bättre därför att den dels enbart visa det som är rellevant (d.v.s det
som har med applikationen att göra), dels ofta visar/formatterar det på
ett för applikationen rellevant sätt, kanske till och med direkt pekar
ut problemet. Vad som "skickas på trådarna" är mindre intressant, det
är det som Apache ser/upplever som gäller.
farbrorlarry
Inlägg: 247
Blev medlem: 10 mars 2006, 19:44:31
Ort: Arboga
Kontakt:

Re: arduino ethernet problem

Inlägg av farbrorlarry »

http://larrys.mine.nu/test.pcap
Hade visst den igång. Borde skicka tror jag:
POST /cgi-bin/getfamous.pl HTTP/1.1
Content-Type: application/x-www-form
Host: www.test.org
Content-Length: 15

drdata=abcd1234

Men som man ser i wireshark skickar den någon form av malformed packet. Content-Length och drdata kommer från en String.
farbrorlarry
Inlägg: 247
Blev medlem: 10 mars 2006, 19:44:31
Ort: Arboga
Kontakt:

Re: arduino ethernet problem

Inlägg av farbrorlarry »

Lite text från tcpdump

Kod: Markera allt

00000000  50 4f 53 54 20 2f 63 67  69 2d 62 69 6e 2f 67 65 POST /cg i-bin/ge
00000010  74 66 61 6d 6f 75 73 2e  70 6c 20 48 54 54 50 2f tfamous. pl HTTP/
00000020  31 2e 31                                         1.1
00000023  0d                                               .
00000024  0a                                               .
00000025  43 6f 6e 74 65 6e 74 2d  54 79 70 65 3a 20 61 70 Content- Type: ap
00000035  70 6c 69 63 61 74 69 6f  6e 2f 78 2d 77 77 77 2d plicatio n/x-www-
00000045  66 6f 72 6d                                      form
00000049  0d                                               .
0000004A  0a                                               .
0000004B  48 6f 73 74 3a 20 77 77  77 2e 74 65 73 74 2e 6f Host: ww w.test.o
0000005B  72 67                                            rg
0000005D  0d                                               .
0000005E  0a                                               .
0000005F  43                                               C
00000060  6f                                               o
00000061  6e                                               n
00000062  74                                               t
00000063  65                                               e
00000064  6e                                               n
00000065  74                                               t
00000066  2d                                               -
00000067  4c                                               L
00000068  65                                               e
00000069  6e                                               n
0000006A  67                                               g
0000006B  74                                               t
0000006C  68                                               h
0000006D  3a                                               :
0000006E  20                                                
0000006F  31                                               1
00000070  35                                               5
00000071  0d                                               .
00000072  0a                                               .
00000073  64                                               d
00000074  72                                               r
00000075  64                                               d
00000076  61                                               a
00000077  74                                               t
00000078  61                                               a
00000079  3d                                               =
0000007A  61                                               a
0000007B  62                                               b
0000007C  63                                               c
0000007D  64                                               d
0000007E  31                                               1
0000007F  32                                               2
00000080  33                                               3
00000081  34                                               4
00000082  0d                                               .
00000083  0a                                               .
00000084  43 6f 6e 6e 65 63 74 69  6f 6e 3a 20 63 6c 6f 73 Connecti on: clos
00000094  65 0a                                            e.
00000096  0d                                               .
00000097  0a                                               .
Koden
http://larrys.mine.nu/famous_b01.pde
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: arduino ethernet problem

Inlägg av sodjan »

> Lite text från tcpdump

Jaha, och vad är fel ?
Har du någon "likare" att jämföra med ?
farbrorlarry
Inlägg: 247
Blev medlem: 10 mars 2006, 19:44:31
Ort: Arboga
Kontakt:

Re: arduino ethernet problem

Inlägg av farbrorlarry »

Alla tecken som är ensamma på en rad borde vara på samma som någon annan.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: arduino ethernet problem

Inlägg av sodjan »

Vad får dom att ligga på olika rader ?
Kommer de i separata IP packet ?
farbrorlarry
Inlägg: 247
Blev medlem: 10 mars 2006, 19:44:31
Ort: Arboga
Kontakt:

Re: arduino ethernet problem

Inlägg av farbrorlarry »

Jajamensan
Maalobs
Inlägg: 1304
Blev medlem: 3 februari 2005, 14:35:15
Ort: Stockholm

Re: arduino ethernet problem

Inlägg av Maalobs »

Spela in ett fungerande anrop från en dator med Wireshark, och jämför det mot inspelningen av det icke-fungerande anropet.
farbrorlarry
Inlägg: 247
Blev medlem: 10 mars 2006, 19:44:31
Ort: Arboga
Kontakt:

Re: arduino ethernet problem

Inlägg av farbrorlarry »

Har inte så mycket nytta av det, syns ju att trafiken inte är rätt. Gjort lite ändringar så tar apachen emot datat, dock inte rätt på snöret. Skall göra om den biten senare, gissar att en brandvägg tex med lite kvalité på inte tillåter trafiken igenom. Borde vara relativt enkelt o fixa bara man sätter sig in vad de gjort. Alternativt är att konvertera allt till en array innan man skickar till ethernetmodulen.
xevz
Inlägg: 12
Blev medlem: 22 mars 2011, 12:29:38

Re: arduino ethernet problem

Inlägg av xevz »

HTTP använder sig av CRLF för radavslutning i headers, inte LF.
http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html

Är kanske inte problemet här dock (Apache kan vara förlåtande), men det är värt att tänka på.
Skriv svar