mikrocontroller.net

Forum: PC-Programmierung lwIP STM32 mit HTTP und CGI SSI


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Bin gerde am  basteln mit der lwIP lib.

HTML Webseite anzeigen klappt schon. Wert in nem Häckchen Kästechen 
auslesen mit CGI auch. Nur nach jedem Senden fällt das Häkchen wieder 
raus.

Nun möchte ich da auch ein Häckchen setzen aus der Software raus können, 
wie mach ich dass?

Desweitern, kennt wer von euch eine gut verständliche Doku dazu(CGI und 
SSI Handhabung) mit Beispielen?

: Verschoben durch Moderator
Autor: gre (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ist eher HTML

du musst deinen string ändern
also einen parameter per SSI einfügen

<input type="checkbox"  checked>

wenn deine interne Variable ==1 ist musst du das checked absenden

sonst eben nicht

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gre schrieb:
> das ist eher HTML
>
> du musst deinen string ändern
> also einen parameter per SSI einfügen
>
> <input type="checkbox"  checked>
>
> wenn deine interne Variable ==1 ist musst du das checked absenden
>
> sonst eben nicht

HTML:
          </p>
          <form method="get" action="/leds.cgi">
          <input value="1" name="led" type="checkbox">LED1<br>
          <input value="2" name="led" type="checkbox">LED2<br>
          <br>
          <input value="Send" type="submit"> </form>
    <p>

C:

const char * LedCGIhandler(int iIndex, int iNumParams, char *pcParam[], 
char *pcValue[])
{
uint32_t i=0;
// index of the CGI within the theCGItable array passed to 
http_set_cgi_handlers
// Given how this example is structured, this may be a redundant check.
// Here there is only one handler iIndex == 0
if (iIndex == 0)
{
// turn off the LEDs
HAL_GPIO_WritePin(LD3_GPIO_Port, LD2_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LD3_GPIO_Port, LD3_Pin, GPIO_PIN_RESET);
// Check the cgi parameters, e.g., GET /leds.cgi?led=1&led=2
for (i=0; i<iNumParams; i++)
{
//if pcParmeter contains "led", then one of the LED check boxes has been 
set on
if (strcmp(pcParam[i], "led") == 0)
{
//see if checkbox for LED 1 has been set
if(strcmp(pcValue[i], "1") == 0)
{
// switch led 1 ON if 1
HAL_GPIO_WritePin(LD3_GPIO_Port, LD2_Pin, GPIO_PIN_SET);
}
//see if checkbox for LED 2 has been set
else if(strcmp(pcValue[i], "2") == 0)
{
// switch led 2 ON if 2
HAL_GPIO_WritePin(LD3_GPIO_Port, LD3_Pin, GPIO_PIN_SET);
}
} //if
} //for
} //if
//uniform resource identifier to send after CGI call, i.e., path and 
filename of the response
return "/index.html";
} //LedCGIhandler

Stehe grad etwas auf den schlauch.

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso ist da sbei PC gelandet. STM32 sind doch Mikroncontroller...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.