fix send bug in air724 driver

This commit is contained in:
mculover666
2020-07-03 16:48:32 +08:00
parent 8cc9912db1
commit dfaff23f21

View File

@@ -336,6 +336,7 @@ static int air724_recv(int id, void *buf, size_t len)
int air724_send(int id, const void *buf, size_t len) int air724_send(int id, const void *buf, size_t len)
{ {
at_echo_t echo; at_echo_t echo;
char expect[10] = "";
if (tos_at_global_lock_pend() != 0) if (tos_at_global_lock_pend() != 0)
{ {
@@ -349,9 +350,9 @@ int air724_send(int id, const void *buf, size_t len)
"AT+CIPSEND=%d\r\n", "AT+CIPSEND=%d\r\n",
len); len);
#else #else
tos_at_cmd_exec(&echo, 1000, tos_at_cmd_exec(&echo, 1000,
"AT+CIPSEND=%d,%d\r\n", "AT+CIPSEND=%d,%d\r\n",
id, len); id, len);
#endif #endif
if (echo.status != AT_ECHO_STATUS_OK && echo.status != AT_ECHO_STATUS_EXPECT) if (echo.status != AT_ECHO_STATUS_OK && echo.status != AT_ECHO_STATUS_EXPECT)
@@ -360,8 +361,9 @@ int air724_send(int id, const void *buf, size_t len)
return -1; return -1;
} }
tos_at_echo_create(&echo, NULL, 0, "SEND OK"); sprintf(expect, "%d, SEND OK", id);
tos_at_raw_data_send(&echo, 1000, (uint8_t *)buf, len); tos_at_echo_create(&echo, NULL, 0, expect);
tos_at_raw_data_send_until(&echo, 10000, (uint8_t *)buf, len);
if (echo.status != AT_ECHO_STATUS_OK && echo.status != AT_ECHO_STATUS_EXPECT) if (echo.status != AT_ECHO_STATUS_OK && echo.status != AT_ECHO_STATUS_EXPECT)
{ {
tos_at_global_lock_post(); tos_at_global_lock_post();
@@ -399,9 +401,9 @@ int air724_sendto(int id, char *ip, char *port, const void *buf, size_t len)
"AT+CIPSEND=%d\r\n", "AT+CIPSEND=%d\r\n",
len); len);
#else #else
tos_at_cmd_exec(&echo, 1000, tos_at_cmd_exec(&echo, 1000,
"AT+CIPSEND=%d,%d\r\n", "AT+CIPSEND=%d,%d\r\n",
id, len); id, len);
#endif #endif
if (echo.status != AT_ECHO_STATUS_OK && echo.status != AT_ECHO_STATUS_EXPECT) if (echo.status != AT_ECHO_STATUS_OK && echo.status != AT_ECHO_STATUS_EXPECT)
@@ -496,7 +498,7 @@ __STATIC__ void air724_incoming_data_process(void)
*/ */
if (tos_at_uart_read(&data, 1) != 1) if (tos_at_uart_read(&data, 1) != 1)
{ {
return; return;
} }
while (1) while (1)
@@ -538,7 +540,7 @@ __STATIC__ void air724_incoming_data_process(void)
{ {
break; break;
} }
} }
do { do {
#define MIN(a, b) ((a) < (b) ? (a) : (b)) #define MIN(a, b) ((a) < (b) ? (a) : (b))
@@ -590,5 +592,4 @@ int air724_sal_init(hal_uart_port_t uart_port)
} }
return 0; return 0;
} }