Můžete najít velikost hodnoty uložené v ESP32 NVS spuštěním nvs_get_blob() s length nastaveným na ukazatel na proměnnou s obsahem 0, a out_value nastaveným na nullptr. nvs_get_str() funguje také, jediný rozdíl je typ argumentu out_value, na kterém vůbec nezáleží.
Je snazší pochopit, když se podíváte na tuto ukázkovou funkci:
nvs_get_size.cpp
size_t NVSGetSize(nvs_handle_t nvs, const char* key) {
esp_err_t err;
size_t valueSize = 0;
if((err = nvs_get_str(nvs, key, nullptr, &valueSize)) != ESP_OK) {
if(err == ESP_ERR_NVS_NOT_FOUND) {
// Nenalezeno, žádná chyba
return 0;
} else {
// Skutečná chyba, zalogovat a vrátit 0
printf("Nepodařilo se získat velikost klíče NVS %s: %s\r\n", key, esp_err_to_name(err));
return 0;
}
}
return valueSize;
}Příklad použití
To předpokládá, že jste nastavili myNvs jak jsme ukázali v našem předchozím příspěvku Jak inicializovat NVS na ESP32
nvs_usage_example.cpp
size_t myKeySize = NVSGetSize(myNvs, "MyKey");
Podívejte se na podobné články podle kategorie:
ESP8266/ESP32
Pokud vám tento článek pomohl, zvažte, zda mi nekoupíte kávu nebo nepřispějete přes PayPal na podporu výzkumu a publikování nových článků na TechOverflow