Hallo
Das macht echt Spass mit dem Loader und seinen abgedockten Terminals zu spielen.
Auf Basis des Webserverbeispiels eine LED-Ansteuerung mit dem Browser:
Code:
// LEDs mit dem Browser ansteuern mic 22.7.2012
#include "RP6M256Lib.h"
char c, kommando=0;
void send_html_page(void);
int main(void)
{
initRP6M256();
writeString_P("\n\nsetLEDs() mit dem Browser 22.7.2012 mic\n\r");
// Make sure WLAN Module Packet size / buffer size and flush timer is OK
enter_cmd_mode_WIFI();
issueCMD_WIFI("set comm size 1024","AOK");
issueCMD_WIFI("set comm time 10","AOK");
leave_cmd_mode_WIFI();
while(true)
{
if(getBufferLength_WIFI()) // Daten vom Browser empfangen?
{
c=readChar_WIFI();
writeChar(c); // ja, dann Daten zum seriellen Terminal senden
if(c == '?') { kommando=1; setLEDs(0); } // und ab dem ? interpretieren
if(kommando) switch(c)
{
case 'a': setLED1(1); break;
case 'b': setLED2(1); break;
case 'c': setLED3(1); break;
case 'd': setLED4(1); break;
}
if(c == 13) // Datenende
{
if(kommando) kommando=0; else setLEDs(0); // LEDs aus, wenn kein ? gefunden
send_html_page();
}
}
}
return 0;
}
void send_html_page(void)
{
// Send HTTP Header:
writeString_P_WIFI("HTTP/1.0 200 OK\r\n");
writeString_P_WIFI("Content-Type: text/html\r\n");
writeString_P_WIFI("\r\n");
// Send HTML Content:
writeString_P_WIFI("<html><head><title>RP6-WIFI: Leds ansteuern</title></head><body>\n");
writeString_P_WIFI("setLeds():\n");
writeString_P_WIFI("<form action=\"http://169.254.77.3:2000\" method=\"get\">\n");
writeString_P_WIFI("<input type=\"radio\" name=\"SL4\" value=\"d\"> \n");
writeString_P_WIFI("<input type=\"radio\" name=\"SL3\" value=\"c\"> \n");
writeString_P_WIFI("<input type=\"radio\" name=\"SL2\" value=\"b\"> \n");
writeString_P_WIFI("<input type=\"radio\" name=\"SL1\" value=\"a\">\n");
writeString_P_WIFI("<br>\n");
writeString_P_WIFI("<input type=\"submit\" value=\"Setzen\">\n");
writeString_P_WIFI("<input type=\"reset\" name=\"Name\" value=\"reset\">\n");
writeString_P_WIFI("</form>\n");
writeString_P_WIFI("</body>\n");
writeString_P_WIFI("</html>\n");
// Wait a bit and then close connection:
mSleep(50); // Depending on the content you may have to wait longer.
enter_cmd_mode_WIFI(); // ??? Wie funktioniert das?
writeCommand_WIFI("close\r");
leave_cmd_mode_WIFI();
}
Die URL im Form-Tag muss man natürlich anpassen.
Gruß
mic
Lesezeichen