@@ -274,9 +274,9 @@ STATIC mp_obj_t mod_pycom_nvs_set (mp_obj_t _key, mp_obj_t _value) {
274
274
}
275
275
STATIC MP_DEFINE_CONST_FUN_OBJ_2 (mod_pycom_nvs_set_obj , mod_pycom_nvs_set );
276
276
277
- STATIC mp_obj_t mod_pycom_nvs_get (mp_obj_t _key ) {
277
+ STATIC mp_obj_t mod_pycom_nvs_get (mp_uint_t n_args , const mp_obj_t * args ) {
278
278
279
- const char * key = mp_obj_str_get_str (_key );
279
+ const char * key = mp_obj_str_get_str (args [ 0 ] );
280
280
esp_err_t esp_err = ESP_OK ;
281
281
mp_obj_t ret = mp_const_none ;
282
282
uint32_t value ;
@@ -302,14 +302,21 @@ STATIC mp_obj_t mod_pycom_nvs_get (mp_obj_t _key) {
302
302
}
303
303
304
304
if (esp_err == ESP_ERR_NVS_NOT_FOUND ) {
305
- nlr_raise (mp_obj_new_exception_msg (& mp_type_ValueError , "No matching object for the provided key" ));
305
+ if (n_args > 1 ) {
306
+ // return user defined NoExistValue
307
+ return args [1 ];
308
+ }
309
+ else
310
+ {
311
+ nlr_raise (mp_obj_new_exception_msg (& mp_type_ValueError , "No matching object for the provided key" ));
312
+ }
306
313
} else if (esp_err != ESP_OK ) {
307
314
nlr_raise (mp_obj_new_exception_msg_varg (& mp_type_Exception , "Error occurred while fetching value, code: %d" , esp_err ));
308
315
}
309
316
310
317
return ret ;
311
318
}
312
- STATIC MP_DEFINE_CONST_FUN_OBJ_1 (mod_pycom_nvs_get_obj , mod_pycom_nvs_get );
319
+ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (mod_pycom_nvs_get_obj , 1 , 2 , mod_pycom_nvs_get );
313
320
314
321
STATIC mp_obj_t mod_pycom_nvs_erase (mp_obj_t _key ) {
315
322
const char * key = mp_obj_str_get_str (_key );
0 commit comments