Habe ich alles gemacht, der Fehler bleibt der Gleiche...
Habe ich alles gemacht, der Fehler bleibt der Gleiche...
Editier mal in der RP6M256_WIFIlib.c die Zeile 341
#define WIFI_DEBUG
also Kommentarzeichen wegmachen. Dann den Simple Webserver nochmal neu übersetzen.
Was wird im SERIELLEN Terminal ausgegeben?
Aussehen sollte es so:
MfG,Code:Got request: *CLOS**OPEN*GET / HTTP/1.1 GOT GET! Close connection... ### WIFI Enter CMD mode ENTER CMD GPIO14! W{?} ? [OK:?] RAW_CMD{close } close Write Commad done! ### WIFI Leave CMD mode W_CMD{exit ; EXIT} RAW_CMD{exit} exitWrite Commad done! [RESP_OK:EXIT] done!
SlyD
Oh - ich glaube ich habe den Fehler gefunden: Der HTTP-Header, den ich benutzt habe, hat ein "Connection:close" nachgeschickt - vermutlich gab das Probleme mit dem manuellen Trennen der Verbindung im Programm...
Ja da die Kommandobefehle ja prüfen ob die Kommandos richtig übertragen werden kann sich das in die Quere kommen.
Kommt da nicht das richtige zurück gibts Fehlermeldungen.
Wie schon dabei steht, das ist der simpelst denkbare Webserver damit es ein schön übersichtliches Beispiel bleibt.
Wenn man den ganzen Kram den ein normaler Webserver sonst noch so kann braucht, muss man schon etwas mehr Aufwand treiben.
MfG,
SlyD
Hallo
Das macht echt Spass mit dem Loader und seinen abgedockten Terminals zu spielen.
Auf Basis des Webserverbeispiels eine LED-Ansteuerung mit dem Browser:
Die URL im Form-Tag muss man natürlich anpassen.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(); }
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hey leute,
ich werf mal so zwischen durch ein, dass ichs auch endlich am Laufen habe
Die Einarbeitung ist doch etwas tricky, wenn man keinen RP6 hat, aber es ist eigentlich alles super erklärt nur schadet es nicht das RP6 Handbuch auch zu kennen.
ich hatte zuerst auch Probleme mit der WLAN-Verbindung, aber es lag an meinem Router. Hab das Modul jetzt wo anders getestet, da geht es sofort ohne Probleme. Super Arbeit von Arrex. Jetzt auf ans weiter testen.
Gruß
Elchi
Jo, Ichthyosaurier nun auch endlich ein vernünftiges WLAN-Terminal in labview, welches ich nun gerade versuche, zu verwenden und einzubauen.
Mal sehen...![]()
Hi Radbruch,
funzt dein Programm bei dir immer? Bei mir klappt es bis zur ersten Eingabe, ab der zweiten ist die Verbindung weg?!!?
Grüße
Habe da einen kleinen Fehler im Beispiel 12 entdeckt:
Wenn man cmd aktiviert hat, aber einen Bumper betätigt, wird zunächst kein Escape-Behave aktiviert. Dieser folgt dann aber prompt, wenn man den Command-Modus wieder deaktiviert...
Ist glaube ich nicht so gewollt, oder?
Grüße
Lesezeichen