|
15 | 15 |
|
16 | 16 | #include "nvs.h"
|
17 | 17 |
|
18 |
| -const char * nvs_errors[] = { "OTHER", "NOT_INITIALIZED", "NOT_FOUND", "TYPE_MISMATCH", "READ_ONLY", "NOT_ENOUGH_SPACE", "INVALID_NAME", "INVALID_HANDLE", "REMOVE_FAILED", "KEY_TOO_LONG", "PAGE_FULL", "INVALID_STATE", "INVALID_LENGHT"}; |
| 18 | +const char * nvs_errors[] = { "OTHER", "NOT_INITIALIZED", "NOT_FOUND", "TYPE_MISMATCH", "READ_ONLY", "NOT_ENOUGH_SPACE", "INVALID_NAME", "INVALID_HANDLE", "REMOVE_FAILED", "KEY_TOO_LONG", "PAGE_FULL", "INVALID_STATE", "INVALID_LENGTH"}; |
19 | 19 | #define nvs_error(e) (((e)>ESP_ERR_NVS_BASE)?nvs_errors[(e)&~(ESP_ERR_NVS_BASE)]:nvs_errors[0])
|
20 | 20 |
|
21 | 21 | Preferences::Preferences()
|
@@ -280,6 +280,30 @@ size_t Preferences::putBytes(const char* key, const void* value, size_t len){
|
280 | 280 | return len;
|
281 | 281 | }
|
282 | 282 |
|
| 283 | +PreferenceType Preferences::getType(const char* key) { |
| 284 | + if(!_started || !key || strlen(key)>15){ |
| 285 | + return PT_INVALID; |
| 286 | + } |
| 287 | + int8_t mt1; uint8_t mt2; int16_t mt3; uint16_t mt4; |
| 288 | + int32_t mt5; uint32_t mt6; int64_t mt7; uint64_t mt8; |
| 289 | + size_t len = 0; |
| 290 | + if(nvs_get_i8(_handle, key, &mt1) == ESP_OK) return PT_I8; |
| 291 | + if(nvs_get_u8(_handle, key, &mt2) == ESP_OK) return PT_U8; |
| 292 | + if(nvs_get_i16(_handle, key, &mt3) == ESP_OK) return PT_I16; |
| 293 | + if(nvs_get_u16(_handle, key, &mt4) == ESP_OK) return PT_U16; |
| 294 | + if(nvs_get_i32(_handle, key, &mt5) == ESP_OK) return PT_I32; |
| 295 | + if(nvs_get_u32(_handle, key, &mt6) == ESP_OK) return PT_U32; |
| 296 | + if(nvs_get_i64(_handle, key, &mt7) == ESP_OK) return PT_I64; |
| 297 | + if(nvs_get_u64(_handle, key, &mt8) == ESP_OK) return PT_U64; |
| 298 | + if(nvs_get_str(_handle, key, NULL, &len) == ESP_OK) return PT_STR; |
| 299 | + if(nvs_get_blob(_handle, key, NULL, &len) == ESP_OK) return PT_BLOB; |
| 300 | + return PT_INVALID; |
| 301 | +} |
| 302 | + |
| 303 | +bool Preferences::isKey(const char* key) { |
| 304 | + return getType(key) != PT_INVALID; |
| 305 | +} |
| 306 | + |
283 | 307 | /*
|
284 | 308 | * Get a key value
|
285 | 309 | * */
|
|
0 commit comments