feat: 实现时间同步、NVS稳定性修复和ESP-IDF v6.0兼容性改进

This commit is contained in:
2026-04-01 18:58:20 +08:00
parent 540bfe825f
commit 9815ab8df0
17 changed files with 942 additions and 31 deletions

View File

@@ -259,20 +259,35 @@ const char *llm_provider_get_base_url(const char *provider_name) {
/* Initialize provider system (load from NVS) */
void llm_provider_init(void) {
/* Load API key for current provider */
const char *api_key = llm_provider_get_api_key(s_current_provider->name);
if (api_key) {
strncpy(s_api_key, api_key, sizeof(s_api_key) - 1);
s_api_key[sizeof(s_api_key) - 1] = '\0';
const char *nvs_key = get_provider_api_key_nvs_key(s_current_provider->name);
if (nvs_key) {
nvs_handle_t nvs;
if (nvs_open(MIMI_NVS_LLM, NVS_READONLY, &nvs) == ESP_OK) {
size_t len = sizeof(s_api_key);
if (nvs_get_str(nvs, nvs_key, s_api_key, &len) != ESP_OK || !s_api_key[0]) {
s_api_key[0] = '\0';
}
nvs_close(nvs);
} else {
s_api_key[0] = '\0';
}
} else {
s_api_key[0] = '\0';
}
/* Load Base URL for current provider */
const char *base_url = llm_provider_get_base_url(s_current_provider->name);
if (base_url) {
strncpy(s_base_url, base_url, sizeof(s_base_url) - 1);
s_base_url[sizeof(s_base_url) - 1] = '\0';
/* Load Base URL for current provider directly from NVS */
const char *url_nvs_key = get_provider_base_url_nvs_key(s_current_provider->name);
if (url_nvs_key) {
nvs_handle_t nvs;
if (nvs_open(MIMI_NVS_LLM, NVS_READONLY, &nvs) == ESP_OK) {
size_t len = sizeof(s_base_url);
if (nvs_get_str(nvs, url_nvs_key, s_base_url, &len) != ESP_OK || !s_base_url[0]) {
s_base_url[0] = '\0';
}
nvs_close(nvs);
} else {
s_base_url[0] = '\0';
}
} else {
s_base_url[0] = '\0';
}

View File

@@ -184,11 +184,6 @@ static esp_err_t http_event_handler(esp_http_client_event_t *evt)
/* ── Provider helpers ──────────────────────────────────────────── */
static bool provider_is_openai(void)
{
return llm_provider_is_openai_compatible();
}
static const char *llm_api_url(void)
{
return llm_provider_api_url();