优化内存泄漏问题
This commit is contained in:
parent
cdbf8bee6e
commit
3992d1a64e
@ -80,24 +80,15 @@ void CheckThread() {
|
|||||||
GlobalConfig::IpAddr_G = ipTemp;
|
GlobalConfig::IpAddr_G = ipTemp;
|
||||||
heart_count = 0;
|
heart_count = 0;
|
||||||
}
|
}
|
||||||
#ifdef G2UL_GATEWAY
|
if (7200 == time_check) { // 2h //校时暂时不测
|
||||||
if (checkNet0 == 5) {
|
time_check = 0;
|
||||||
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 //校时暂时不测
|
|
||||||
// char buf[256] = {0};
|
// char buf[256] = {0};
|
||||||
// char buf2[256] = {0};
|
// char buf2[256] = {0};
|
||||||
// sprintf(buf, "{\"dataNodeGatewayNo\":\"%s\",\"cmd\":\"12\",\"status\":\"REQ\"}", GlobalConfig::MacAddr_G.c_str());
|
// 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());
|
// sprintf(buf2, "{\"dataWatchNo\":\"%s\",\"cmd\":\"12\",\"status\":\"REQ\"}", GlobalConfig::MacAddr_G.c_str());
|
||||||
// std::string str = std::string(buf);
|
// std::string str = std::string(buf);
|
||||||
// std::string str2 = std::string(buf2);
|
// std::string str2 = std::string(buf2);
|
||||||
// time_check = 0;
|
//
|
||||||
// int iRet = data_publish(str.c_str(), GlobalConfig::Topic_G.mPubTiming.c_str());
|
// 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(str.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
|
||||||
// iRet = data_publish(str2.c_str(), GlobalConfig::Topic_G.mPubTiming.c_str());
|
// iRet = data_publish(str2.c_str(), GlobalConfig::Topic_G.mPubTiming.c_str());
|
||||||
@ -180,7 +171,7 @@ void CheckThread() {
|
|||||||
// #endif
|
// #endif
|
||||||
// #endif
|
// #endif
|
||||||
// }
|
// }
|
||||||
// }
|
}
|
||||||
if (HardStatus == 3600) { // one hour 3600
|
if (HardStatus == 3600) { // one hour 3600
|
||||||
JsonData jd;
|
JsonData jd;
|
||||||
std::string data = jd.JsonCmd_07();
|
std::string data = jd.JsonCmd_07();
|
||||||
@ -378,9 +369,6 @@ void CheckThread() {
|
|||||||
loose_check++;
|
loose_check++;
|
||||||
ModifyAddr++;
|
ModifyAddr++;
|
||||||
mqttresend++;
|
mqttresend++;
|
||||||
#ifdef G2UL_GATEWAY
|
|
||||||
checkNet0++;
|
|
||||||
#endif
|
|
||||||
#ifdef WIFI_MODULE
|
#ifdef WIFI_MODULE
|
||||||
wifi_reconnect_count++;
|
wifi_reconnect_count++;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -941,11 +941,9 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
|||||||
bytesRead = bytesRead + mlastSize;
|
bytesRead = bytesRead + mlastSize;
|
||||||
for (int i = 0; i < bytesRead; i++) {
|
for (int i = 0; i < bytesRead; i++) {
|
||||||
if (UartRecvBuf[i] == head[0]) {
|
if (UartRecvBuf[i] == head[0]) {
|
||||||
char buf[6] = {0x00};
|
char buf[12] = {0x00};
|
||||||
char ShortAddr[8] = {0x00};
|
char ShortAddr[8] = {0x00};
|
||||||
sprintf(&buf[0], "%02X", UartRecvBuf[i] & 0xFF);
|
sprintf(buf, "%02X%02X%02X", UartRecvBuf[i] & 0xFF,UartRecvBuf[i + 1] & 0xFF,UartRecvBuf[i + 2] & 0xFF);
|
||||||
sprintf(&buf[2], "%02X", UartRecvBuf[i + 1] & 0xFF);
|
|
||||||
sprintf(&buf[4], "%02X", UartRecvBuf[i + 2] & 0xFF);
|
|
||||||
sprintf(ShortAddr, "%02x%02x", UartRecvBuf[i + 3] & 0xFF, UartRecvBuf[i + 4] & 0xFF);
|
sprintf(ShortAddr, "%02x%02x", UartRecvBuf[i + 3] & 0xFF, UartRecvBuf[i + 4] & 0xFF);
|
||||||
std::string strShortAddr(ShortAddr);
|
std::string strShortAddr(ShortAddr);
|
||||||
std::string strHeadFlag(buf);
|
std::string strHeadFlag(buf);
|
||||||
@ -1071,10 +1069,8 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
} else if (UartRecvBuf[i] == head1[0]) {
|
} else if (UartRecvBuf[i] == head1[0]) {
|
||||||
char buf[6] = {0x00};
|
char buf[12] = {0x00};
|
||||||
sprintf(&buf[0], "%02X", UartRecvBuf[i] & 0xFF);
|
sprintf(buf, "%02X%02X%02X", UartRecvBuf[i] & 0xFF,UartRecvBuf[i + 1] & 0xFF,UartRecvBuf[i + 2] & 0xFF);
|
||||||
sprintf(&buf[2], "%02X", UartRecvBuf[i + 1] & 0xFF);
|
|
||||||
sprintf(&buf[4], "%02X", UartRecvBuf[i + 2] & 0xFF);
|
|
||||||
std::string strHeadFlag(buf);
|
std::string strHeadFlag(buf);
|
||||||
if (0 == strHeadFlag.compare("ABBCCD")) {
|
if (0 == strHeadFlag.compare("ABBCCD")) {
|
||||||
char buf[8] = {0x00};
|
char buf[8] = {0x00};
|
||||||
@ -1092,10 +1088,8 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (UartRecvBuf[i] == head2[0]) {
|
} else if (UartRecvBuf[i] == head2[0]) {
|
||||||
char buf[6] = {0x00};
|
char buf[12] = {0x00};
|
||||||
sprintf(&buf[0], "%02X", UartRecvBuf[i] & 0xFF);
|
sprintf(buf, "%02X%02X%02X", UartRecvBuf[i] & 0xFF,UartRecvBuf[i + 1] & 0xFF,UartRecvBuf[i + 2] & 0xFF);
|
||||||
sprintf(&buf[2], "%02X", UartRecvBuf[i + 1] & 0xFF);
|
|
||||||
sprintf(&buf[4], "%02X", UartRecvBuf[i + 2] & 0xFF);
|
|
||||||
std::string strHeadFlag(buf);
|
std::string strHeadFlag(buf);
|
||||||
if (0 == strHeadFlag.compare("DEDFEF")) {
|
if (0 == strHeadFlag.compare("DEDFEF")) {
|
||||||
char buf[8] = {0x00};
|
char buf[8] = {0x00};
|
||||||
|
|||||||
@ -110,11 +110,17 @@ typedef struct {
|
|||||||
} SensorConfig;
|
} SensorConfig;
|
||||||
|
|
||||||
// 下发任务
|
// 下发任务
|
||||||
typedef struct {
|
typedef struct ScheduleTask_{
|
||||||
uint8_t cmd;
|
uint8_t cmd;
|
||||||
uint16_t shortAddr;
|
uint16_t shortAddr;
|
||||||
uint16_t duration;
|
uint16_t duration;
|
||||||
uint32_t timeStamp;
|
uint32_t timeStamp;
|
||||||
|
ScheduleTask_(){
|
||||||
|
cmd = 0;
|
||||||
|
shortAddr = 0;
|
||||||
|
duration = 0;
|
||||||
|
timeStamp = 0;
|
||||||
|
}
|
||||||
} ScheduleTask;
|
} ScheduleTask;
|
||||||
|
|
||||||
// 升级任务
|
// 升级任务
|
||||||
|
|||||||
@ -170,7 +170,7 @@ void Uart::DealDataNodeFeature(const char *pData, int flag) {
|
|||||||
|
|
||||||
int count2 = sqlite_db_ctrl::instance().GetTableRows(szTableNameData, whereCon);
|
int count2 = sqlite_db_ctrl::instance().GetTableRows(szTableNameData, whereCon);
|
||||||
if (count > 0 || count2 > 0) {
|
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);
|
sprintf(logInfo, "ShortAddr = %s,staticIndex = %ld,staticData = %d, data = %d", strShortAddr.c_str(), staticIndex, count, count2);
|
||||||
zlog_info(zct, logInfo);
|
zlog_info(zct, logInfo);
|
||||||
return;
|
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);
|
zlog_info(zct, "dataNodeNo = '%s' and TimeStamp = '%s',MQTT ret = %d", strLongAddr.c_str(), nowTimetamp.c_str(), iRet);
|
||||||
if (iRet != 0) {
|
if (iRet != 0) {
|
||||||
char updateSql[1024] = {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());
|
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(szTableNameStatic, updateSql, whereCon);
|
||||||
sqlite_db_ctrl::instance().UpdateTableData(szTableNameData, updateSql, whereCon);
|
sqlite_db_ctrl::instance().UpdateTableData(szTableNameData, updateSql, whereCon);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -250,7 +250,7 @@ endUpdate:
|
|||||||
|
|
||||||
int Uart::UpdateConfig(unsigned char* pDestShortAddr) {
|
int Uart::UpdateConfig(unsigned char* pDestShortAddr) {
|
||||||
char whereCon[64] = {0};
|
char whereCon[64] = {0};
|
||||||
char selCon[100] = {0x00};
|
char selCon[1024] = {0x00};
|
||||||
sprintf(whereCon, "zigbeeShortAddr='%02x%02x'", pDestShortAddr[0], pDestShortAddr[1]);
|
sprintf(whereCon, "zigbeeShortAddr='%02x%02x'", pDestShortAddr[0], pDestShortAddr[1]);
|
||||||
|
|
||||||
vec_t vecResultNode = sqlite_db_ctrl::instance().GetDataSingleLine(T_SENSOR_INFO(TNAME), "*", whereCon);
|
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;
|
size_t bytesSize = strlen(vecResult[13].c_str()) / 2;
|
||||||
unsigned char* bytes = (unsigned char*)malloc(bytesSize);
|
unsigned char* bytes = (unsigned char*)malloc(bytesSize);
|
||||||
|
|
||||||
if (hexStringToBytes(vecResult[13].c_str(), bytes, bytesSize) != 0) {
|
if (hexStringToBytes(vecResult[13].c_str(), bytes, bytesSize) == 0) {
|
||||||
free(bytes);
|
|
||||||
} else {
|
|
||||||
UpdateData[60] = bytes[0];
|
UpdateData[60] = bytes[0];
|
||||||
UpdateData[61] = bytes[1];
|
UpdateData[61] = bytes[1];
|
||||||
UpdateData[62] = bytes[2];
|
UpdateData[62] = bytes[2];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user