diff --git a/code/application/source/sf_app/code/source/ttyusb/sf_hal_ttyusb.c b/code/application/source/sf_app/code/source/ttyusb/sf_hal_ttyusb.c index 68274422b..d1626dcb0 100755 --- a/code/application/source/sf_app/code/source/ttyusb/sf_hal_ttyusb.c +++ b/code/application/source/sf_app/code/source/ttyusb/sf_hal_ttyusb.c @@ -430,23 +430,25 @@ SINT32 sf_hal_ttyusb2_read_buf(SF_TTY_DATA_TYPE_S *recv) TimeoutVal.tv_sec = 0; TimeoutVal.tv_usec = (recv->waitMs)*1000; - while(waitTime--) + while(waitTime) { s32ret = select(TtyUSB2Fd + 1, &read_fds, NULL, NULL, &TimeoutVal); if (s32ret > 0) { if (FD_ISSET(TtyUSB2Fd, &read_fds)) { s32ret = read(TtyUSB2Fd, recv->data+dataL, recv->lenMax); dataL += strlen(recv->data); - if ((((dataL) >= (recv->len)) && (strstr(recv->data, recv->cmp))) || (strstr(recv->data, recv->cmperr))) { + if (((dataL) >= (recv->len)) || (strstr(recv->data, recv->cmp)) || (strstr(recv->data, recv->cmperr))) { break; } } } else if (s32ret < 0) { + waitTime--; MLOGE(" select failed\n"); continue; } else if (0 == s32ret) { + waitTime--; MLOGW("FIFO select timeout [%d]\n",waitTime); continue; }