Jak získat délku / velikost hodnoty NVS na ESP32

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