diff --git a/components/net/at/include/at.h b/components/net/at/include/at.h index 76e952944f078b4097be9d68265825c1eeb9adc6..782cb0c40030caf1eda9c701b2b246685771cdac 100644 --- a/components/net/at/include/at.h +++ b/components/net/at/include/at.h @@ -27,7 +27,7 @@ #include -#define AT_SW_VERSION "0.2.2" +#define AT_SW_VERSION "0.2.3" #define DBG_ENABLE #define DBG_SECTION_NAME "AT" diff --git a/components/net/at/src/at_client.c b/components/net/at/src/at_client.c index c2002d8094a528851acd1093724fa483a2ea8646..90fd3291c3a01cc8b8d16acd8e7dd8adce8f0327 100644 --- a/components/net/at/src/at_client.c +++ b/components/net/at/src/at_client.c @@ -547,7 +547,7 @@ static void client_parser(at_client_t client) /* get the end data by response result, return response state END_OK. */ client->resp_status = AT_RESP_OK; } - else if ((memcmp(client->recv_buffer, AT_RESP_END_ERROR, strlen(AT_RESP_END_ERROR)) == 0) + else if (strstr(client->recv_buffer, AT_RESP_END_ERROR) || (memcmp(client->recv_buffer, AT_RESP_END_FAIL, strlen(AT_RESP_END_FAIL)) == 0)) { client->resp_status = AT_RESP_ERROR; @@ -577,7 +577,11 @@ static void client_parser(at_client_t client) static rt_err_t at_client_rx_ind(rt_device_t dev, rt_size_t size) { - rt_sem_release(at_client_local->rx_notice); + if (size > 0) + { + rt_sem_release(at_client_local->rx_notice); + } + return RT_EOK; } diff --git a/components/net/at/src/at_server.c b/components/net/at/src/at_server.c index 639739d9c2ec3cfcf6ff3643d852baf6dc093bde..a148a20ab05d204a40f49ace3ea6467b06879513 100644 --- a/components/net/at/src/at_server.c +++ b/components/net/at/src/at_server.c @@ -433,7 +433,10 @@ __retry: static rt_err_t at_rx_ind(rt_device_t dev, rt_size_t size) { - rt_sem_release(at_server_local->rx_notice); + if (size > 0) + { + rt_sem_release(at_server_local->rx_notice); + } return RT_EOK; }