Browse Source

Merge pull request #69 from Lawlieta/master

【修复】设备接收数据过短导致串口接收数据超时问题
朱天龙 (Armink) 6 năm trước cách đây
mục cha
commit
614881c818

+ 2 - 2
class/ec20/at_socket_ec20.c

@@ -836,8 +836,8 @@ static void urc_recv_func(struct at_client *client, const char *data, rt_size_t
 
     /* get the current socket and receive buffer size by receive data */
     sscanf(data, "+QIURC: \"recv\",%d,%d", &device_socket, (int *) &bfsz);
-    /* get receive timeout by receive buffer length */
-    timeout = bfsz;
+    /* set receive timeout by receive buffer length, not less than 10 ms */
+    timeout = bfsz > 10 ? bfsz : 10;
 
     if (device_socket < 0 || bfsz == 0)
     {

+ 2 - 2
class/esp8266/at_socket_esp8266.c

@@ -480,8 +480,8 @@ static void urc_recv_func(struct at_client *client, const char *data, rt_size_t
     /* get the at deveice socket and receive buffer size by receive data */
     sscanf(data, "+IPD,%d,%d:", &device_socket, (int *) &bfsz);
 
-    /* get receive timeout by receive buffer length */
-    timeout = bfsz;
+    /* set receive timeout by receive buffer length, not less than 10ms */
+    timeout = bfsz > 10 ? bfsz : 10;
 
     if (device_socket < 0 || bfsz == 0)
         return;

+ 2 - 2
class/m26/at_socket_m26.c

@@ -608,8 +608,8 @@ static void urc_recv_func(struct at_client *client, const char *data, rt_size_t
     /* get the current socket and receive buffer size by receive data */
     sscanf(data, "+RECEIVE: %d, %d", &device_socket, (int *) &bfsz);
 
-    /* get receive timeout by receive buffer length */
-    timeout = bfsz;
+    /* set receive timeout by receive buffer length, not less than 10 ms */
+    timeout = bfsz > 10 ? bfsz : 10;
 
     if (device_socket < 0 || bfsz == 0)
     {

+ 2 - 2
class/mw31/at_socket_mw31.c

@@ -400,8 +400,8 @@ static void urc_recv_func(struct at_client *client, const char *data, rt_size_t
     sscanf(temp, "%ld,", &bfsz);
 
     LOG_D("socket:%d, size:%ld\n", device_socket, bfsz);
-    /* get receive timeout by receive buffer length */
-    timeout = bfsz;
+    /* set receive timeout by receive buffer length, not less than 10 ms */
+    timeout = bfsz > 10 ? bfsz : 10;
 
     if (device_socket < 0 || bfsz == 0)
         return;

+ 2 - 2
class/rw007/at_socket_rw007.c

@@ -479,8 +479,8 @@ static void urc_recv_func(struct at_client *client, const char *data, rt_size_t
 
     /* get the current socket and receive buffer size by receive data */
     sscanf(data, "+IPD,%d,%d:", &device_socket, (int *) &bfsz);
-    /* get receive timeout by receive buffer length */
-    timeout = bfsz;
+    /* set receive timeout by receive buffer length, not less than 10 ms */
+    timeout = bfsz > 10 ? bfsz : 10;
 
     if (device_socket < 0 || bfsz == 0)
     {

+ 2 - 2
class/sim800c/at_socket_sim800c.c

@@ -557,8 +557,8 @@ static void urc_recv_func(struct at_client *client, const char *data, rt_size_t
 
     /* get the current socket and receive buffer size by receive data */
     sscanf(data, "+RECEIVE,%d,%d:", &device_socket, (int *) &bfsz);
-    /* get receive timeout by receive buffer length */
-    timeout = bfsz;
+    /* set receive timeout by receive buffer length, not less than 10 ms */
+    timeout = bfsz > 10 ? bfsz : 10;
 
     if (device_socket < 0 || bfsz == 0)
     {