Hilfe beim lwIP Stack

OP #4115594
Lesenswert?
• ▲
▼
Hallo,

ich benötige Hilfe beim lwIP Stack.
Momentan läuft auf meinem uC der lwIP Stack mit UDP, TCP und einem HTTP 
Server. Standardmäßig holt sich der HTTP Server die Webseiten aus der 
"fsdata.cpp" und überträgt diese dann.

Jetzt möchte ich aber, dass der HTML Code Zeile für Zeile ausgegeben 
wird, damit ich zwischendurch z.B. Inputs auslese und diese dann 
ebefalls auf der Webseite darstellen kann.

Bei sehr kleinen Seiten funktioniert es auch schon. Doch wenn die 
Webseiten größer werden, bekomme ich Probleme mit dem Speicher vom uC 
und die Webseite wird nicht komplett geschickt.

Vielleicht hat ja jemand eine Idee und könnte mir helfen.

Gruß KK
Gast #4115620
Lesenswert?
• ▲
▼
> Jetzt möchte ich aber, dass der HTML Code Zeile für Zeile
> ausgegeben wird, damit ich zwischendurch z.B. Inputs auslese

Ich fürchte, dein Ansatz vom Multitasking ist falsch. Vermutlich besteht 
dein Hauptprogramm aus einer Endlosschleife, die bei jedem Durchlauf den 
IP Stack aufruft, wenn entweder ein Ethernet Paket empfangen wurde oder 
eine gewisse Zeit verstrichen ist.

Diese Endlosschleife musst du erweitern. Dort gehört der Code rein, der 
die Eingänge abfragt. Ggf. auch mit Timer, damit das in regelmäßigen 
Zeitabständen passiert.

Das sollte völlig unabhängig vom HTML Content sein - also nichts mit 
"Zeile für Zeile".

> Bei sehr kleinen Seiten funktioniert es auch schon. Doch wenn die
> Webseiten größer werden, bekomme ich Probleme mit dem Speicher
> vom uC und die Webseite wird nicht komplett geschickt.

Du musst das Senden der Webseite in viele Pakete aufsplitten. Suche mal 
nach dem Stichwort "mss". Das ist die Anzahl von Bytes die du maximal an 
einem Stück senden kannst - typischerweise weniger als 1,4kB.
OP #4115653
Lesenswert?
• ▲
▼
Ersteinmal danke für deine Antwort!

Stefan Us schrieb:
> Ich fürchte, dein Ansatz vom Multitasking ist falsch. Vermutlich besteht
> dein Hauptprogramm aus einer Endlosschleife, die bei jedem Durchlauf den
> IP Stack aufruft, wenn entweder ein Ethernet Paket empfangen wurde oder
> eine gewisse Zeit verstrichen ist.
>
> Diese Endlosschleife musst du erweitern. Dort gehört der Code rein, der
> die Eingänge abfragt. Ggf. auch mit Timer, damit das in regelmäßigen
> Zeitabständen passiert.

Nur die Frage ist dann, wie ich die Werte in meinen HTML Code einsetzen 
kann, damit ich die Werte auf der Seite darstellen kann???
Gast #4115721
Lesenswert?
• ▲
▼
Ich sehe Möglichkeiten:

Entweder fragst du die Eingänge in deinem HTTP Server On-Demand ab, also 
während du die Seiten generierst.

Oder du fragst die Eingänge außerhalb des HTTP Servers (z.B. in der 
Main-Schleife) ab und legst die Werte in irgendwelche globalen Variablen 
ab, auf die der HTTP Server wiederum zugreift.

Zeige doch mal deinen Code.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.