make OTA selectable
This commit is contained in:
		
							parent
							
								
									c713b0a0e0
								
							
						
					
					
						commit
						c7445f0a1e
					
				
							
								
								
									
										3
									
								
								build.py
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								build.py
									
									
									
									
									
								
							| @ -90,5 +90,4 @@ def publish_bintray(source, target, env): | ||||
| # put build file name and upload command to platformio environment | ||||
| env.Replace( | ||||
|     PROGNAME="firmware_" + package + "_v%s" % version, | ||||
|     UPLOADCMD=publish_bintray | ||||
| ) | ||||
|     UPLOADCMD=publish_bintray) | ||||
| @ -26,7 +26,7 @@ description = Paxcounter is a proof-of-concept ESP32 device for metering passeng | ||||
| 
 | ||||
| [common] | ||||
| ; for release_version use max. 10 chars total, use any decimal format like "a.b.c" | ||||
| release_version = 1.5.5 | ||||
| release_version = 1.5.6 | ||||
| ; DEBUG LEVEL: For production run set to 0, otherwise device will leak RAM while running! | ||||
| ; 0=None, 1=Error, 2=Warn, 3=Info, 4=Debug, 5=Verbose | ||||
| debug_level = 0 | ||||
|  | ||||
| @ -143,12 +143,15 @@ void setup() { | ||||
|   batt_voltage = read_voltage(); | ||||
| #endif | ||||
| 
 | ||||
| #ifdef USE_OTA | ||||
|   strcat_P(features, " OTA"); | ||||
|   // reboot to firmware update mode if ota trigger switch is set
 | ||||
|   if (cfg.runmode == 1) { | ||||
|     cfg.runmode = 0; | ||||
|     saveConfig(); | ||||
|     start_ota_update(); | ||||
|   } | ||||
| #endif | ||||
| 
 | ||||
|   // initialize button
 | ||||
| #ifdef HAS_BUTTON | ||||
|  | ||||
							
								
								
									
										12
									
								
								src/ota.cpp
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								src/ota.cpp
									
									
									
									
									
								
							| @ -1,3 +1,5 @@ | ||||
| #ifdef USE_OTA | ||||
| 
 | ||||
| /*
 | ||||
|  Parts of this code: | ||||
|  Copyright (c) 2014-present PlatformIO <contact@platformio.org> | ||||
| @ -17,7 +19,6 @@ | ||||
| 
 | ||||
| #include "ota.h" | ||||
| 
 | ||||
| #include <string> | ||||
| using namespace std; | ||||
| 
 | ||||
| const BintrayClient bintray(BINTRAY_USER, BINTRAY_REPO, BINTRAY_PACKAGE); | ||||
| @ -250,10 +251,10 @@ void do_ota_update() { | ||||
|     size_t written, current, size; | ||||
| 
 | ||||
|     if (Update.begin(contentLength)) { | ||||
| 
 | ||||
| #ifdef HAS_DISPLAY | ||||
|       // register callback function for showing progress while streaming data
 | ||||
|       Update.onProgress(&show_progress); | ||||
| 
 | ||||
| #endif | ||||
|       int i = FLASH_MAX_TRY; | ||||
|       while ((i--) && (written != contentLength)) { | ||||
| 
 | ||||
| @ -311,7 +312,7 @@ void do_ota_update() { | ||||
|   client.stop(); | ||||
| } // do_ota_update
 | ||||
| 
 | ||||
| void display(const uint8_t row, std::string status, std::string msg) { | ||||
| void display(const uint8_t row, const std::string status, const std::string msg) { | ||||
| #ifdef HAS_DISPLAY | ||||
|   u8x8.setCursor(14, row); | ||||
|   u8x8.print((status.substr(0, 2)).c_str()); | ||||
| @ -320,7 +321,6 @@ void display(const uint8_t row, std::string status, std::string msg) { | ||||
|     u8x8.setCursor(0, 7); | ||||
|     u8x8.print(msg.substr(0, 16).c_str()); | ||||
|   } | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
| // callback function to show download progress while streaming data
 | ||||
| @ -328,6 +328,7 @@ void show_progress(size_t current, size_t size) { | ||||
|   char buf[17]; | ||||
|   snprintf(buf, 17, "%-9lu (%3lu%%)", current, current * 100 / size); | ||||
|   display(4, "**", buf); | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
| // helper function to compare two versions. Returns 1 if v2 is
 | ||||
| @ -364,3 +365,4 @@ int version_compare(const String v1, const String v2) { | ||||
|   } | ||||
|   return 0; | ||||
| } | ||||
| #endif // USE_OTA
 | ||||
| @ -1,6 +1,8 @@ | ||||
| #ifndef OTA_H | ||||
| #define OTA_H | ||||
| 
 | ||||
| #ifdef USE_OTA | ||||
| 
 | ||||
| #include "globals.h" | ||||
| #include "update.h" | ||||
| #include <WiFi.h> | ||||
| @ -12,6 +14,8 @@ void do_ota_update(); | ||||
| void start_ota_update(); | ||||
| int version_compare(const String v1, const String v2); | ||||
| void show_progress(size_t current, size_t size); | ||||
| void display(const uint8_t row, std::string status, std::string msg); | ||||
| void display(const uint8_t row, const std::string status, const std::string msg); | ||||
| 
 | ||||
| #endif // USE_OTA
 | ||||
| 
 | ||||
| #endif // OTA_H
 | ||||
|  | ||||
| @ -66,6 +66,7 @@ | ||||
| #define HOMECYCLE                       30      // house keeping cycle in seconds [default = 30 secs] | ||||
| 
 | ||||
| // OTA settings | ||||
| #define USE_OTA                         1       // Comment out to disable OTA update | ||||
| #define WIFI_MAX_TRY                    20      // maximum number of wifi connect attempts for OTA update [default = 20] | ||||
| #define FLASH_MAX_TRY                   3       // maximum number of attempts for writing update binary to flash [default = 3] | ||||
| #define OTA_MIN_BATT                    3700    // minimum battery level vor OTA [millivolt] | ||||
|  | ||||
| @ -18,7 +18,7 @@ void set_reset(uint8_t val[]) { | ||||
|   case 1: // reset MAC counter
 | ||||
|     ESP_LOGI(TAG, "Remote command: reset MAC counter"); | ||||
|     reset_counters(); // clear macs
 | ||||
|     get_salt();     // get new salt
 | ||||
|     get_salt();       // get new salt
 | ||||
|     sprintf(display_line6, "Reset counter"); | ||||
|     break; | ||||
|   case 2: // reset device to factory settings
 | ||||
| @ -33,9 +33,14 @@ void set_reset(uint8_t val[]) { | ||||
|     break; | ||||
|   case 9: // reset and ask for software update via Wifi OTA
 | ||||
|     ESP_LOGI(TAG, "Remote command: software update via Wifi"); | ||||
| #ifdef USE_OTA | ||||
|     sprintf(display_line6, "Software update"); | ||||
|     cfg.runmode = 1; | ||||
| #else | ||||
|     sprintf(display_line6, "Software update not implemented"); | ||||
| #endif // USE_OTA
 | ||||
|     break; | ||||
| 
 | ||||
|   default: | ||||
|     ESP_LOGW(TAG, "Remote command: reset called with invalid parameter(s)"); | ||||
|   } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user