kopia lustrzana https://github.com/Aircoookie/WLED
				
				
				
			
		
			
				
	
	
		
			170 wiersze
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C++
		
	
	
			
		
		
	
	
			170 wiersze
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C++
		
	
	
| /*
 | |
|  * Setup code
 | |
|  */
 | |
| 
 | |
| void wledInit()
 | |
| {
 | |
|   Serial.begin(115200);
 | |
| 
 | |
|   SPIFFS.begin();
 | |
|   {
 | |
|     Dir dir = SPIFFS.openDir("/");
 | |
|     while (dir.next()) {    
 | |
|       String fileName = dir.fileName();
 | |
|       size_t fileSize = dir.fileSize();
 | |
|       #ifdef DEBUG
 | |
|       Serial.printf("FS File: %s, size: %s\n", fileName.c_str(), formatBytes(fileSize).c_str());
 | |
|       #endif
 | |
|     }
 | |
|     DEBUG_PRINTF("\n");
 | |
|   }
 | |
|   DEBUG_PRINTLN("Init EEPROM");
 | |
|   EEPROM.begin(1024);
 | |
|   loadSettingsFromEEPROM();
 | |
|   DEBUG_PRINT("CC: SSID: ");
 | |
|   DEBUG_PRINT(clientssid);
 | |
| 
 | |
|   WiFi.disconnect(); //close old connections
 | |
| 
 | |
|   if (staticip[0] != 0)
 | |
|   {
 | |
|     WiFi.config(staticip, staticgateway, staticsubnet);
 | |
|   } else
 | |
|   {
 | |
|     WiFi.config(0U, 0U, 0U);
 | |
|   }
 | |
| 
 | |
|   if (apssid.length()>0)
 | |
|   {
 | |
|     DEBUG_PRINT("USING AP");
 | |
|     DEBUG_PRINTLN(apssid.length());
 | |
|     initAP();
 | |
|   } else
 | |
|   {
 | |
|     DEBUG_PRINTLN("NO AP");
 | |
|     WiFi.softAPdisconnect(true);
 | |
|   }
 | |
| 
 | |
|   initCon();
 | |
| 
 | |
|   DEBUG_PRINTLN("");
 | |
|   DEBUG_PRINT("Connected! IP address: ");
 | |
|   DEBUG_PRINTLN(WiFi.localIP());
 | |
|   
 | |
|   // Set up mDNS responder:
 | |
|   if (cmdns != NULL && !only_ap && !MDNS.begin(cmdns.c_str())) {
 | |
|     DEBUG_PRINTLN("Error setting up MDNS responder!");
 | |
|     down();
 | |
|   }
 | |
|   DEBUG_PRINTLN("mDNS responder started");
 | |
| 
 | |
|   if (udpPort > 0)
 | |
|   {
 | |
|     udpConnected = notifierUdp.begin(udpPort);
 | |
|   }
 | |
| 
 | |
|   //SERVER INIT
 | |
|   //settings page
 | |
|   server.on("/settings", HTTP_GET, [](){
 | |
|     if(!handleFileRead("/settings.htm")) server.send(200, "text/html", PAGE_settings);
 | |
|   });
 | |
|   server.on("/button.png", HTTP_GET, [](){
 | |
|     if(!handleFileRead("/button.png")) server.send(404, "text/plain", "FileNotFound");
 | |
|   });
 | |
|   server.on("/moon.png", HTTP_GET, [](){
 | |
|     if(!handleFileRead("/moon.png")) server.send(404, "text/plain", "FileNotFound");
 | |
|   });
 | |
|   server.on("/favicon.ico", HTTP_GET, [](){
 | |
|     if(!handleFileRead("/favicon.ico")) server.send(404, "text/plain", "FileNotFound");
 | |
|   });
 | |
|   server.on("/", HTTP_GET, [](){
 | |
|     if(!handleFileRead("/index.htm")) server.send(200, "text/html", PAGE_index);
 | |
|   });
 | |
|   server.on("/reset", HTTP_GET, [](){
 | |
|     server.send(200, "text/plain", "Rebooting... Go to main page when lights turn on.");
 | |
|     reset();
 | |
|   });
 | |
|   server.on("/set-settings", HTTP_POST, [](){
 | |
|     handleSettingsSet();
 | |
|     if(!handleFileRead("/settingssaved.htm")) server.send(200, "text/html", PAGE_settingssaved);
 | |
|   });
 | |
|   if (!ota_lock){
 | |
|     server.on("/edit", HTTP_GET, [](){
 | |
|     if(!handleFileRead("/edit.htm")) server.send(200, "text/html", PAGE_edit);
 | |
|     });
 | |
|     server.on("/edit", HTTP_PUT, handleFileCreate);
 | |
|     server.on("/edit", HTTP_DELETE, handleFileDelete);
 | |
|     server.on("/edit", HTTP_POST, [](){ server.send(200, "text/plain", ""); }, handleFileUpload);
 | |
|     server.on("/down", HTTP_GET, down);
 | |
|     server.on("/cleareeprom", HTTP_GET, clearEEPROM);
 | |
|     server.on("/list", HTTP_GET, handleFileList);
 | |
|     //init ota page
 | |
|     httpUpdater.setup(&server);
 | |
|   } else
 | |
|   {
 | |
|     server.on("/edit", HTTP_GET, [](){
 | |
|     server.send(500, "text/plain", "OTA lock active");
 | |
|     });
 | |
|     server.on("/down", HTTP_GET, [](){
 | |
|     server.send(500, "text/plain", "OTA lock active");
 | |
|     });
 | |
|     server.on("/cleareeprom", HTTP_GET, [](){
 | |
|     server.send(500, "text/plain", "OTA lock active");
 | |
|     });
 | |
|     server.on("/update", HTTP_GET, [](){
 | |
|     server.send(500, "text/plain", "OTA lock active");
 | |
|     });
 | |
|     server.on("/list", HTTP_GET, [](){
 | |
|     server.send(500, "text/plain", "OTA lock active");
 | |
|     });
 | |
|   }
 | |
|   //called when the url is not defined here, ajax-in; get-settings
 | |
|   server.onNotFound([](){
 | |
|     if(!handleSet(server.uri())){
 | |
|       server.send(404, "text/plain", "FileNotFound");
 | |
|     }
 | |
|   });
 | |
| 
 | |
|   server.begin();
 | |
|   DEBUG_PRINTLN("HTTP server started");
 | |
|   // Add service to MDNS
 | |
|   MDNS.addService("http", "tcp", 80);
 | |
|   // Initialize NeoPixel Strip
 | |
|   strip.init();
 | |
|   strip.setMode(effectCurrent);
 | |
|   strip.setColor(0);
 | |
|   strip.setSpeed(effectSpeed);
 | |
|   strip.setBrightness(255);
 | |
|   strip.start();
 | |
|   colorUpdated(0);
 | |
|   pinMode(buttonPin, INPUT_PULLUP);
 | |
| }
 | |
| 
 | |
| void initAP(){
 | |
|   WiFi.softAP(apssid.c_str(), appass.c_str(), apchannel, aphide);
 | |
| }
 | |
| 
 | |
| void initCon()
 | |
| {
 | |
|   int fail_count = 0;
 | |
|   if (clientssid.length() <1) fail_count = 33;
 | |
|   WiFi.begin(clientssid.c_str(), clientpass.c_str());
 | |
|   while(WiFi.status() != WL_CONNECTED) {
 | |
|     delay(500);
 | |
|     DEBUG_PRINTLN("C_NC");
 | |
|     fail_count++;
 | |
|     if (fail_count > 32)
 | |
|     {
 | |
|       WiFi.disconnect();
 | |
|       DEBUG_PRINTLN("Can't connect to network. Opening AP...");
 | |
|       String save = apssid;
 | |
|       only_ap = true;
 | |
|       if (apssid.length() <1) apssid = "WLED-AP";
 | |
|       initAP();
 | |
|       apssid = save;
 | |
|       return;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 |