Puedes encontrar el tamaño de un valor almacenado en ESP32 NVS ejecutando nvs_get_blob() con length establecido a un puntero a una variable con contenido 0, y out_value establecido a nullptr. nvs_get_str() también funciona, la única diferencia es el tipo del argumento out_value, lo cual no importa en absoluto.
Es más fácil de entender si miras esta función de ejemplo:
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) {
// No encontrado, sin error
return 0;
} else {
// Error real, registra y devuelve 0
printf("No se pudo obtener el tamaño de la clave NVS %s: %s\r\n", key, esp_err_to_name(err));
return 0;
}
}
return valueSize;
}Ejemplo de uso
Esto asume que has configurado myNvs como hemos mostrado en nuestra publicación anterior Cómo inicializar NVS en ESP32
nvs_usage_example.cpp
size_t myKeySize = NVSGetSize(myNvs, "MyKey");
Echa un vistazo a artículos similares por categoría:
ESP8266/ESP32
Si este artículo te ha ayudado, considera invitarme a un café o hacer una donación vía PayPal para apoyar la investigación y publicación de nuevos artículos en TechOverflow