From 8c56e93d2b32f869ebf50c40f84928febe6870c8 Mon Sep 17 00:00:00 2001 From: zhangsheng Date: Tue, 31 Dec 2024 17:45:27 +0800 Subject: [PATCH] fix wave bugs,version 5.2 --- common/global.hpp | 2 +- uart/uart.cpp | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/common/global.hpp b/common/global.hpp index 2ff7763..ac03d9a 100644 --- a/common/global.hpp +++ b/common/global.hpp @@ -18,7 +18,7 @@ enum enumZigBeeTransmitStatus { //#define NR5G_MODULE -#define Q4G_MODULE +//#define Q4G_MODULE //#define WIFI_MODULE //#define NR5G_MEIGE diff --git a/uart/uart.cpp b/uart/uart.cpp index 17fee4d..c984ae1 100644 --- a/uart/uart.cpp +++ b/uart/uart.cpp @@ -48,6 +48,12 @@ int Uart::UartRecv(int fd, char srcshow, char *buffer) { DealReviveDuration(wave_shortAddr); zlog_warn(zct, "===============0x9999 timeout= %d offSize = %d===============shortAddr = %02x%02x", timeoutflag, offSize,UINT16_HIGH(wave_shortAddr),UINT16_LOW(wave_shortAddr)); zlog_warn(zct, "0x9999 timeout %d===============Size = %d", timeoutflag, offSize); + // printf("=============offSize = %d\n",offSize); + // for (size_t i = 0; i < offSize; i++) + // { + // printf("%02x ",mUartRecvTmpBuf[i]); + // } + // printf("=============\n"); FindRecvPackage(offSize, mUartRecvTmpBuf, head); now_task = -1; timeoutflag = 0; @@ -1052,18 +1058,17 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) { sprintf(buf, "%02d", UartRecvBuf[i + 5]); int command = atoi(buf); //zlog_info(zct, "command = %d ShortAddr :%s", command, strShortAddr.c_str()); - if ((mPackgeIndex == -1 || (unsigned int)UartRecvBuf[i + 6] == 0) ) { + if ((mPackgeIndex == -1 || (unsigned int)UartRecvBuf[i + 6] == 0) && (command == WAVE_X || command == WAVE_Y || command == WAVE_Z) ) { mPackgeIndex = UartRecvBuf[i + 6] & 0xFF; - } else if ((unsigned int)mPackgeIndex == (unsigned int)UartRecvBuf[i + 6] && mPackgeIndex != -1 && command != 2) { + } else if ((unsigned int)mPackgeIndex == (unsigned int)UartRecvBuf[i + 6] && mPackgeIndex != -1 && (command == WAVE_X || command == WAVE_Y || command == WAVE_Z)) { zlog_warn(zct, "mPackgeIndex same index1:%d,index2:%02d ShortAddr :%s ", mPackgeIndex, UartRecvBuf[i + 6] & 0xff, strShortAddr.c_str()); continue; - } else if ((unsigned int)mPackgeIndex + 1 != (unsigned int)UartRecvBuf[i + 6] && mPackgeIndex != -1 && command != 2) { + } else if ((unsigned int)mPackgeIndex + 1 != (unsigned int)UartRecvBuf[i + 6] && mPackgeIndex != -1 && (command == WAVE_X || command == WAVE_Y || command == WAVE_Z)) { m_TimeStamp = 0; - - zlog_warn(zct, "mPackgeIndex error index1:%d,index2:%02d ShortAddr :%s ", mPackgeIndex, UartRecvBuf[i + 6] & 0xff, strShortAddr.c_str()); + printf("mPackgeIndex error =============command = %d\n",command); + zlog_warn(zct, "mPackgeIndex error index1:%d,index2:%02d , ShortAddr :%s ,command : %d", mPackgeIndex, UartRecvBuf[i + 6] & 0xff, strShortAddr.c_str(),command); mPackgeIndex = -1; - zlog_warn(zct, "mPackgeIndex error ShortAddr :%s", strShortAddr.c_str()); char tmp[10] = {0x00}; char tmp2[10] = {0x00}; @@ -1147,6 +1152,7 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) { } memcpy(RecvBuf, (char *)&UartRecvBuf[i], 100); DealDataNodeWave(RecvBuf, command); + mPackgeIndex = (unsigned int)UartRecvBuf[i + 6]; } else if (now_task != WAVE_CMD && (command == ASK_TASK || command == DEVICE_INF || command == MEAS_EVAL || command == CONFIG || command == UPGRADE || command == DEVICE_INF2 || command == SIGNAL_STRENGTH || command == DEVICE_EXCEPTION || command == WAVE_COMPRESS)) { char RecvBuf[100] = {0x00}; if (command == ASK_TASK ) @@ -1217,7 +1223,7 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) { } } } - mPackgeIndex = (unsigned int)UartRecvBuf[i + 6]; + } else { continue;