diff --git a/threadfunc/check_thread.cpp b/threadfunc/check_thread.cpp index 9f50f50..6a70899 100644 --- a/threadfunc/check_thread.cpp +++ b/threadfunc/check_thread.cpp @@ -80,24 +80,15 @@ void CheckThread() { GlobalConfig::IpAddr_G = ipTemp; heart_count = 0; } -#ifdef G2UL_GATEWAY - if (checkNet0 == 5) { - checkNet0 = 0; - int iStatus = get_netlink_status("eth0"); - if (iStatus == 1 && GlobalConfig::net0Status == 0) { - system("ifconfig eth0:1 192.168.188.188 netmask 255.255.255.0"); - } - GlobalConfig::net0Status = iStatus; - } -#endif -// if (7200 == time_check) { // 2h //校时暂时不测 + if (7200 == time_check) { // 2h //校时暂时不测 + time_check = 0; // char buf[256] = {0}; // char buf2[256] = {0}; // sprintf(buf, "{\"dataNodeGatewayNo\":\"%s\",\"cmd\":\"12\",\"status\":\"REQ\"}", GlobalConfig::MacAddr_G.c_str()); // sprintf(buf2, "{\"dataWatchNo\":\"%s\",\"cmd\":\"12\",\"status\":\"REQ\"}", GlobalConfig::MacAddr_G.c_str()); // std::string str = std::string(buf); // std::string str2 = std::string(buf2); -// time_check = 0; +// // int iRet = data_publish(str.c_str(), GlobalConfig::Topic_G.mPubTiming.c_str()); // iRet = data_publish(str.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str()); // iRet = data_publish(str2.c_str(), GlobalConfig::Topic_G.mPubTiming.c_str()); @@ -180,7 +171,7 @@ void CheckThread() { // #endif // #endif // } -// } + } if (HardStatus == 3600) { // one hour 3600 JsonData jd; std::string data = jd.JsonCmd_07(); @@ -378,9 +369,6 @@ void CheckThread() { loose_check++; ModifyAddr++; mqttresend++; -#ifdef G2UL_GATEWAY - checkNet0++; -#endif #ifdef WIFI_MODULE wifi_reconnect_count++; #endif diff --git a/uart/uart.cpp b/uart/uart.cpp index 1f3f07f..f4663fa 100644 --- a/uart/uart.cpp +++ b/uart/uart.cpp @@ -941,11 +941,9 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) { bytesRead = bytesRead + mlastSize; for (int i = 0; i < bytesRead; i++) { if (UartRecvBuf[i] == head[0]) { - char buf[6] = {0x00}; + char buf[12] = {0x00}; char ShortAddr[8] = {0x00}; - sprintf(&buf[0], "%02X", UartRecvBuf[i] & 0xFF); - sprintf(&buf[2], "%02X", UartRecvBuf[i + 1] & 0xFF); - sprintf(&buf[4], "%02X", UartRecvBuf[i + 2] & 0xFF); + sprintf(buf, "%02X%02X%02X", UartRecvBuf[i] & 0xFF,UartRecvBuf[i + 1] & 0xFF,UartRecvBuf[i + 2] & 0xFF); sprintf(ShortAddr, "%02x%02x", UartRecvBuf[i + 3] & 0xFF, UartRecvBuf[i + 4] & 0xFF); std::string strShortAddr(ShortAddr); std::string strHeadFlag(buf); @@ -1071,10 +1069,8 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) { continue; } } else if (UartRecvBuf[i] == head1[0]) { - char buf[6] = {0x00}; - sprintf(&buf[0], "%02X", UartRecvBuf[i] & 0xFF); - sprintf(&buf[2], "%02X", UartRecvBuf[i + 1] & 0xFF); - sprintf(&buf[4], "%02X", UartRecvBuf[i + 2] & 0xFF); + char buf[12] = {0x00}; + sprintf(buf, "%02X%02X%02X", UartRecvBuf[i] & 0xFF,UartRecvBuf[i + 1] & 0xFF,UartRecvBuf[i + 2] & 0xFF); std::string strHeadFlag(buf); if (0 == strHeadFlag.compare("ABBCCD")) { char buf[8] = {0x00}; @@ -1092,10 +1088,8 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) { } } } else if (UartRecvBuf[i] == head2[0]) { - char buf[6] = {0x00}; - sprintf(&buf[0], "%02X", UartRecvBuf[i] & 0xFF); - sprintf(&buf[2], "%02X", UartRecvBuf[i + 1] & 0xFF); - sprintf(&buf[4], "%02X", UartRecvBuf[i + 2] & 0xFF); + char buf[12] = {0x00}; + sprintf(buf, "%02X%02X%02X", UartRecvBuf[i] & 0xFF,UartRecvBuf[i + 1] & 0xFF,UartRecvBuf[i + 2] & 0xFF); std::string strHeadFlag(buf); if (0 == strHeadFlag.compare("DEDFEF")) { char buf[8] = {0x00}; diff --git a/uart/uart.hpp b/uart/uart.hpp index 2a1fd39..ba95bc8 100644 --- a/uart/uart.hpp +++ b/uart/uart.hpp @@ -110,11 +110,17 @@ typedef struct { } SensorConfig; // 下发任务 -typedef struct { +typedef struct ScheduleTask_{ uint8_t cmd; uint16_t shortAddr; uint16_t duration; uint32_t timeStamp; + ScheduleTask_(){ + cmd = 0; + shortAddr = 0; + duration = 0; + timeStamp = 0; + } } ScheduleTask; // 升级任务 diff --git a/uart/uart_feature_parse.cpp b/uart/uart_feature_parse.cpp index 06704d4..dbcf749 100644 --- a/uart/uart_feature_parse.cpp +++ b/uart/uart_feature_parse.cpp @@ -170,7 +170,7 @@ void Uart::DealDataNodeFeature(const char *pData, int flag) { int count2 = sqlite_db_ctrl::instance().GetTableRows(szTableNameData, whereCon); if (count > 0 || count2 > 0) { - char logInfo[20] = {0x00}; + char logInfo[100] = {0x00}; sprintf(logInfo, "ShortAddr = %s,staticIndex = %ld,staticData = %d, data = %d", strShortAddr.c_str(), staticIndex, count, count2); zlog_info(zct, logInfo); return; @@ -747,9 +747,9 @@ void Uart::DealDataNodeFeature(const char *pData, int flag) { zlog_info(zct, "dataNodeNo = '%s' and TimeStamp = '%s',MQTT ret = %d", strLongAddr.c_str(), nowTimetamp.c_str(), iRet); if (iRet != 0) { char updateSql[1024] = {0}; - memset(whereCon, 0, 64); + memset(whereCon, 0, 1024); sprintf(whereCon, "dataNodeNo = '%s' and TimeStamp = '%s'", strLongAddr.c_str(), nowTimetamp.c_str()); - memcpy(updateSql, "sendMsg='0'", sizeof(updateSql)); + memcpy(updateSql, "sendMsg='0'", 11); sqlite_db_ctrl::instance().UpdateTableData(szTableNameStatic, updateSql, whereCon); sqlite_db_ctrl::instance().UpdateTableData(szTableNameData, updateSql, whereCon); } diff --git a/uart/uart_parameter_config.cpp b/uart/uart_parameter_config.cpp index da51a25..3a4b99d 100644 --- a/uart/uart_parameter_config.cpp +++ b/uart/uart_parameter_config.cpp @@ -250,7 +250,7 @@ endUpdate: int Uart::UpdateConfig(unsigned char* pDestShortAddr) { char whereCon[64] = {0}; - char selCon[100] = {0x00}; + char selCon[1024] = {0x00}; sprintf(whereCon, "zigbeeShortAddr='%02x%02x'", pDestShortAddr[0], pDestShortAddr[1]); vec_t vecResultNode = sqlite_db_ctrl::instance().GetDataSingleLine(T_SENSOR_INFO(TNAME), "*", whereCon); @@ -379,9 +379,7 @@ int Uart::UpdateConfig(unsigned char* pDestShortAddr) { size_t bytesSize = strlen(vecResult[13].c_str()) / 2; unsigned char* bytes = (unsigned char*)malloc(bytesSize); - if (hexStringToBytes(vecResult[13].c_str(), bytes, bytesSize) != 0) { - free(bytes); - } else { + if (hexStringToBytes(vecResult[13].c_str(), bytes, bytesSize) == 0) { UpdateData[60] = bytes[0]; UpdateData[61] = bytes[1]; UpdateData[62] = bytes[2];