From 7678c3d657a9b6ea6a501c57e0a588c1d6839a94 Mon Sep 17 00:00:00 2001 From: Valerio Vaccaro <valerio.vaccaro@gmail.com> Date: Mon, 12 Aug 2024 17:49:28 +0200 Subject: [PATCH] add automagic firmware version name calculation --- auto_firmware_version.py | 17 +++++++ platformio.ini | 52 ++++++++++++++++++++++ src/drivers/displays/wt32DisplayDriver.cpp | 6 ++- 3 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 auto_firmware_version.py diff --git a/auto_firmware_version.py b/auto_firmware_version.py new file mode 100644 index 0000000..5a60603 --- /dev/null +++ b/auto_firmware_version.py @@ -0,0 +1,17 @@ +import subprocess + +Import("env") + +def get_firmware_specifier_build_flag(): + ret = subprocess.run(["git", "describe"], stdout=subprocess.PIPE, text=True) #Uses only annotated tags + #ret = subprocess.run(["git", "describe", "--tags"], stdout=subprocess.PIPE, text=True) #Uses any tags + build_version = ret.stdout.strip() + # fix unwanted and verbose tags + build_version = build_version.replace('Release', '') + build_flag = "-D AUTO_VERSION=\\\"" + build_version + "\\\"" + print ("Firmware Revision: " + build_version) + return (build_flag) + +env.Append( + BUILD_FLAGS=[get_firmware_specifier_build_flag()] +) diff --git a/platformio.ini b/platformio.ini index 03906cd..5ef99d1 100644 --- a/platformio.ini +++ b/platformio.ini @@ -17,6 +17,8 @@ default_envs = NerdminerV2-T-HMI, wt32-sc01, wt32-sc01-plus, han_m5stack, M5Stic platform = espressif32 board = m5stick-c framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -48,6 +50,8 @@ lib_ignore = platform = espressif32 board = esp-wrover-kit framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -80,6 +84,8 @@ lib_ignore = platform = espressif32 board = esp32-s3-devkitc-1 framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -115,6 +121,8 @@ lib_ignore = platform = espressif32 board = lolin_s3_mini framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -147,6 +155,8 @@ lib_ignore = platform = espressif32 board = m5stack-core-esp32 framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -177,6 +187,8 @@ lib_ignore = platform = espressif32 board = lolin_s2_mini framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -206,6 +218,8 @@ lib_ignore = platform = espressif32 board = lolin_s3_mini framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -241,6 +255,8 @@ lib_ignore = platform = espressif32 board = esp32dev framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -270,6 +286,8 @@ lib_ignore = platform = espressif32 board = seeed_xiao_esp32c3 framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -300,6 +318,8 @@ lib_ignore = platform = espressif32 board = esp32-c3-devkitm-1 framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -331,6 +351,8 @@ lib_ignore = platform = espressif32 board = esp32-s3-devkitc-1 framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -363,6 +385,8 @@ lib_ignore = platform = espressif32 board = esp32-s3-devkitc-1 framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -398,6 +422,8 @@ lib_ignore = platform = espressif32 board = esp32-s3-devkitc-1 framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -433,6 +459,8 @@ lib_ignore = platform = espressif32 board = esp32dev framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -460,6 +488,8 @@ lib_ignore = platform = espressif32 board = esp32dev ;esp-wrover-kit framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -491,6 +521,8 @@ lib_ignore = platform = espressif32 board = lilygo-t-amoled framework = arduino +extra_scripts = + pre:auto_firmware_version.py board_build.partitions = huge_app.csv build_flags = -DNERMINER_S3_AMOLED @@ -513,6 +545,8 @@ lib_ignore = platform = espressif32 board = lilygo-t-amoled framework = arduino +extra_scripts = + pre:auto_firmware_version.py board_build.partitions = huge_app.csv build_flags = -DNERMINER_S3_AMOLED @@ -535,6 +569,8 @@ lib_ignore = platform = espressif32 board = esp32-s3-devkitc-1 framework = arduino +extra_scripts = + pre:auto_firmware_version.py board_build.partitions = huge_app.csv build_flags = -DNERMINER_S3_DONGLE @@ -559,6 +595,8 @@ lib_ignore = platform = espressif32 board = esp32-s3-devkitc-1 framework = arduino +extra_scripts = + pre:auto_firmware_version.py board_build.partitions = huge_app.csv build_flags = -DNERMINER_S3_GEEK @@ -581,6 +619,8 @@ lib_ignore = platform = espressif32 ;(ESP32-D0WD-V3) board = esp32cam framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -610,6 +650,8 @@ lib_ignore = platform = espressif32 board = esp32-s3-t-qt-pro framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time @@ -639,6 +681,8 @@ lib_ignore = platform = espressif32 board = esp32dev framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_speed = 115200 upload_speed = 921600 ;build_type = debug @@ -687,6 +731,8 @@ lib_ignore = platform = espressif32 board = esp32dev framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_speed = 115200 monitor_filters = esp32_exception_decoder @@ -740,6 +786,8 @@ lib_ignore = platform = espressif32 board = lilygo-t-hmi framework = arduino +extra_scripts = + pre:auto_firmware_version.py board_build.partitions = default_16MB.csv monitor_filters = esp32_exception_decoder @@ -776,6 +824,8 @@ lib_ignore = platform = espressif32 board = ttgo-lora32-v1 framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_speed = 115200 upload_speed = 115200 board_build.partitions = huge_app.csv @@ -797,6 +847,8 @@ lib_ignore = platform = espressif32 board = m5stack-stamps3 framework = arduino +extra_scripts = + pre:auto_firmware_version.py monitor_filters = esp32_exception_decoder time diff --git a/src/drivers/displays/wt32DisplayDriver.cpp b/src/drivers/displays/wt32DisplayDriver.cpp index f1d51d9..ed6b379 100644 --- a/src/drivers/displays/wt32DisplayDriver.cpp +++ b/src/drivers/displays/wt32DisplayDriver.cpp @@ -323,10 +323,12 @@ void wt32Display_NoScreen(unsigned long mElapsed) void wt32Display_LoadingScreen(void) { Serial.println("Initializing..."); + Serial.print("Firmware Version: "); + Serial.println(AUTO_VERSION); lv_label_set_text(ui_lblssid, "SSID HanSoloAP"); lv_label_set_text(ui_lblpassword, "Password MineYourCoins"); - lv_label_set_text(ui_lblversion, "Version 1.6.4 (RC1)"); - _ui_screen_change(&ui_HomeScreen, LV_SCR_LOAD_ANIM_FADE_ON, 500, 0, &ui_HomeScreen_screen_init); + lv_label_set_text(ui_lblversion, AUTO_VERSION); + _ui_screen_change(&ui_HomeScreen, LV_SCR_LOAD_ANIM_FADE_ON, 2000, 0, &ui_HomeScreen_screen_init); } void wt32Display_SetupScreen(void)