From c64d81e2bf2c86dd5d8d9103dbc472e578f897a4 Mon Sep 17 00:00:00 2001 From: IhorNehrutsa Date: Tue, 28 Jun 2022 13:42:40 +0300 Subject: [PATCH] esp32: Use esp_err_to_name() to get error message. --- ports/esp32/mphalport.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/ports/esp32/mphalport.c b/ports/esp32/mphalport.c index 63a674c24b620..0f6007fa3fe2d 100644 --- a/ports/esp32/mphalport.c +++ b/ports/esp32/mphalport.c @@ -33,6 +33,7 @@ #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_timer.h" +#include "esp_wifi.h" #include "py/obj.h" #include "py/objstr.h" @@ -58,9 +59,11 @@ void check_esp_err(esp_err_t code) { // map esp-idf error code to posix error code uint32_t pcode = -code; switch (code) { + case ESP_ERR_TCPIP_ADAPTER_NO_MEM: case ESP_ERR_NO_MEM: pcode = MP_ENOMEM; break; + case ESP_ERR_WIFI_TIMEOUT: case ESP_ERR_TIMEOUT: pcode = MP_ETIMEDOUT; break; @@ -68,19 +71,7 @@ void check_esp_err(esp_err_t code) { pcode = MP_EOPNOTSUPP; break; } - // construct string object - mp_obj_str_t *o_str = m_new_obj_maybe(mp_obj_str_t); - if (o_str == NULL) { - mp_raise_OSError(pcode); - return; - } - o_str->base.type = &mp_type_str; - o_str->data = (const byte *)esp_err_to_name(code); // esp_err_to_name ret's ptr to const str - o_str->len = strlen((char *)o_str->data); - o_str->hash = qstr_compute_hash(o_str->data, o_str->len); - // raise - mp_obj_t args[2] = { MP_OBJ_NEW_SMALL_INT(pcode), MP_OBJ_FROM_PTR(o_str)}; - nlr_raise(mp_obj_exception_make_new(&mp_type_OSError, 2, 0, args)); + mp_raise_msg_varg(&mp_type_OSError, "(%d, 0x%04X, '%s')", pcode, code, (const char *)esp_err_to_name(code)); } }