Fix repeated get hosted MCU fw version

This commit is contained in:
Theo Arends 2025-07-16 14:27:01 +02:00
parent 3c0e71c290
commit 6e7e483a70
2 changed files with 29 additions and 18 deletions

View File

@ -3172,12 +3172,12 @@ const mytmplt kModules[] PROGMEM = {
AGPIO(GPIO_USER), // 11 IO GPIO11, TOUCH9, LP_GPIO11 AGPIO(GPIO_USER), // 11 IO GPIO11, TOUCH9, LP_GPIO11
AGPIO(GPIO_USER), // 12 IO GPIO12, TOUCH10, LP_GPIO12 AGPIO(GPIO_USER), // 12 IO GPIO12, TOUCH10, LP_GPIO12
AGPIO(GPIO_USER), // 13 IO GPIO13, TOUCH11, LP_GPIO13 AGPIO(GPIO_USER), // 13 IO GPIO13, TOUCH11, LP_GPIO13
AGPIO(GPIO_USER), // 14 IO GPIO14, TOUCH12, LP_GPIO14 AGPIO(GPIO_USER), // 14 IO GPIO14, TOUCH12, LP_GPIO14, SDIO2_D0 ESPHosted (ESP32C6 GPIO20)
AGPIO(GPIO_USER), // 15 IO GPIO15, TOUCH13, LP_GPIO15 AGPIO(GPIO_USER), // 15 IO GPIO15, TOUCH13, LP_GPIO15, SDIO2_D1 ESPHosted (ESP32C6 GPIO21)
AGPIO(GPIO_USER), // 16 IO GPIO16, ADC1_CH0 AGPIO(GPIO_USER), // 16 IO GPIO16, ADC1_CH0, SDIO2_D2 ESPHosted (ESP32C6 GPIO22)
AGPIO(GPIO_USER), // 17 IO GPIO17, ADC1_CH1 AGPIO(GPIO_USER), // 17 IO GPIO17, ADC1_CH1, SDIO2_D3 ESPHosted (ESP32C6 GPIO23)
AGPIO(GPIO_USER), // 18 IO GPIO18, ADC1_CH2 AGPIO(GPIO_USER), // 18 IO GPIO18, ADC1_CH2, SDIO2_CLK ESPHosted (ESP32C6 GPIO19)
AGPIO(GPIO_USER), // 19 IO GPIO19, ADC1_CH3 AGPIO(GPIO_USER), // 19 IO GPIO19, ADC1_CH3, SDIO2_CMD ESPHosted (ESP32C6 GPIO18)
AGPIO(GPIO_USER), // 20 IO GPIO20, ADC1_CH4 AGPIO(GPIO_USER), // 20 IO GPIO20, ADC1_CH4
AGPIO(GPIO_USER), // 21 IO GPIO21, ADC1_CH5 AGPIO(GPIO_USER), // 21 IO GPIO21, ADC1_CH5
AGPIO(GPIO_USER), // 22 IO GPIO22, ADC1_CH6 AGPIO(GPIO_USER), // 22 IO GPIO22, ADC1_CH6

View File

@ -25,21 +25,32 @@
#include "esp_hosted_api_types.h" #include "esp_hosted_api_types.h"
#include "esp_hosted_ota.h" #include "esp_hosted_ota.h"
String GetHostedMCUFwVersion() String GetHostedMCUFwVersion(void) {
{ static int major1 = -1;
if(!esp_hosted_is_config_valid()) { static int minor1;
static int patch1;
if (!esp_hosted_is_config_valid()) {
return String(""); return String("");
} }
esp_hosted_coprocessor_fwver_t ver_info; if (-1 == major1) {
esp_err_t err = esp_hosted_get_coprocessor_fwversion(&ver_info); major1 = 0;
if (err == ESP_OK) { minor1 = 0;
char data[40]; patch1 = 6;
snprintf_P(data, sizeof(data), PSTR("%d.%d.%d"), ver_info.major1,ver_info.minor1,ver_info.patch1); esp_hosted_coprocessor_fwver_t ver_info;
// AddLog(LOG_LEVEL_DEBUG, PSTR("Fw: %d.%d.%d"), ver_info.major1, ver_info.minor1, ver_info.patch1); esp_err_t err = esp_hosted_get_coprocessor_fwversion(&ver_info); // This takes almost 4 seconds
return String(data); if (err == ESP_OK) {
major1 = ver_info.major1;
minor1 = ver_info.minor1;
patch1 = ver_info.patch1;
} else {
// We can not know exactly, as API was added after 0.0.6
AddLog(LOG_LEVEL_DEBUG_MORE, PSTR("HST: Error %d, hosted version 0.0.6 or older"), err);
}
} }
AddLog(LOG_LEVEL_DEBUG, PSTR("Err: %d, version 0.0..6 or older"), err); char data[40];
return String(PSTR("0.0.6")); // we can not know exactly, but API was added after 0.0.6 snprintf_P(data, sizeof(data), PSTR("%d.%d.%d"), major1, minor1, patch1);
return String(data);
} }
void OTAHostedMCU(const char* image_url) { void OTAHostedMCU(const char* image_url) {