- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 182

Thema: Diskussion zum RP6 M256 WIFI Modul

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #27
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Bei mir klappt es bis zur ersten Eingabe, ab der zweiten ist die Verbindung weg?
    Das Beispiel für die SD-Card erwartet keine Parameter. Hast du die Text-Datei aus dem Beispielordner in das Root-Verzeichniss der SD-Card kopiert? SD-Card ist mit FAT32 formatiert?

    Jetzt fehlt eigentlich nur noch die GUI und vielleicht ein etwas effizienteres Protokoll
    Ein WIFI-Board braucht doch keine GUI, eine Browserschnittstelle ist viel knuffiger:

    Code:
    // LEDs setzen und Daten der Browseranforderung anzeigen                        mic 28.7.2012
    
    // https://www.roboternetz.de/community/threads/58162-Diskussion-zum-RP6-M256-WIFI-Modul?p=555651&viewfull=1#post555651
    
    #include "RP6M256Lib.h"
    
    uint8_t c, header_html_request[20][100], hhr_zeile=0, hhr_zeile_max=0, hhr_pos=0, hhr_params;
    uint8_t leds_mask=0;
    
    void leds_setzen(void);
    void send_html_page(void);
    
    int main(void)
    {
    	initRP6M256();
    
    	writeString_P("\n\rBrowserdaten anzeigen                               mic 28.7.2012\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(); // Zeichen einlesen...
    			if(hhr_pos<98) header_html_request[hhr_zeile][hhr_pos++]=c; // ...und speichern
    			if(c==13) // Zeilenende?
    			{
    				header_html_request[hhr_zeile][hhr_pos++]=0; // String Endekennung anfügen
    				hhr_zeile++; // nächste Zeile einlesen
    				hhr_pos=0; // Zeile startet bei Position null
    				stopStopwatch1();
    				setStopwatch1(0);
    				startStopwatch1(); // Timeout starten
    			}
    		}
    
    		if(getStopwatch1() > 50) // Timeout beim Empfang bedeutet Headerende
    		{
    			header_html_request[hhr_zeile][hhr_pos++]=0; // String Endekennung anfügen
    			hhr_zeile_max=hhr_zeile+1; // Anzahl der Zeilen speichern...
    			leds_setzen();
    			send_html_page(); // ... und antworten
    			hhr_zeile=0; // vorbereiten für nächsten Request-Header
    			hhr_pos=0;
    			hhr_zeile_max=0;
    			stopStopwatch1(); // ab jetzt kein Timeout mehr überprüfen
    			setStopwatch1(0);
    		}
    	}
    	return 0;
    }
    
    void leds_setzen(void)
    {
    	hhr_pos=0;
    	do
    		c=header_html_request[0][hhr_pos++];
    	while(c && (c != 'G'));
    
    	if(c) // GET oder POST im Request gefunden?
    		hhr_params=0; // GET
    	else
    		hhr_params=hhr_zeile_max-1; // kein GET
    
    	hhr_pos=0;
    	leds_mask=0;
    	do
    	{
    		c=header_html_request[hhr_params][hhr_pos++];
    		if(c) switch(c)
    		{
    			case 'a': leds_mask |= 1; break;
    			case 'b': leds_mask |= 2; break;
    			case 'c': leds_mask |= 4; break;
    			case 'd': leds_mask |= 8; break;
    		}
    	}while(c);
    
    	setLEDs(leds_mask & 0Xf);
    }
    
    void send_html_page(void)
    {
    	// Erhalt der Anforderung quittieren:
    	writeString_P_WIFI("HTTP/1.1 200 OK\r\n");
    	writeString_P_WIFI("Content-type: text/html\r\n");
    	writeString_P_WIFI("\r\n");
    
    	stopStopwatch1();
    	setStopwatch1(0);
    	startStopwatch1();
    
    // Send HTML Content:
    writeString_P_WIFI("<html>\n<head>\n<title>RP6-WIFI: HTTP-Requestdaten anzeigen</title>\n</head>\n<body>\n");
    writeString_P_WIFI("<h1>RP6-WIFI: LED setzen mit GET und POST</h1>\n");
    writeString_P_WIFI("<form action=\"\" name\"get\" method=\"get\">\n");
    
    writeString_P_WIFI("gSL4<input type=\"checkbox\" ");
    if(leds_mask & 8) writeString_P_WIFI("checked ");
    writeString_P_WIFI("name=\"gSL4\" value=\"d\">&nbsp;&nbsp;\n");
    
    writeString_P_WIFI("gSL3<input type=\"checkbox\" ");
    if(leds_mask & 4) writeString_P_WIFI("checked ");
    writeString_P_WIFI("name=\"gSL3\" value=\"c\">&nbsp;&nbsp;\n");
    
    writeString_P_WIFI("gSL2<input type=\"checkbox\" ");
    if(leds_mask & 2) writeString_P_WIFI("checked ");
    writeString_P_WIFI("name=\"gSL2\" value=\"b\">&nbsp;&nbsp;\n");
    
    writeString_P_WIFI("gSL1<input type=\"checkbox\" ");
    if(leds_mask & 1) writeString_P_WIFI("checked ");
    writeString_P_WIFI("name=\"gSL1\" value=\"a\">&nbsp;\n");
    
    writeString_P_WIFI("<input type=\"submit\" value=\"GET\">\n");
    writeString_P_WIFI("</form>\n");
    
    writeString_P_WIFI("<form action=\"\" name\"post\" method=\"post\">\n");
    
    writeString_P_WIFI("pSL4<input type=\"checkbox\" ");
    if(leds_mask & 8) writeString_P_WIFI("checked ");
    writeString_P_WIFI("name=\"pSL4\" value=\"d\">&nbsp;&nbsp;\n");
    
    writeString_P_WIFI("pSL3<input type=\"checkbox\" ");
    if(leds_mask & 4) writeString_P_WIFI("checked ");
    writeString_P_WIFI("name=\"pSL3\" value=\"c\">&nbsp;&nbsp;\n");
    
    writeString_P_WIFI("pSL2<input type=\"checkbox\" ");
    if(leds_mask & 2) writeString_P_WIFI("checked ");
    writeString_P_WIFI("name=\"pSL2\" value=\"b\">&nbsp;&nbsp;\n");
    
    writeString_P_WIFI("pSL1<input type=\"checkbox\" ");
    if(leds_mask & 1) writeString_P_WIFI("checked ");
    writeString_P_WIFI("name=\"pSL1\" value=\"a\">&nbsp;\n");
    
    writeString_P_WIFI("<input type=\"submit\" value=\"POST\">\n");
    writeString_P_WIFI("</form>\n");
    
    	for(hhr_zeile=0; hhr_zeile < hhr_zeile_max; hhr_zeile++)
    	{
    		hhr_pos=0;
    		writeString_P_WIFI("Request Zeile ");
    		writeInteger_WIFI(hhr_zeile, 10);
    		writeString_P_WIFI(": ");
    		do
    		{
    			c=header_html_request[hhr_zeile][hhr_pos++];
    			if(c) writeChar_WIFI(c);
    		}while(c);
    		writeString_P_WIFI("\n<br>\n");
    	}
    
    	writeString_P_WIFI("\n<br>\nDie Parameter befinden sich in Zeile ");
    	writeInteger_WIFI(hhr_params, 10);
    	writeString_P_WIFI(":\n<br>\n");
    	hhr_pos=0;
    	do
    	{
    		c=header_html_request[hhr_params][hhr_pos++];
    		if(c) writeChar_WIFI(c);
    	}while(c);
    
    writeString_P_WIFI("<br>\nleds_mask ist ");
    writeInteger_WIFI(leds_mask, 2);
    writeString_P_WIFI("\n<br><br>\n<small>\n[Ladezeit der Seite: ");
    writeInteger_WIFI(getStopwatch1()+1, 10);
    writeString_P_WIFI("ms]\n<br><br>\nmic 29.7.2012\n</small>\n");
    writeString_P_WIFI("</body>\n");
    writeString_P_WIFI("</html>\n");
    
    	stopStopwatch1();
    	setStopwatch1(0);
    	// Wait a bit and then close connection:
    	mSleep(50);  // Depending on the content you may have to wait longer.
    
    	enter_cmd_mode_WIFI();
    	writeCommand_WIFI("close\r");
    	leave_cmd_mode_WIFI();
    }
    Zwar noch etwas holperig und viel "zu Fuss" programmiert, weil ich mit HTML nicht wirklich geübt bin, aber immerhin zeigt es den Ansatz. Leider funktioniert es nicht mit meinem 9er IE, aber mit dem FF klappts wie erwartet. Es ist natürlich noch nicht perfekt.

    Das hier stört mich noch sehr dabei, weil es massig Speicherplatz verschwendet:

    header_html_request[20][100]

    Aber der m256 hat ja reichlich davon. ;)

    Gruß

    mic
    Geändert von radbruch (29.07.2012 um 02:33 Uhr) Grund: optisches Update
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Ähnliche Themen

  1. [ERLEDIGT] Kostenlose RP6 M256 WIFI Module für Testanwender!
    Von SlyD im Forum Robby RP6
    Antworten: 10
    Letzter Beitrag: 02.07.2012, 15:24
  2. RP6v2 M256 WiFi !?
    Von Dirk im Forum Robby RP6
    Antworten: 20
    Letzter Beitrag: 11.05.2012, 19:27
  3. ARM für WiFi steuerung ?
    Von fat tony im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 5
    Letzter Beitrag: 03.01.2010, 13:57
  4. Wifi Roboter
    Von newName im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 4
    Letzter Beitrag: 16.01.2008, 13:51
  5. Formate zur Diskussion
    Von sonic im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 24
    Letzter Beitrag: 03.08.2004, 18:41

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests