Advertisement
Guest User

Untitled

a guest
Nov 21st, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. void checkForUpdates() {
  2.   String mac = getMAC();
  3.   String fwURL = String( fwUrlBase );
  4.   fwURL.concat( mac );
  5.   String fwVersionURL = fwURL;
  6.   fwVersionURL.concat( ".version" );
  7.  
  8.   Serial.println( "Checking for firmware updates." );
  9.   Serial.print( "MAC address: " );
  10.   Serial.println( mac );
  11.   Serial.print( "Firmware version URL: " );
  12.   Serial.println( fwVersionURL );
  13.  
  14.   HTTPClient httpClient;
  15.   httpClient.begin( fwVersionURL );
  16.   int httpCode = httpClient.GET();
  17.   if( httpCode == 200 ) {
  18.     String newFWVersion = httpClient.getString();
  19.  
  20.     Serial.print( "Current firmware version: " );
  21.     Serial.println( FW_VERSION );
  22.     Serial.print( "Available firmware version: " );
  23.     Serial.println( newFWVersion );
  24.  
  25.     int newVersion = newFWVersion.toInt();
  26.  
  27.     if( newVersion > FW_VERSION ) {
  28.       Serial.println( "Preparing to update" );
  29.  
  30.       String fwImageURL = fwURL;
  31.       fwImageURL.concat( ".bin" );
  32.       t_httpUpdate_return ret = ESPhttpUpdate.update( fwImageURL );
  33.  
  34.       switch(ret) {
  35.         case HTTP_UPDATE_FAILED:
  36.           Serial.printf("HTTP_UPDATE_FAILD Error (%d): %s", ESPhttpUpdate.getLastError(), ESPhttpUpdate.getLastErrorString().c_str());
  37.           break;
  38.  
  39.         case HTTP_UPDATE_NO_UPDATES:
  40.           Serial.println("HTTP_UPDATE_NO_UPDATES");
  41.           break;
  42.       }
  43.     }
  44.     else {
  45.       Serial.println( "Already on latest version" );
  46.     }
  47.   }
  48.   else {
  49.     Serial.print( "Firmware version check failed, got HTTP response code " );
  50.     Serial.println( httpCode );
  51.   }
  52.   httpClient.end();
  53. }
  54.  
  55. String getMAC()
  56. {
  57.   uint8_t mac[6];
  58.   char result[14];
  59.  
  60.   snprintf( result, sizeof( result ), "%02x%02x%02x%02x%02x%02x", mac[ 0 ], mac[ 1 ], mac[ 2 ], mac[ 3 ], mac[ 4 ], mac[ 5 ] );
  61.    
  62.   mqttclient.publish(mqtt_topics_mac, result);  
  63.   //Serial.println("MAC-Adresse: "+String( result )+" cm gesendet");
  64.  
  65.  
  66.   char b[25];
  67.   String str;
  68.   str=String(FW_VERSION);
  69.   str.toCharArray(b,25);
  70.   mqttclient.publish(mqtt_topics_version, b);  
  71.   Serial.println("Version: "+str+" gesendet");
  72.  
  73.   return String( result );
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement