mikrocontroller.net

Forum: Compiler & IDEs UBoot goes WEB: Verständnisfrage zum Code von U. Radig


Autor: UBoot-Stocki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich habe jetzt auch das Pollin-Board mit der SW von U. Radig am laufen. 
Hat alles super geklappt. Jetzt würde ich gerne die Web-Seite so 
anpassen wie ich es brauche.

Den Monster-Thread bin ich durch allerdings macht das keinen Spass weil 
mein Werkstatt-PC das nicht richtig packt ...

Und da steh ich nun ...

Kann mir mal jemand einen Tipp geben wie das funktioniert? ich wähle auf 
der html-Seite was aus drücke auf "Setzen" und ein PIN am Mega32 ändert 
sich...

Wie ist der Weg durch die SW? Wo soll ich mit suchen anfangen ? ich bin 
hier ein wenig lost ....

Gruß und Danke für Tipps

Andreas

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich das richtig verstanden habe, wird die erste Aktion durch einen 
Empfangsinterrupt vom ENC28J60 ausgelöst, dieser hat dann wohl den 
ersten Ethernetframe empfangen und der Prozessor kann ihn abholen.

Grüße,

Peter

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Kann mir mal jemand einen Tipp geben wie das funktioniert? ich wähle auf
>der html-Seite was aus drücke auf "Setzen" und ein PIN am Mega32 ändert
>sich...

>Wie ist der Weg durch die SW? Wo soll ich mit suchen anfangen ? ich bin
>hier ein wenig lost ....

Such in httpd.c

Autor: UBoot-Stocki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin Männers :-)

ich habe gestern in der httpd.c und webpage.h diverse Änderungen 
probiert. Es sieht für mich so aus, als sie in webpage.h dies die 
richtige Stelle:
  //Port Schalten und Status %PORTA2 bedeutet PORTA PIN2
  "<input type=\"checkbox\" name=\"OUT\" value=\"C\" %PORTA2>\r\n"
  "<span class=\"Stil2\">Port A Pin 2</span></p>\r\n"
  "<div align=\"left\">\r\n

ich httpd.c gibt es offensichtlich dazu passend diese Stelle:
      //Einsetzen des Port Status %PORTxy durch "checked" wenn Portx.Piny = 1
      //x: A..G  y: 0..7 
      if (strncasecmp_P("PORT",http_entry[index].new_page_pointer,4)==0)
      {
        unsigned char pin  = (pgm_read_byte(http_entry[index].new_page_pointer+5)-48);  
        b = 0;
        switch(pgm_read_byte(http_entry[index].new_page_pointer+4))
        {
          case 'A':
            b = (PORTA & (1<<pin));
            break;
          case 'B':
            b = (PORTB & (1<<pin));
            break;
          case 'C':
            b = (PORTC & (1<<pin));
            break;
          case 'D':
            b = (PORTD & (1<<pin));
            break; 
        }

ich habe das alles entsprechen ergänzt, comiliert und ....


es funktioniert nicht :-(


Hat noch jemand eine Idee ? Das ist immer das Problem mit fremdem Code 
....

Gruß

Andreas

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was meinst du wie lange ich gebraucht habe um den ganzen Netzwerkkram zu 
lernen und zu verstehen? Das war sicher 1/2 Jahr immer mal wieder damit 
beschäftigen und darüber nachdenken.
Es ist sehr kompliziert jetzt genau den Weg aufzumalen, da dort mehrere 
Protokolle beteiligt sind, die in der Form, wie sie im 
Mikrocontroller-verdaubaren Code (nicht nur bei Radigs Code), eigentlich 
sonst nirgendwo wiederzufinden sind.

Ich empfehle dir aber dringendst mal den Monster-Thread durchzulesen, da 
besonders gegen Ende hin viele Leute sind, die ihre Webpage umgestaltet 
haben. Und dort ist sehr viel Hilfe zu finden.

Autor: UBoot-Stocki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Simon,

Du hast ja auch einen Stack geschrieben. Ich will Euere Leistung hier 
auf keinen Fall herabwürdigen. Ganz im Gegenteil: Genau aus dem Grund, 
den Du nennst, nämlich das kontinuierliche Dranbleiben habe ich 
Hochachtung für Euerer Arbeit!

Ich habe auf Grund der größe technische Probleme mit dem Monsterthread. 
Es dauert ca. 30s um eine Zeile/Seite weiterzuscrollen... Hänge mich 
aber nochamls rein...

Es müsste doch möglich sein, ohne Kenntniss von arp, IP, TCP etc. den 
Code zu modifizieren... Evtl. hat ja jemand einen Tipp ...

Die Anderen im Monsterthread haben es ja auch irgendwie geschafft ...

Gruß

Andreas

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
UBoot-Stocki wrote:
> Hallo Simon,
>
> Du hast ja auch einen Stack geschrieben. Ich will Euere Leistung hier
> auf keinen Fall herabwürdigen. Ganz im Gegenteil: Genau aus dem Grund,
> den Du nennst, nämlich das kontinuierliche Dranbleiben habe ich
> Hochachtung für Euerer Arbeit!
Ich habe (noch) keinen Stack fertig geschrieben. Mein Projekt verwendet 
den uip Stack. Habe mal angefangen, aber es wurde bei TCP Sockets und 
States und den ganzen Sequenznummern dann doch zu kompliziert, als dass 
es noch hätte Spaß gemacht auf einem so kleinen Prozessor.
Ein HTTP Daemon dafür geschrieben zu haben hat mir persönlich schon 
gereicht ;)

> Ich habe auf Grund der größe technische Probleme mit dem Monsterthread.
> Es dauert ca. 30s um eine Zeile/Seite weiterzuscrollen... Hänge mich
> aber nochamls rein...
Ich muss zugeben, der Thread ist selbst auf meiner relativ modernen 
Kiste ziemlich langsam und Firefox hängt beim Laden jedes mal ca 5 
Sekunden. Leider ist es so wie es ist und mir ist keine Methode bekannt 
wie man nur einen Teil der Seite laden könnte. Hast du nicht die 
Möglichkeit die Seite auf einem anderen Rechner anzuschauen?

> Es müsste doch möglich sein, ohne Kenntniss von arp, IP, TCP etc. den
> Code zu modifizieren... Evtl. hat ja jemand einen Tipp ...
Ja, mit Try and Error geht das ganz gut (siehe anderer Thread). 
Hilfreich ist das Verständnis der Sachen allemal.

> Die Anderen im Monsterthread haben es ja auch irgendwie geschafft ...
Ja, allerdings habe ich den Thread auch nur mit einem Auge beobachtet 
und kann dir nicht sagen, wie Ulrich das Parsen der webpage 
implementiert.

Jedenfalls müssen die dynamischen Daten irgendwie später im 
Ausgabe-"Stream" landen und dafür gibt es halt genau diesen Parser, der 
bestimmte feste Ausdrücke in der statischen webpage durch dynamische 
Werte ersetzt.
Wie genau das geht, weiß ich aber im Falle von Ulrich Radigs Code gerade 
nicht.

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.
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.

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