uip string ausgabe

Gast #4100392
Lesenswert?
• ▲
▼
Hallo,
ich möchte gerne den ADC Wert auf der Wbseite als string angezeigt 
bekommen  und nicht als Balken,aber so wie ich das jetzt hab bekomm ich 
kein string angezeigt.

könnte mir jemand weiterhelfen.

1
static unsigned short
2
generate_adc_status(void *arg) // Je nach Widerstandswert des Potentiometers wird der Balken länger oder kürzer auf der Webseite angezeigt
3
{
4
  adc_stat = 10;//adc1_convert(14);
5
  adc_stat= adc_stat/10;
6
  
7

8

9
  if(adc_stat<=10)
10
  {
11
    adc_stat=10;
12
  }
13
  else
14
  {
15
    adc_stat = adc_stat;
16
  }
17
  %2d  
18
  //sprintf(&buffer[0]," <img src=\"balken.gif\" width=\"%4d\" height=\"10\">",adc_stat);
19
sprintf(&buffer[0],"%2d",adc_stat);
20

21

22
  return snprintf((char *)uip_appdata, UIP_APPDATA_SIZE,
23
      "%s ",  &buffer[0]);
24
}
#4100405
Lesenswert?
• ▲
▼
maus schrieb:
> Ich wollte daa mir der adc wert auf der webseite als text angezeigt wird
> und nicht als balken.

Das ist ja alles schön und gut.
Aer um einen Text auf einem Webserver zu sehen muss man schon etwas mehr 
serverseitig auf die Reise bringen als nur den Text.
Dazu braucht es Code rundherum. WO ist dieser Code?

Das in buffer danach zb "10" drinnen steht, glauben dir hier alle. Aber 
kannst du den so einfach nach uip_appdata kopieren?
Das sieht mir dann etwas seltsam aus. Normalerweise wird ja eine 
Webseite in mehreren Porionen zusammengesetzt. Da gibt es einen Header, 
da gibt es Steuerungszeilen etc.
Letzten ENdes muss der Server an den Web-Client den Text
1
<html>
2
<body>
3
  Juhu
4
</body>
5
</html>
schicken, damit der dann den Text "Juhu" anzeigt.
Das drumherum muss wer generieren. Wo ist der COde dafür?
#4100424
Lesenswert?
• ▲
▼
maus schrieb:
> ich habe diesen Webserver
> Beitrag "ARM-Webserver auf uIP-Basis" läuft alles soweit.
> Nur ich wollte halt den ADC wert nicht als Balken sontern als Text
> Darstellen.

OK.

Dann würde ich vorschlagen, du ersetzt mal deine Funktion durch
1
static unsigned short
2
generate_adc_status(void *arg) // Je nach Widerstandswert des Potentiometers wird der Balken länger oder kürzer auf der Webseite angezeigt
3
{
4
  sprintf(&buffer[0],"**JUHU**");
5

6
  return snprintf((char *)uip_appdata, UIP_APPDATA_SIZE,
7
                  "%s ",  &buffer[0]);
8
}

und siehst nach, ob das in deinem Web Browser erscheint.
Wenn nicht: jeder Browser kann den HTML-Text anzeigen, den er vom Server 
bekommen hat. Dort siehst du hinein und siehst mal nach, was daran nicht 
HTML-gerecht ist, bzw. ob dein Text dort irgendwo aufscheint.

Und dann arbeitest du dich von hinten nach vorne durch.
#4100428
Lesenswert?
• ▲
▼
Ehe ich es vergesse.
An deiner Funktion kann man nichts ablesen.
Da wird ein Zahlenwert in einen Text gewandelt und in einen Buffer 
gestellt.
Soweit ist das alles richtig.

Aber ob die Funktion je aufgerufen wird und wann das passiert, das alles 
kann dir keiner sagen. Das weisst nur du.
Wenn sich im generierten HTML keine Spur deines Textes zeigt, obwohl das 
Drumherum alles richtig ist, dann wird wohl die Funktion überhaupt nicht 
aufgerufen.
Gast #4100465
Lesenswert?
• ▲
▼
Es genügt nicht, den String in den Puffer zu legen. Danach musst du 
uip_send(uip_appdata,number_of_bytes) aufrufen, um den Puffer zu senden. 
Und danach musst du prüfen, ob der Empfänger das Paket quittiert. Wenn 
nicht, musst du wiederholen.

Protosockets kümmern sich um diese Wiedeholung automatisch:
1
PSOCK_SEND_STR_P(&app_state->socket,PSTR("Hello\n"));

Lies das: http://stefanfrings.de/avr_io/protosockets.html

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren