mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2025-12-08 04:27:12 +03:00
Merge branch 'Over_The_Air_Update' of github.com:sle118/squeezelite-esp32 into Over_The_Air_Update
This commit is contained in:
142
build-scripts/NonOTA-16M-sdkconfig.defaults
Normal file
142
build-scripts/NonOTA-16M-sdkconfig.defaults
Normal file
@@ -0,0 +1,142 @@
|
||||
CONFIG_ESPTOOLPY_BAUD_2MB=y
|
||||
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
|
||||
CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
|
||||
CONFIG_ESPTOOLPY_FLASHFREQ="80m"
|
||||
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
|
||||
CONFIG_ESPTOOLPY_FLASHSIZE="16MB"
|
||||
CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y
|
||||
CONFIG_WIFI_FAST_SCAN=y
|
||||
CONFIG_WIFI_CONNECT_AP_BY_SIGNAL=y
|
||||
CONFIG_FAST_SCAN_THRESHOLD=y
|
||||
CONFIG_FAST_SCAN_MINIMUM_SIGNAL=-127
|
||||
CONFIG_EXAMPLE_OPEN=y
|
||||
CONFIG_INCLUDE_FLAC=y
|
||||
CONFIG_INCLUDE_FAAD=y
|
||||
CONFIG_INCLUDE_MAD=y
|
||||
CONFIG_INCLUDE_VORBIS=y
|
||||
CONFIG_INCLUDE_ALAC=y
|
||||
CONFIG_OTA_ALLOW_HTTP=y
|
||||
|
||||
CONFIG_BTAUDIO=y
|
||||
CONFIG_OUTPUT_NAME=""
|
||||
CONFIG_OUTPUT_RATES="44100"
|
||||
CONFIG_I2S_NUM=0
|
||||
CONFIG_I2S_BCK_IO=26
|
||||
CONFIG_I2S_WS_IO=25
|
||||
CONFIG_I2S_DO_IO=22
|
||||
CONFIG_I2S_BITS_PER_CHANNEL_16=y
|
||||
CONFIG_I2S_BITS_PER_CHANNEL=16
|
||||
CONFIG_A2DP_DEV_NAME="Squeezelite"
|
||||
CONFIG_A2DP_CONTROL_DELAY_MS=500
|
||||
CONFIG_A2DP_CONNECT_TIMEOUT_MS=1000
|
||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="non-ota-partitions.csv"
|
||||
CONFIG_PARTITION_TABLE_FILENAME="non-ota-partitions.csv"
|
||||
CONFIG_PARTITION_TABLE_OFFSET=0x8000
|
||||
CONFIG_PARTITION_TABLE_MD5=y
|
||||
CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE=y
|
||||
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
|
||||
CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y
|
||||
CONFIG_BT_ENABLED=y
|
||||
CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=y
|
||||
CONFIG_BTDM_CTRL_BR_EDR_MAX_ACL_CONN=2
|
||||
CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN=0
|
||||
CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM=y
|
||||
CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF=1
|
||||
CONFIG_BTDM_CTRL_BLE_MAX_CONN_EFF=0
|
||||
CONFIG_BTDM_CTRL_BR_EDR_MAX_ACL_CONN_EFF=2
|
||||
CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN_EFF=0
|
||||
CONFIG_BTDM_CTRL_PINNED_TO_CORE_0=y
|
||||
CONFIG_BTDM_CTRL_PINNED_TO_CORE=0
|
||||
CONFIG_BTDM_CTRL_HCI_MODE_VHCI=y
|
||||
CONFIG_BTDM_MODEM_SLEEP=y
|
||||
CONFIG_BTDM_MODEM_SLEEP_MODE_ORIG=y
|
||||
CONFIG_BTDM_LPCLK_SEL_MAIN_XTAL=y
|
||||
CONFIG_BTDM_BLE_SLEEP_CLOCK_ACCURACY_INDEX_EFF=1
|
||||
CONFIG_BT_BLUEDROID_ENABLED=y
|
||||
CONFIG_BT_BLUEDROID_PINNED_TO_CORE_0=y
|
||||
CONFIG_BT_BLUEDROID_PINNED_TO_CORE=0
|
||||
CONFIG_BT_BTC_TASK_STACK_SIZE=3072
|
||||
CONFIG_BT_BTU_TASK_STACK_SIZE=4096
|
||||
CONFIG_BT_CLASSIC_ENABLED=y
|
||||
CONFIG_BT_A2DP_ENABLE=y
|
||||
CONFIG_BT_A2DP_SINK_TASK_STACK_SIZE=2048
|
||||
CONFIG_BT_A2DP_SOURCE_TASK_STACK_SIZE=2048
|
||||
CONFIG_BT_SSP_ENABLED=y
|
||||
CONFIG_BT_ACL_CONNECTIONS=4
|
||||
CONFIG_BT_SMP_ENABLE=y
|
||||
CONFIG_BT_BLE_ESTAB_LINK_CONN_TOUT=30
|
||||
CONFIG_BT_RESERVE_DRAM=0xdb5c
|
||||
CONFIG_SPI_MASTER_ISR_IN_IRAM=y
|
||||
CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
|
||||
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
|
||||
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
|
||||
CONFIG_ESP32_SPIRAM_SUPPORT=y
|
||||
CONFIG_SPIRAM_BOOT_INIT=y
|
||||
CONFIG_SPIRAM_USE_MALLOC=y
|
||||
CONFIG_SPIRAM_TYPE_AUTO=y
|
||||
CONFIG_SPIRAM_SIZE=-1
|
||||
CONFIG_SPIRAM_SPEED_80M=y
|
||||
CONFIG_SPIRAM_MEMTEST=y
|
||||
CONFIG_SPIRAM_CACHE_WORKAROUND=y
|
||||
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=256
|
||||
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=65536
|
||||
CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y
|
||||
CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y
|
||||
|
||||
CONFIG_SPIRAM_OCCUPY_VSPI_HOST=y
|
||||
CONFIG_SPIRAM_BANKSWITCH_ENABLE=n
|
||||
CONFIG_D0WD_PSRAM_CLK_IO=17
|
||||
CONFIG_D0WD_PSRAM_CS_IO=16
|
||||
CONFIG_D2WD_PSRAM_CLK_IO=9
|
||||
CONFIG_D2WD_PSRAM_CS_IO=10
|
||||
CONFIG_PICO_PSRAM_CS_IO=10
|
||||
CONFIG_ESP32_PANIC_PRINT_REBOOT=y
|
||||
CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024
|
||||
CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000
|
||||
CONFIG_ESP32_XTAL_FREQ_40=y
|
||||
CONFIG_ESP32_XTAL_FREQ=40
|
||||
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
|
||||
CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y
|
||||
CONFIG_ESP32_WIFI_SW_COEXIST_PREFERENCE_BALANCE=y
|
||||
CONFIG_ESP32_WIFI_SW_COEXIST_PREFERENCE_VALUE=2
|
||||
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=12
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=40
|
||||
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y
|
||||
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0
|
||||
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=12
|
||||
CONFIG_ESP32_WIFI_NVS_ENABLED=y
|
||||
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y
|
||||
CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752
|
||||
CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
|
||||
CONFIG_ESP32_WIFI_IRAM_OPT=y
|
||||
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=n
|
||||
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=n
|
||||
CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y
|
||||
CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20
|
||||
CONFIG_ESP32_PHY_MAX_TX_POWER=20
|
||||
CONFIG_FREERTOS_HZ=100
|
||||
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
|
||||
CONFIG_LWIP_NETIF_LOOPBACK=y
|
||||
CONFIG_LWIP_TCP_MSL=60000
|
||||
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=8192
|
||||
CONFIG_LWIP_TCP_WND_DEFAULT=32768
|
||||
CONFIG_LWIP_TCP_RECVMBOX_SIZE=32
|
||||
CONFIG_LWIP_MAX_RAW_PCBS=16
|
||||
CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC=y
|
||||
CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
|
||||
CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
|
||||
CONFIG_ESP32_PTHREAD_STACK_MIN=768
|
||||
CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1=y
|
||||
CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=1
|
||||
CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread"
|
||||
CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y
|
||||
CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y
|
||||
|
||||
# wifi-manager
|
||||
CONFIG_DEFAULT_AP_SSID="squeezelite"
|
||||
CONFIG_DEFAULT_AP_PASSWORD="squeezelite"
|
||||
CONFIG_DEFAULT_AP_IP="192.168.4.1"
|
||||
CONFIG_DEFAULT_AP_GATEWAY="192.168.4.1"
|
||||
CONFIG_DEFAULT_AP_NETMASK="255.255.255.0"
|
||||
CONFIG_DEFAULT_COMMAND_LINE="squeezelite -o I2S -b 500:2000 -d all=info"
|
||||
1140
build-scripts/NonOTA-I2S-16MFlash-sdkconfig.defaults
Normal file
1140
build-scripts/NonOTA-I2S-16MFlash-sdkconfig.defaults
Normal file
File diff suppressed because it is too large
Load Diff
@@ -13,8 +13,8 @@ CONFIG_SDK_MAKE_WARN_UNDEFINED_VARIABLES=y
|
||||
CONFIG_APP_COMPILE_TIME_DATE=y
|
||||
|
||||
|
||||
CONFIG_OTA_ALLOW_HTTP=y
|
||||
|
||||
CONFIG_OTA_ALLOW_HTTP=y
|
||||
|
||||
|
||||
CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y
|
||||
@@ -68,8 +68,8 @@ CONFIG_ESPTOOLPY_MONITOR_BAUD=115200
|
||||
|
||||
|
||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
||||
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="non-ota-partitions"
|
||||
CONFIG_PARTITION_TABLE_FILENAME="non-ota-partitions"
|
||||
CONFIG_PARTITION_TABLE_OFFSET=0x8000
|
||||
CONFIG_PARTITION_TABLE_MD5=y
|
||||
CONFIG_LOGGING_SLIMPROTO="info"
|
||||
@@ -103,6 +103,9 @@ CONFIG_A2DP_CONNECT_TIMEOUT_MS=1000
|
||||
CONFIG_BT_SINK=y
|
||||
CONFIG_BT_SINK_NAME="ESP32-BT"
|
||||
CONFIG_BT_SINK_PIN=1234
|
||||
CONFIG_AIRPLAY_SINK=y
|
||||
CONFIG_AIRPLAY_NAME="ESP32-AirPlay"
|
||||
CONFIG_AIRPLAY_PORT="5000"
|
||||
CONFIG_WIFI_MANAGER_TASK_PRIORITY=5
|
||||
CONFIG_WIFI_MANAGER_MAX_RETRY=2
|
||||
CONFIG_DEFAULT_AP_SSID="squeezelite"
|
||||
@@ -386,8 +389,9 @@ CONFIG_SPIRAM_MEMTEST=y
|
||||
CONFIG_SPIRAM_CACHE_WORKAROUND=y
|
||||
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=256
|
||||
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=65536
|
||||
CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y
|
||||
CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y
|
||||
CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y
|
||||
|
||||
|
||||
CONFIG_SPIRAM_OCCUPY_VSPI_HOST=y
|
||||
CONFIG_D0WD_PSRAM_CLK_IO=17
|
||||
1128
build-scripts/NonOTA-SqueezeAmp-sdkconfig.defaults
Normal file
1128
build-scripts/NonOTA-SqueezeAmp-sdkconfig.defaults
Normal file
File diff suppressed because it is too large
Load Diff
@@ -24,6 +24,8 @@
|
||||
#include "esp32/rom/uart.h"
|
||||
#include "cmd_system.h"
|
||||
#include "sdkconfig.h"
|
||||
#include "esp_partition.h"
|
||||
#include "esp_ota_ops.h"
|
||||
|
||||
#ifdef CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS
|
||||
#define WITH_TASKS_INFO 1
|
||||
@@ -102,9 +104,14 @@ static int restart(int argc, char **argv)
|
||||
void guided_factory()
|
||||
{
|
||||
ESP_LOGI(TAG, "Rebooting to factory.");
|
||||
uint32_t *p_force_factory_magic = (uint32_t *)LWS_MAGIC_REBOOT_TYPE_ADS;
|
||||
*p_force_factory_magic = LWS_MAGIC_REBOOT_TYPE_REQ_FACTORY;
|
||||
|
||||
const esp_partition_t *partition;
|
||||
esp_partition_iterator_t it = esp_partition_find(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_FACTORY, "factory");
|
||||
partition = (esp_partition_t *) esp_partition_get(it);
|
||||
if(partition != NULL){
|
||||
esp_ota_set_boot_partition(partition);
|
||||
}
|
||||
esp_partition_iterator_release(it);
|
||||
esp_restart();
|
||||
|
||||
}
|
||||
|
||||
@@ -6,5 +6,5 @@
|
||||
# todo: add support for https
|
||||
COMPONENT_ADD_INCLUDEDIRS := .
|
||||
COMPONENT_ADD_INCLUDEDIRS += include
|
||||
CFLAGS += -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG -DCONFIG_OTA_ALLOW_HTTP=1
|
||||
CFLAGS += -DLOG_LOCAL_LEVEL=ESP_LOG_INFO -DCONFIG_OTA_ALLOW_HTTP=1
|
||||
COMPONENT_EMBED_TXTFILES := ${PROJECT_PATH}/server_certs/github.pem
|
||||
@@ -98,12 +98,11 @@ esp_err_t _http_event_handler(esp_http_client_event_t *evt)
|
||||
ota_status.ota_actual_len=0;
|
||||
lastpct=0;
|
||||
newpct=0;
|
||||
wifi_manager_refresh_ota_json();
|
||||
ESP_LOGD(TAG,"Heap internal:%zu (min:%zu) external:%zu (min:%zu)\n",
|
||||
heap_caps_get_free_size(MALLOC_CAP_INTERNAL),
|
||||
heap_caps_get_minimum_free_size(MALLOC_CAP_INTERNAL),
|
||||
heap_caps_get_free_size(MALLOC_CAP_SPIRAM),
|
||||
heap_caps_get_minimum_free_size(MALLOC_CAP_SPIRAM));
|
||||
ESP_LOGD(TAG,"Heap internal:%zu (min:%zu) external:%zu (min:%zu)\n",
|
||||
heap_caps_get_free_size(MALLOC_CAP_INTERNAL),
|
||||
heap_caps_get_minimum_free_size(MALLOC_CAP_INTERNAL),
|
||||
heap_caps_get_free_size(MALLOC_CAP_SPIRAM),
|
||||
heap_caps_get_minimum_free_size(MALLOC_CAP_SPIRAM));
|
||||
break;
|
||||
case HTTP_EVENT_HEADER_SENT:
|
||||
ESP_LOGD(TAG, "HTTP_EVENT_HEADER_SENT");
|
||||
@@ -122,17 +121,18 @@ esp_err_t _http_event_handler(esp_http_client_event_t *evt)
|
||||
}
|
||||
break;
|
||||
case HTTP_EVENT_ON_DATA:
|
||||
vTaskDelay(5/ portTICK_RATE_MS);
|
||||
if(!ota_status.bOTAStarted) {
|
||||
ESP_LOGD(TAG, "HTTP_EVENT_ON_DATA, status_code=%d, len=%d",esp_http_client_get_status_code(evt->client), evt->data_len);
|
||||
}
|
||||
else if(ota_status.bOTAStarted && esp_http_client_get_status_code(evt->client) == 200 ){
|
||||
ota_status.ota_actual_len+=evt->data_len;
|
||||
if(ota_get_pct_complete()%5 == 0) newpct = ota_get_pct_complete();
|
||||
if(ota_get_pct_complete()%2 == 0) newpct = ota_get_pct_complete();
|
||||
if(lastpct!=newpct )
|
||||
{
|
||||
wifi_manager_refresh_ota_json();
|
||||
lastpct=newpct;
|
||||
ESP_LOGD(TAG,"Receiving OTA data chunk len: %d, %d of %d (%d pct)", evt->data_len, ota_status.ota_actual_len, ota_status.ota_total_len, newpct);
|
||||
ESP_LOGI(TAG,"Receiving OTA data chunk len: %d, %d of %d (%d pct)", evt->data_len, ota_status.ota_actual_len, ota_status.ota_total_len, newpct);
|
||||
ESP_LOGD(TAG,"Heap internal:%zu (min:%zu) external:%zu (min:%zu)\n",
|
||||
heap_caps_get_free_size(MALLOC_CAP_INTERNAL),
|
||||
heap_caps_get_minimum_free_size(MALLOC_CAP_INTERNAL),
|
||||
@@ -184,7 +184,7 @@ esp_err_t init_config(esp_http_client_config_t * conf, const char * url){
|
||||
memset(conf, 0x00, sizeof(esp_http_client_config_t));
|
||||
conf->cert_pem = (char *)server_cert_pem_start;
|
||||
conf->event_handler = _http_event_handler;
|
||||
conf->buffer_size = 1024*2;
|
||||
conf->buffer_size = 2048;
|
||||
conf->disable_auto_redirect=true;
|
||||
conf->skip_cert_common_name_check = false;
|
||||
conf->url = strdup(url);
|
||||
@@ -207,26 +207,26 @@ void ota_task(void *pvParameter)
|
||||
return ;
|
||||
}
|
||||
ota_status.current_url= strdup(passedURL);
|
||||
init_config(&config,ota_status.current_url);
|
||||
// init_config(&config,ota_status.current_url);
|
||||
|
||||
FREE_RESET(pvParameter);
|
||||
|
||||
snprintf(ota_status.status_text,sizeof(ota_status.status_text)-1,"Checking for redirect...");
|
||||
wifi_manager_refresh_ota_json();
|
||||
check_http_redirect();
|
||||
if(ota_status.bRedirectFound && ota_status.redirected_url== NULL){
|
||||
// OTA Failed miserably. Errors would have been logged somewhere
|
||||
ESP_LOGE(TAG,"Redirect check failed to identify target URL. Bailing out");
|
||||
vTaskDelete(NULL);
|
||||
}
|
||||
//
|
||||
// snprintf(ota_status.status_text,sizeof(ota_status.status_text)-1,"Checking for redirect...");
|
||||
// wifi_manager_refresh_ota_json();
|
||||
// check_http_redirect();
|
||||
// if(ota_status.bRedirectFound && ota_status.redirected_url== NULL){
|
||||
// // OTA Failed miserably. Errors would have been logged somewhere
|
||||
// ESP_LOGE(TAG,"Redirect check failed to identify target URL. Bailing out");
|
||||
// vTaskDelete(NULL);
|
||||
// }
|
||||
ESP_LOGD(TAG,"Calling esp_https_ota");
|
||||
init_config(&ota_config,ota_status.bRedirectFound?ota_status.redirected_url:ota_status.current_url);
|
||||
ota_status.bOTAStarted = true;
|
||||
snprintf(ota_status.status_text,sizeof(ota_status.status_text)-1,"Starting OTA...");
|
||||
wifi_manager_refresh_ota_json();
|
||||
// pause to let the system catch up
|
||||
vTaskDelay(1500/ portTICK_RATE_MS);
|
||||
esp_err_t err = esp_https_ota(&config);
|
||||
vTaskDelay(500/ portTICK_RATE_MS);
|
||||
esp_err_t err = esp_https_ota(&ota_config);
|
||||
if (err == ESP_OK) {
|
||||
snprintf(ota_status.status_text,sizeof(ota_status.status_text)-1,"Success!");
|
||||
wifi_manager_refresh_ota_json();
|
||||
@@ -277,9 +277,18 @@ void start_ota(const char * bin_url)
|
||||
nvs_close(nvs);
|
||||
}
|
||||
ESP_LOGI(TAG, "Waiting for other processes to start");
|
||||
vTaskDelay(2500/ portTICK_RATE_MS);
|
||||
for(int i=0;i<10;i++){
|
||||
vTaskDelay(1000/ portTICK_RATE_MS);
|
||||
}
|
||||
#ifdef CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1
|
||||
#define OTA_CORE 0
|
||||
#warning "Wifi running on core 1"
|
||||
#else
|
||||
#define OTA_CORE 1
|
||||
#endif
|
||||
ESP_LOGI(TAG, "Starting ota: %s", urlPtr);
|
||||
ret=xTaskCreate(&ota_task, "ota_task", 1024*10,(void *) urlPtr, 4, NULL);
|
||||
ret=xTaskCreatePinnedToCore(&ota_task, "ota_task", 1024*40, (void *)urlPtr, tskIDLE_PRIORITY+3, NULL, OTA_CORE);
|
||||
|
||||
if (ret != pdPASS) {
|
||||
ESP_LOGI(TAG, "create thread %s failed", "ota_task");
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ function to process requests, decode URLs, serve files, etc. etc.
|
||||
|
||||
/* @brief tag used for ESP serial console messages */
|
||||
static const char TAG[] = "http_server";
|
||||
static const char json_start[] = "{ \"recovery\": %u, \"autoexec\": %u, \"list\": [";
|
||||
static const char json_start[] = "{ \"autoexec\": %u, \"list\": [";
|
||||
static const char json_end[] = "]}";
|
||||
static const char template[] = "{ \"%s\": \"%s\" }";
|
||||
static const char array_separator[]=",";
|
||||
@@ -312,7 +312,7 @@ void http_server_netconn_serve(struct netconn *conn) {
|
||||
|
||||
netconn_write(conn, http_ok_json_no_cache_hdr, sizeof(http_ok_json_no_cache_hdr) - 1, NETCONN_NOCOPY);
|
||||
autoexec_flag = wifi_manager_get_flag();
|
||||
snprintf(config_buffer,locbuflen-1, json_start, RECOVERY_APPLICATION, autoexec_flag);
|
||||
snprintf(config_buffer,locbuflen-1, json_start, autoexec_flag);
|
||||
netconn_write(conn, config_buffer, strlen(config_buffer), NETCONN_NOCOPY);
|
||||
|
||||
ESP_LOGI(TAG, "About to get config from flash");
|
||||
|
||||
@@ -73,6 +73,8 @@ wifi_ap_record_t *accessp_records;
|
||||
char *accessp_json = NULL;
|
||||
char *ip_info_json = NULL;
|
||||
wifi_config_t* wifi_manager_config_sta = NULL;
|
||||
static update_reason_code_t last_update_reason_code=0;
|
||||
|
||||
|
||||
void (**cb_ptr_arr)(void*) = NULL;
|
||||
|
||||
@@ -414,11 +416,18 @@ void wifi_manager_clear_ip_info_json(){
|
||||
|
||||
void wifi_manager_generate_ip_info_json(update_reason_code_t update_reason_code){
|
||||
wifi_config_t *config = wifi_manager_get_wifi_sta_config();
|
||||
if(update_reason_code == UPDATE_OTA) {
|
||||
update_reason_code = last_update_reason_code;
|
||||
}
|
||||
else
|
||||
{
|
||||
last_update_reason_code = update_reason_code;
|
||||
}
|
||||
if(config){
|
||||
#if RECOVERY_APPLICATION
|
||||
const char ip_info_json_format[] = ",\"ip\":\"%s\",\"netmask\":\"%s\",\"gw\":\"%s\",\"urc\":%d,\"project_name\":\"%s\",\"version\":\"%s\", \"ota_dsc\":\"%s\", \"ota_pct\":%u}\n";
|
||||
const char ip_info_json_format[] = ",\"ip\":\"%s\",\"netmask\":\"%s\",\"gw\":\"%s\",\"urc\":%d,\"project_name\":\"%s\",\"version\":\"%s\", \"ota_dsc\":\"%s\", \"ota_pct\":%u,\"recovery\": 1}\n";
|
||||
#else
|
||||
const char ip_info_json_format[] = ",\"ip\":\"%s\",\"netmask\":\"%s\",\"gw\":\"%s\",\"urc\":%d,\"project_name\":\"%s\",\"version\":\"%s\"}\n";
|
||||
const char ip_info_json_format[] = ",\"ip\":\"%s\",\"netmask\":\"%s\",\"gw\":\"%s\",\"urc\":%d,\"project_name\":\"%s\",\"version\":\"%s\",\"recovery\": 0}\n";
|
||||
#endif
|
||||
memset(ip_info_json, 0x00, JSON_IP_INFO_SIZE);
|
||||
const esp_app_desc_t* desc = esp_ota_get_app_description();
|
||||
@@ -900,6 +909,12 @@ void wifi_manager( void * pvParameters ){
|
||||
if(cb_ptr_arr[msg.code]) (*cb_ptr_arr[msg.code])(NULL);
|
||||
|
||||
break;
|
||||
case EVENT_REFRESH_OTA:
|
||||
if(wifi_manager_lock_json_buffer( portMAX_DELAY )){
|
||||
wifi_manager_generate_ip_info_json( UPDATE_OTA );
|
||||
wifi_manager_unlock_json_buffer();
|
||||
}
|
||||
break;
|
||||
|
||||
case ORDER_START_WIFI_SCAN:
|
||||
ESP_LOGD(TAG, "MESSAGE: ORDER_START_WIFI_SCAN");
|
||||
@@ -1155,7 +1170,6 @@ void wifi_manager( void * pvParameters ){
|
||||
if(cb_ptr_arr[msg.code]) (*cb_ptr_arr[msg.code])(NULL);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
||||
|
||||
@@ -226,7 +226,8 @@ typedef enum update_reason_code_t {
|
||||
UPDATE_CONNECTION_OK = 0,
|
||||
UPDATE_FAILED_ATTEMPT = 1,
|
||||
UPDATE_USER_DISCONNECT = 2,
|
||||
UPDATE_LOST_CONNECTION = 3
|
||||
UPDATE_LOST_CONNECTION = 3,
|
||||
UPDATE_OTA=4
|
||||
}update_reason_code_t;
|
||||
|
||||
typedef enum connection_request_made_by_code_t{
|
||||
|
||||
@@ -102,13 +102,15 @@ void app_main()
|
||||
wifi_manager_set_callback(WIFI_EVENT_STA_DISCONNECTED, &cb_connection_sta_disconnected);
|
||||
|
||||
char * fwurl = get_nvs_value_alloc(NVS_TYPE_STR, "fwurl");
|
||||
if(fwurl){
|
||||
if(fwurl && strlen(fwurl)>0){
|
||||
while(!bWifiConnected){
|
||||
wait_for_wifi();
|
||||
}
|
||||
ESP_LOGI(TAG,"Updating firmware from link: %s",fwurl);
|
||||
start_ota(fwurl);
|
||||
}
|
||||
|
||||
console_start();
|
||||
else
|
||||
{
|
||||
console_start();
|
||||
}
|
||||
}
|
||||
|
||||
7
non-ota-partitions.csv
Normal file
7
non-ota-partitions.csv
Normal file
@@ -0,0 +1,7 @@
|
||||
# Name, Type, SubType, Offset, Size, Flags
|
||||
# Note: if you change the phy_init or app partition offset, make sure to change the offset in Kconfig.projbuild
|
||||
nvs, data, nvs, 0x9000, 0x6000,
|
||||
phy_init, data, phy, 0xf000, 0x1000,
|
||||
factory, app, factory, 0x10000, 3M,
|
||||
storage, data, fat, , 819200,
|
||||
coredump, data, coredump,, 64K
|
||||
|
Reference in New Issue
Block a user