mirror of
				https://github.com/0xFEEDC0DE64/arduino-esp32.git
				synced 2025-10-28 20:51:40 +01:00 
			
		
		
		
	- add callback function to HTTPUpdate - update example to print httpupdate progress - fix ArduinoIDE syntax coloring Signed-off-by: Jayantajit Gogoi <jayanta.gogoi525@gmail.com>
		
			
				
	
	
		
			94 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /**
 | |
|    httpUpdate.ino
 | |
| 
 | |
|     Created on: 27.11.2015
 | |
| 
 | |
| */
 | |
| 
 | |
| #include <Arduino.h>
 | |
| 
 | |
| #include <WiFi.h>
 | |
| #include <WiFiMulti.h>
 | |
| 
 | |
| #include <HTTPClient.h>
 | |
| #include <HTTPUpdate.h>
 | |
| 
 | |
| WiFiMulti WiFiMulti;
 | |
| 
 | |
| void setup() {
 | |
| 
 | |
|   Serial.begin(115200);
 | |
|   // Serial.setDebugOutput(true);
 | |
| 
 | |
|   Serial.println();
 | |
|   Serial.println();
 | |
|   Serial.println();
 | |
| 
 | |
|   for (uint8_t t = 4; t > 0; t--) {
 | |
|     Serial.printf("[SETUP] WAIT %d...\n", t);
 | |
|     Serial.flush();
 | |
|     delay(1000);
 | |
|   }
 | |
| 
 | |
|   WiFi.mode(WIFI_STA);
 | |
|   WiFiMulti.addAP("SSID", "PASSWORD");
 | |
| 
 | |
| 
 | |
| }
 | |
| 
 | |
| void update_started() {
 | |
|   Serial.println("CALLBACK:  HTTP update process started");
 | |
| }
 | |
| 
 | |
| void update_finished() {
 | |
|   Serial.println("CALLBACK:  HTTP update process finished");
 | |
| }
 | |
| 
 | |
| void update_progress(int cur, int total) {
 | |
|   Serial.printf("CALLBACK:  HTTP update process at %d of %d bytes...\n", cur, total);
 | |
| }
 | |
| 
 | |
| void update_error(int err) {
 | |
|   Serial.printf("CALLBACK:  HTTP update fatal error code %d\n", err);
 | |
| }
 | |
| 
 | |
| void loop() {
 | |
|   // wait for WiFi connection
 | |
|   if ((WiFiMulti.run() == WL_CONNECTED)) {
 | |
| 
 | |
|     WiFiClient client;
 | |
| 
 | |
|     // The line below is optional. It can be used to blink the LED on the board during flashing
 | |
|     // The LED will be on during download of one buffer of data from the network. The LED will
 | |
|     // be off during writing that buffer to flash
 | |
|     // On a good connection the LED should flash regularly. On a bad connection the LED will be
 | |
|     // on much longer than it will be off. Other pins than LED_BUILTIN may be used. The second
 | |
|     // value is used to put the LED on. If the LED is on with HIGH, that value should be passed
 | |
|     // httpUpdate.setLedPin(LED_BUILTIN, LOW);
 | |
| 
 | |
|     httpUpdate.onStart(update_started);
 | |
|     httpUpdate.onEnd(update_finished);
 | |
|     httpUpdate.onProgress(update_progress);
 | |
|     httpUpdate.onError(update_error);
 | |
| 
 | |
|     t_httpUpdate_return ret = httpUpdate.update(client, "http://server/file.bin");
 | |
|     // Or:
 | |
|     //t_httpUpdate_return ret = httpUpdate.update(client, "server", 80, "/file.bin");
 | |
| 
 | |
|     switch (ret) {
 | |
|       case HTTP_UPDATE_FAILED:
 | |
|         Serial.printf("HTTP_UPDATE_FAILED Error (%d): %s\n", httpUpdate.getLastError(), httpUpdate.getLastErrorString().c_str());
 | |
|         break;
 | |
| 
 | |
|       case HTTP_UPDATE_NO_UPDATES:
 | |
|         Serial.println("HTTP_UPDATE_NO_UPDATES");
 | |
|         break;
 | |
| 
 | |
|       case HTTP_UPDATE_OK:
 | |
|         Serial.println("HTTP_UPDATE_OK");
 | |
|         break;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 |