String wifiInit(String APname,String APpassword){ int counter=0; wifi_init(); while(!moduleResponds()){ counter++; if(counter>=5){ SerialUSB.println("Wi-Fi Module Response Failed!"); return "Error: 1"; //Wi-Fi Module Response Failed! } } counter = 0; while(!setWifiMode()){ counter++; if(counter>=5){ SerialUSB.println("Setting Wi-Fi Mode Failed!"); return "Error: 2"; //Setting Wi-Fi Mode Failed! } } counter = 0; while(!setWifiTransmissionMode()){ counter++; if(counter>=5){ SerialUSB.println("Setting Wi-Fi Transmission Mode Failed!"); return "Error: 3"; //Setting Wi-Fi Transmission Mode Failed! } } counter = 0; while(!setWifiConnectionMode()){ counter++; if(counter>=5){ SerialUSB.println("Setting Wi-Fi Connection Mode Failed!"); return "Error: 4"; //Setting Wi-Fi Connection Mode Failed! } } counter = 0; while(!disconnectFromAP()){ counter++; if(counter>=5){ SerialUSB.println("Wi-Fi Disconnection from AP Failed!"); return "Error: 5"; //Wi-Fi Disconnection from AP Failed! } } counter = 0; while(!connectToAP(APname,APpassword)){ counter++; if(counter>=5){ SerialUSB.println("Wi-Fi Connecting to AP Failed!"); return "Error: 6"; //Wi-Fi Connecting to AP Failed! } } counter = 0; while(!getIP()){ counter++; if(counter>=5){ SerialUSB.println("Wi-Fi Getting IP Failed!"); return "Error: 7"; //Wi-Fi Getting IP Failed! } } return "OK"; }
bool ESP8266wifi::restart() { return begin() && (!flags.localApConfigured || startLocalAp()) && (!flags.localServerConfigured || startLocalServer()) && (!flags.apConfigured || connectToAP()) && (!flags.serverConfigured || connectToServer()); }
// Performs a connect retry (or hardware reset) if not connected bool ESP8266wifi::watchdog() { if (serverRetries >= SERVER_CONNECT_RETRIES_BEFORE_HW_RESET) { // give up, do a hardware reset return restart(); } if (flags.serverConfigured && !flags.connectedToServer) { serverRetries++; if (flags.apConfigured && !isConnectedToAP()) { if (!connectToAP()) { // wait a bit longer, then check again delay(2000); if (!isConnectedToAP()) { return restart(); } } } return connectToServer(); } return true; }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Main: /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// int main(){ int skip = 0; int enabled = 1; int selectedConfig = 0; SetupCallbacks(); initOSLib(); oslIntraFontInit(INTRAFONT_CACHE_MED); oslNetInit(); //Loads image: bkg = oslLoadImageFilePNG("bkg.png", OSL_IN_RAM | OSL_SWIZZLED, OSL_PF_8888); //Load font: OSL_FONT *font = oslLoadFontFile("flash0:/font/ltn0.pgf"); oslSetFont(font); if (!oslIsWlanPowerOn()) sprintf(message, "Please turn on the WLAN."); //Get connections list: struct oslNetConfig configs[OSL_MAX_NET_CONFIGS]; int numconfigs = oslGetNetConfigs(configs); if (!numconfigs){ sprintf(message, "No configuration found!"); enabled = 0; } while(runningFlag && !osl_quit){ if (!skip){ oslStartDrawing(); oslDrawImageXY(bkg, 0, 0); if (enabled){ sprintf(buffer, "Press X to connect to %s.", configs[selectedConfig].name); oslDrawString(30, 50, buffer); oslDrawString(30, 80, "Press UP and DOWN to change settings."); } oslDrawString(30, 150, "Press /\\ to quit."); oslDrawString(30, 200, message); oslEndDrawing(); } oslEndFrame(); skip = oslSyncFrame(); oslReadKeys(); if (osl_keys->released.triangle) runningFlag = 0; if (osl_keys->released.cross){ connectToAP(selectedConfig + 1); }else if (osl_keys->released.up){ if (++selectedConfig >= numconfigs) selectedConfig = numconfigs - 1; }else if (osl_keys->released.down){ if (--selectedConfig < 0) selectedConfig = 0; } } //Quit OSL: oslNetTerm(); oslEndGfx(); sceKernelExitGame(); return 0; }
bool ESP8266wifi::connectToAP(const char* ssid, const char* password){//TODO make timeout config or parameter?? strncpy(_ssid, ssid, sizeof _ssid); strncpy(_password, password, sizeof _password); flags.apConfigured = true; return connectToAP(); }
bool ESP8266wifi::connectToAP(String& ssid, String& password) { return connectToAP(ssid.c_str(), password.c_str()); }