Hallo zusammen, ich habe es geschafft dank Hilfe des Forums den TCP/IP Stack von Microchip mit dem MRF24 zu implementieren. Als Controller nutze ich einen PIC24E (auf dem USB Starterkit). Das Modul habe ich in den Soft Ap versetzt und ich kann über einen Webbrowser eine ganz einfache Internetseite aufrufen. Mein nächstes Anliegen ist die Kommunikation zwischen Webserver und dem Controller. Beispielsweise möchte ich mir irgendwelche Analogen Ausgänge auf dem Browser anzeigen lassen und am besten als erstes einmal eine LED (beispielsweise auf RD0) auf dem Starterkit über einen Button auf dem Browser zu aktivieren. Also einen BUTTON kriege ich noch hin, aber dann wird es schon eng. Wie sehen die grundsätzlichen Schritte aus, um dies zu realisieren? Gibt es für PICs da irgendwo Beispiel Code etc.? Über jegliche Hilfe wäre ich dankbar, vielleicht nicht immer nur von Stampede :)
Danke schon mal. Gibt es sowas auch für PICs. Oder hat einer einfach nen Code beispiel wie man vom Webserver aus LEDs am PIC steuern kann oder wie ich Variablen vom PIC am Webbrowser ausgeben kann. Nur ein simples Beispiel, so viel Code kann es ja eigentlich nicht sein. EIne simple Checkliste was zu tun ist würde mir auch schon helfen. Bedankt!
bei URadig geht das so: in die Webseite ein action-feld - z.B. - textfeld für cmd-Befehl einbauen: "<FORM ACTION=\"http://www.leluno.selfhost.eu\" METHOD=\"POST\" NAME=\"kktransfer\">" "<input name=\"VAR1STR\" SIZE=20>" den buffer abfragen ob eine cmd-befehl gesendet wurde:
1 | |
2 | uint8_t PORTA; |
3 | //Einzelnes Postpaket (z.B. bei firefox)
|
4 | if(http_entry[index].http_auth && http_entry[index].post == 1) |
5 | {
|
6 | PORT_tmp = PORTA; // aktuellen Status einlesen |
7 | |
8 | for(a = TCP_DATA_START_VAR;a<(TCP_DATA_END_VAR);a++) |
9 | {
|
10 | //Schaltanweisung finden!
|
11 | /* char abfr,abfr1,abfr2;
|
12 | abfr=*(eth_buffer+a);
|
13 | abfr1=(eth_buffer+a);
|
14 | abfr2=(eth_buffer[a]);*/
|
15 | |
16 | if(eth_buffer[a]=='V'){//kk+ |
17 | if(eth_buffer[a+1]=='A'){ |
18 | if(eth_buffer[a+2]=='R'){ |
19 | if(eth_buffer[a+4]=='S'){ |
20 | if(eth_buffer[a+5]=='T'){ |
21 | //+++++++++++++++ VARxSTR gefunden +++++++++++++++++
|
22 | u32 zl=0; |
23 | while((eth_buffer[zl+a+8])!='&'){ |
24 | resultVar[zl] =eth_buffer[zl+a+8]; |
25 | zl++; |
26 | }
|
27 | resultVar[zl]='\0'; |
28 | timer_Anzeige=15;set_f(fANZEIGE); |
29 | lgw(2,1,checkVar);lw(": ");lw(resultVar); |
30 | //++++++++ cmd ++++++++++++
|
31 | if(eth_buffer[a+8]=='c'){ |
32 | if(eth_buffer[a+8+1]=='m'){ |
33 | if(eth_buffer[a+8+2]=='d'){ |
34 | if(eth_buffer[a+8+3]=='_'){ |
35 | lw(" COMMAND"); |
36 | //hier cmd-Befehl auswerten
|
37 | }}}}
|
38 | //-------- cmd ------------
|
39 | |
40 | //--------------- VARxSTR gefunden -----------------
|
41 | }}}}}//kk- |
Danke leluno: ich habe mal folgenden HTML Text geschrieben, die einfach nen BUT definiert:
1 | <html> |
2 | <head> |
3 | <title>Klick-Buttons definieren (Bild)</title> |
4 | </head> |
5 | <body onload="newAJAXCommand('status2.xml');">> |
6 | |
7 | <h1>LED1</h1>
|
8 | |
9 | <form action="button.htm"> |
10 | <div>
|
11 | <button name="Klickmich" type="button" |
12 | onclick="newAJAXCommand('leds.cgi?led=1');"> |
13 | <p>
|
14 |
|
15 | <b>LED1 toogeln</b>
|
16 | </p>
|
17 | </button>
|
18 | </div>
|
19 | </form>
|
20 | |
21 | </body>
|
22 | </html>
|
Aus einer Beispieldatei habe ich die Leds.cgi. Da steht nix anderes drin als:
1 | Success! ~led(0)~ |
In der Status2.xml:
1 | <?xml version="1.0" encoding="utf-8"?> |
2 | |
3 | <response> |
4 | <scan>~scan~</scan> |
5 | <ver>~fwver~</ver> |
6 | <count>~bssCount~</count> |
7 | <ssid>~ssid~</ssid> |
8 | |
9 | <bss> |
10 | <valid>~valid~</valid> |
11 | <name>~name~</name> |
12 | <privacy>~privacy~</privacy> |
13 | <wlan>~wlan~</wlan> |
14 | <strength>~strength~</strength> |
15 | </bss> |
16 | |
17 | <led0>~led(0)~</led0> |
18 | <led1>~led(1)~</led1> |
19 | <led2>~led(2)~</led2> |
20 | <led3>~led(3)~</led3> |
21 | <led4>~led(4)~</led4> |
22 | <led5>~led(5)~</led5> |
23 | <led6>~led(6)~</led6> |
24 | <led7>~led(7)~</led7> |
25 | <btn0>~btn(0)~</btn0> |
26 | <btn1>~btn(1)~</btn1> |
27 | <btn2>~btn(2)~</btn2> |
28 | <btn3>~btn(3)~</btn3> |
29 | <pot0>~pot~</pot0> |
30 | </response> |
Kann mir jemand der mit dem TCP/IP Stack von Microchip nen Webserver realisiert hat was es mit dem newajax auf sich hat und kann mir den groben Ablauf erklären?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.