优化内存泄漏问题

This commit is contained in:
zhangsheng 2024-11-05 11:10:50 +08:00
parent cdbf8bee6e
commit 3992d1a64e
5 changed files with 22 additions and 36 deletions

View File

@ -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

View File

@ -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};

View File

@ -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;
// 升级任务

View File

@ -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);
}

View File

@ -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];