From 1fe9648704e53f0da7f07b0c83e4c34c5a5e2575 Mon Sep 17 00:00:00 2001 From: jxjajs Date: Fri, 6 Dec 2024 21:30:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=B2=E5=8F=A3=E6=8C=81?= =?UTF-8?q?=E7=BB=AD=E6=8E=A5=E6=94=B6=E6=95=B0=E6=8D=AE=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/SensorsProtocol.cpp | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/app/src/main/cpp/SensorsProtocol.cpp b/app/src/main/cpp/SensorsProtocol.cpp index 51c6f05e..2531f7fa 100644 --- a/app/src/main/cpp/SensorsProtocol.cpp +++ b/app/src/main/cpp/SensorsProtocol.cpp @@ -642,7 +642,7 @@ char Gm_GetSensorsPowerState(int port) void BytestreamLOG(int commid, char* describe, u_char* buf, int len, char flag) { int i; - char szbuf[4096]; + char szbuf[8192]; memset(szbuf, 0, sizeof(szbuf)); if (NULL != describe) @@ -1893,11 +1893,11 @@ void CameraPhotoPortDataProcess(SIO_PARAM_SERIAL_DEF *curserial) } else { + memset(&serialport[0].image, 0, sizeof(PHOTO_DEF)); + memmove((void *)&serialport[0].image, (void*)&curserial->image, sizeof(PHOTO_DEF)); if ((1 == SaveImageDataTofile(curserial)) && (SER_SAMPLE == curserial->image.state)) { curserial->image.state = PHOTO_SAVE_SUCC; - memset(&serialport[0].image, 0, sizeof(PHOTO_DEF)); - memmove((void *)&serialport[0].image, (void*)&curserial->image, sizeof(PHOTO_DEF)); } recvend = 1; } @@ -3570,16 +3570,27 @@ int GM_IsCloseCamera(SIO_PARAM_SERIAL_DEF *pPortParam) void GM_CameraSerialComRecv(SIO_PARAM_SERIAL_DEF *pPortParam) { - int recvlen; + int i, recvlen; u_char recvbuf[RECVDATA_MAXLENTH]; char buf[256]; + int64_t t0, t1; + t0 = get_msec(); memset(recvbuf, 0, sizeof(recvbuf)); if (pPortParam->fd <= 0) return; - //for(;;) - recvlen = read(pPortParam->fd, recvbuf, sizeof(recvbuf));/* 在串口读取字符串 */ - + i=0; + recvlen = 0; + for(;;) + { + i += recvlen; + recvlen = read(pPortParam->fd, &recvbuf[i], sizeof(recvbuf)-i);/* 在串口读取字符串 */ + t1 = get_msec(); + if(t1-t0 >= 500) + break; + } + + recvlen = i; if (recvlen < 1) return; #if 1 @@ -3596,7 +3607,7 @@ int GM_CameraSerialTimer(SIO_PARAM_SERIAL_DEF *pPortParam) GM_CameraSerialComRecv(pPortParam); Gm_FindCameraCommand(pPortParam); - GM_CameraSerialComRecv(pPortParam); + //GM_CameraSerialComRecv(pPortParam); flag = GM_IsCloseCamera(pPortParam); return flag; }