diff --git a/common/parameter_defination.hpp b/common/parameter_defination.hpp index 91de697..a821103 100644 --- a/common/parameter_defination.hpp +++ b/common/parameter_defination.hpp @@ -368,7 +368,11 @@ struct Param_65 { std::string timeEnd; Param_65() : mMode(0),mPackageFlag(0),timeStart(""),timeEnd(""){}; }; - +struct Param_66 { + int mMode; + int mSensorLooseEnable; + Param_66() : mSensorLooseEnable(0){}; +}; // 无线温度传感器(蓝牙) struct Param_100{ int mPackageFlag; diff --git a/dbaccess/sql_db.cpp b/dbaccess/sql_db.cpp index 7990b1e..0a805bb 100644 --- a/dbaccess/sql_db.cpp +++ b/dbaccess/sql_db.cpp @@ -16,9 +16,9 @@ const char *T_SENSOR_INFO1[] = {"t_sensor_info", "dataNodeNo", "dataNodeName "zigbeePanId", "zigbeeChannel", "zigbeeShortAddr", "zigbeeLongAddr", "zigbeeDesAddr", "status", "timeStamp", "viff", "RSSI"}; const char *T_DATA_INFO1[] = {"t_data_info", "dataNodeNo", "channelID", "diagnosisPk", "integratPk", "integratRMS", "rmsValues", "envelopEnergy", "Amp1", "Amp2", "Amp3", - "Amp4", "Amp5", "Phase1", "Phase2", "Phase3", "Phase4", "StaticIndex", "timeStamp", "sendMsg", "nodeResend"}; + "Amp4", "Amp5", "Phase1", "Phase2", "Phase3", "Phase4", "StaticIndex", "timeStamp", "sendMsg", "nodeResend","nodeTimestamp"}; -const char *T_DATASTATIC_INFO1[] = {"t_datastatic_info", "dataNodeNo", "channelID", "temTop", "temBot", "dip", "voltage", "StaticIndex", "timeStamp", "sendMsg", "nodeResend"}; +const char *T_DATASTATIC_INFO1[] = {"t_datastatic_info", "dataNodeNo", "channelID", "temTop", "temBot", "dip", "voltage", "StaticIndex", "timeStamp", "sendMsg", "nodeResend","nodeTimestamp"}; const char *T_DATANODE_TIME1[] = {"t_datanode_time", "dataNodeNo", "shortaddr", "staticcycle", "wavecycle", "nodegroup", "nodeindex", "nodewaveindex", "statictime", "staticstarttime"}; @@ -136,7 +136,7 @@ void SqliteDB::SqliteInit(const char *pDbName) { // 创建传感器数据存储表 memset(sql_exec, 0, 2048); // clang-format off - sprintf(sql_exec, "create table if not exists %s(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s integer,%s,%s,%s);", + sprintf(sql_exec, "create table if not exists %s(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s integer,%s,%s,%s,%s);", T_DATA_INFO(TNAME), T_DATA_INFO(DATANODENO), T_DATA_INFO(CHANNELID), @@ -157,7 +157,9 @@ void SqliteDB::SqliteInit(const char *pDbName) { T_DATA_INFO(STATICINDEX), T_DATA_INFO(TIMESTAMP), T_DATA_INFO(SENDMSG), - T_DATA_INFO(NODERESEND)); + T_DATA_INFO(NODERESEND), + T_DATA_INFO(NODETIMESTAMP) + ); // clang-format on CreateTable(sql_exec); @@ -165,10 +167,14 @@ void SqliteDB::SqliteInit(const char *pDbName) { if(iRet == 0){ CreateTable("ALTER TABLE t_data_info ADD COLUMN 'nodeResend'"); } + iRet = GetTableRows(" sqlite_master "," name = 't_data_info' and sql LIKE '%nodeTimeStamp%' "); + if(iRet == 0){ + CreateTable("ALTER TABLE t_data_info ADD COLUMN 'nodeTimeStamp'"); + } // 创建传感器静态数据存储表 memset(sql_exec, 0, 2048); - sprintf(sql_exec, "create table if not exists %s(%s,%s,%s,%s,%s,%s,%s,%s integer,%s,%s,%s);", + sprintf(sql_exec, "create table if not exists %s(%s,%s,%s,%s,%s,%s,%s,%s integer,%s,%s,%s,%s);", T_DATASTATIC_INFO(TNAME), T_DATASTATIC_INFO(DATANODENO), T_DATASTATIC_INFO(CHANNELID), @@ -180,13 +186,18 @@ void SqliteDB::SqliteInit(const char *pDbName) { T_DATASTATIC_INFO(STATICINDEX), T_DATASTATIC_INFO(TIMESTAMP), T_DATASTATIC_INFO(SENDMSG), - T_DATASTATIC_INFO(NODERESEND)); + T_DATASTATIC_INFO(NODERESEND), + T_DATASTATIC_INFO(NODETIMESTAMP) + ); CreateTable(sql_exec); iRet = GetTableRows(" sqlite_master "," name = 't_datastatic_info' and sql LIKE '%nodeResend%' "); if(iRet == 0){ CreateTable("ALTER TABLE t_datastatic_info ADD COLUMN 'nodeResend'"); } - + iRet = GetTableRows(" sqlite_master "," name = 't_datastatic_info' and sql LIKE '%nodeTimeStamp%' "); + if(iRet == 0){ + CreateTable("ALTER TABLE t_datastatic_info ADD COLUMN 'nodeTimeStamp'"); + } memset(sql_exec, 0, 2048); // clang-format off sprintf(sql_exec, "create table if not exists %s(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);", @@ -269,15 +280,42 @@ void SqliteDB::SqliteInit(const char *pDbName) { execute_sql_file("/opt/configenv/blueteeth_info.sql"); execute_sql_file("/opt/configenv/t_sensor_bt_info.sql"); + + vec_t vetRes = sqlite_db_ctrl::instance().GetDataMultiLineOfOneColumn(T_SENSOR_INFO(TNAME), "MeasurementID", NULL); + for(size_t i = 0; i < vetRes.size() && vetRes.size() > 0; i++){ + std::string strMeasurementID = boost::algorithm::trim_copy(vetRes[i]); + if(strMeasurementID.size() > 0){ + std::string strTmp = ""; + char sztableName[100] = {0x00},sql[1024] = {0x00}; + sprintf(sztableName, "t_dataStatic_%s", strMeasurementID.c_str()); + strTmp = "name = '" + std::string(sztableName) + "' and sql LIKE '%nodeTimeStamp%' "; + iRet = GetTableRows(" sqlite_master ",strTmp.c_str()); + if(iRet == 0){ + memset(sql, 0, 1024); + sprintf(sql,"ALTER TABLE t_dataStatic_%s ADD COLUMN 'nodeTimeStamp'", strMeasurementID.c_str()); + CreateTable(sql); + } + memset(sql, 0, 1024); + memset(sztableName, 0, 100); + sprintf(sztableName, "t_data_%s", strMeasurementID.c_str()); + strTmp = "name = '" + std::string(sztableName) + "' and sql LIKE '%nodeTimeStamp%' "; + iRet = GetTableRows(" sqlite_master ",strTmp.c_str()); + if(iRet == 0){ + memset(sql, 0, 1024); + sprintf(sql,"ALTER TABLE t_data_%s ADD COLUMN 'nodeTimeStamp'", strMeasurementID.c_str()); + CreateTable(sql); + } + } + } } void SqliteDB::Createtable(const char *ptableName) { char sql_exec[2048]; // 创建传感器数据存储表 memset(sql_exec, 0, 2048); - sprintf(sql_exec, "create table if not exists %s(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s integer,%s,%s,%s);", ptableName, T_DATA_INFO(DATANODENO), T_DATA_INFO(CHANNELID), T_DATA_INFO(DIAGNOSISEAK), T_DATA_INFO(INTEGRATPK), T_DATA_INFO(INTEGRATRMS), + sprintf(sql_exec, "create table if not exists %s(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s integer,%s,%s,%s,%s);", ptableName, T_DATA_INFO(DATANODENO), T_DATA_INFO(CHANNELID), T_DATA_INFO(DIAGNOSISEAK), T_DATA_INFO(INTEGRATPK), T_DATA_INFO(INTEGRATRMS), T_DATA_INFO(RMSVALUES), T_DATA_INFO(ENVELOPNERGY), T_DATA_INFO(AMP1), T_DATA_INFO(AMP2), T_DATA_INFO(AMP3), T_DATA_INFO(AMP4), T_DATA_INFO(AMP5), T_DATA_INFO(PHASE1), T_DATA_INFO(PHASE2), T_DATA_INFO(PHASE3), T_DATA_INFO(PHASE4), "StaticIndex", T_DATA_INFO(TIMESTAMP), - "sendMsg", "nodeResend"); + "sendMsg", "nodeResend", "nodeTimestamp"); CreateTable(sql_exec); memset(sql_exec, 0, 2048); sprintf(sql_exec, "CREATE INDEX %s_1 ON %s (%s)", ptableName, ptableName, T_DATA_INFO(DATANODENO)); @@ -313,8 +351,8 @@ void SqliteDB::CreatedataStatictable(const char *ptableName) { char sql_exec[2048]; //创建传感器数据存储表 memset(sql_exec, 0, 2048); - sprintf(sql_exec, "create table if not exists %s(%s,%s,%s,%s,%s,%s,%s,%s integer,%s,%s,%s,%s integer,%s,%s);", ptableName, T_DATASTATIC_INFO(DATANODENO), T_DATASTATIC_INFO(CHANNELID), T_DATASTATIC_INFO(TEMTOP), T_DATASTATIC_INFO(TEMBOT), T_DATASTATIC_INFO(DIP), - T_DATASTATIC_INFO(VOLTAGE), "zigbeeSignal", "StaticIndex", T_DATASTATIC_INFO(TIMESTAMP), "sendMsg", "nodeResend", "zigbeeSignalNode", "statisticType", "timing"); + sprintf(sql_exec, "create table if not exists %s(%s,%s,%s,%s,%s,%s,%s,%s integer,%s,%s,%s,%s integer,%s,%s,%s);", ptableName, T_DATASTATIC_INFO(DATANODENO), T_DATASTATIC_INFO(CHANNELID), T_DATASTATIC_INFO(TEMTOP), T_DATASTATIC_INFO(TEMBOT), T_DATASTATIC_INFO(DIP), + T_DATASTATIC_INFO(VOLTAGE), "zigbeeSignal", "StaticIndex", T_DATASTATIC_INFO(TIMESTAMP), "sendMsg", "nodeResend", "zigbeeSignalNode", "statisticType", "timing", "nodeTimestamp"); CreateTable(sql_exec); memset(sql_exec, 0, 2048); sprintf(sql_exec, "CREATE INDEX %s_1 ON %s (%s)", ptableName, ptableName, T_DATA_INFO(DATANODENO)); diff --git a/dbaccess/sql_db.hpp b/dbaccess/sql_db.hpp index e2b1136..523493c 100644 --- a/dbaccess/sql_db.hpp +++ b/dbaccess/sql_db.hpp @@ -140,7 +140,8 @@ typedef enum { T_DATA_INFO_STATICINDEX, T_DATA_INFO_TIMESTAMP, T_DATA_INFO_SENDMSG, - T_DATA_INFO_NODERESEND + T_DATA_INFO_NODERESEND, + T_DATA_INFO_NODETIMESTAMP } T_DATA_INFO_Index; typedef enum { @@ -154,7 +155,8 @@ typedef enum { T_DATASTATIC_INFO_STATICINDEX, T_DATASTATIC_INFO_TIMESTAMP, T_DATASTATIC_INFO_SENDMSG, - T_DATASTATIC_INFO_NODERESEND + T_DATASTATIC_INFO_NODERESEND, + T_DATASTATIC_INFO_NODETIMESTAMP } T_DATASTATIC_INFO_Index; typedef enum { diff --git a/jsonparse/communication_cmd.hpp b/jsonparse/communication_cmd.hpp index 2877d1c..979df52 100644 --- a/jsonparse/communication_cmd.hpp +++ b/jsonparse/communication_cmd.hpp @@ -74,6 +74,7 @@ public: std::string JsonCmd_Cgi_63(Param_63 ¶m); std::string JsonCmd_Cgi_64(Param_64 ¶m); std::string JsonCmd_Cgi_65(Param_65 ¶m); + std::string JsonCmd_Cgi_66(Param_66 ¶m); // 无线温度传感器(蓝牙) std::string JsonCmd_Cgi_100(Param_100 ¶m); diff --git a/jsonparse/web_cmd_parse3.cpp b/jsonparse/web_cmd_parse3.cpp index fc58195..db71170 100644 --- a/jsonparse/web_cmd_parse3.cpp +++ b/jsonparse/web_cmd_parse3.cpp @@ -1214,3 +1214,21 @@ std::string JsonData::JsonCmd_Cgi_65(Param_65 ¶m){ } return show_value_.write(jsonVal); } +std::string JsonData::JsonCmd_Cgi_66(Param_66 ¶m) { + Json::Value jsonVal; + jsonVal.clear(); + Json::Value jsBody; + jsonVal[JSON_FIELD_CMD] = "66"; + jsonVal["success"] = true; + jsonVal["message"] = ""; + int looseEnable = -1; + if (param.mMode == 1) { + looseEnable = writeIntValue("config", "looseEnable", param.mSensorLooseEnable, (char *)GlobalConfig::Config_G.c_str()); + } else if (param.mMode == 0) { + looseEnable = readIntValue("config", "looseEnable", (char *)GlobalConfig::Config_G.c_str()); + } + jsBody["looseEnable"] = looseEnable; + jsonVal["content"] = jsBody; + + return show_value_.write(jsonVal); +} \ No newline at end of file diff --git a/localserver/local_server.hpp b/localserver/local_server.hpp index d4f91cf..79ad820 100644 --- a/localserver/local_server.hpp +++ b/localserver/local_server.hpp @@ -55,6 +55,7 @@ enum WebCommand { kWaveSend = 63, kFeatureSend = 64, kFeatureWaveCount = 65, + KSensorLoose = 66, //CMT TCP kGateWayVersion = 80, diff --git a/localserver/web_cmd.cpp b/localserver/web_cmd.cpp index db9fd2a..4e2f7a9 100644 --- a/localserver/web_cmd.cpp +++ b/localserver/web_cmd.cpp @@ -522,6 +522,21 @@ std::string LocalServer::HandleCgi_cmd(std::string &pData) { return data; } break; + case KSensorLoose:{ + JsonData jd; + Param_66 param; + param.mSensorLooseEnable = recvBody["looseEnable"].asInt(); + std::string type = recvBody["type"].asString(); + if (0 == type.compare("SET")) { + param.mMode = 1; + } + if (0 == type.compare("GET")) { + param.mMode = 0; + } + std::string data = jd.JsonCmd_Cgi_66(param); + return data; + } + break; case kGetSensorInfo:{ JsonData jd; Param_100 param; diff --git a/platform/platform_init.cpp b/platform/platform_init.cpp index daa42aa..0728894 100644 --- a/platform/platform_init.cpp +++ b/platform/platform_init.cpp @@ -14,7 +14,7 @@ int GlobalConfig::LinkStatus_G = 0; int GlobalConfig::LinkCount = 0; int GlobalConfig::net0Status = 1; -std::string GlobalConfig::Version = "5.7"; +std::string GlobalConfig::Version = "5.7.1"; std::string GlobalConfig::MacAddr_G = ""; std::string GlobalConfig::MacAddr_G2 = ""; std::string GlobalConfig::IpAddr_G = ""; diff --git a/threadfunc/check_thread.cpp b/threadfunc/check_thread.cpp index 316a943..b8c1edd 100644 --- a/threadfunc/check_thread.cpp +++ b/threadfunc/check_thread.cpp @@ -176,9 +176,14 @@ void CheckThread() { } if (3500 == loose_check) { - zlog_warn(zct, "loosecheck\n"); loose_check = 0; - sqlite_db_ctrl::instance().CalculateDip(); + int looseEnable = readIntValue("config", "looseEnable", (char *)GlobalConfig::Config_G.c_str()); + if (looseEnable == 1) + { + zlog_warn(zct, "loosecheck\n"); + sqlite_db_ctrl::instance().CalculateDip(); + } + } if (18000 == commSignal) { // 5h diff --git a/uart/uart_feature_parse.cpp b/uart/uart_feature_parse.cpp index a392621..fc0dedf 100644 --- a/uart/uart_feature_parse.cpp +++ b/uart/uart_feature_parse.cpp @@ -87,10 +87,15 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) { if (vecResult[0] == "3.0" || vecResult[0] == "4.0") { return -2; } - long nodetimestamp = BUILD_UINT32(pRecvData->Data[29], pRecvData->Data[28], pRecvData->Data[27], pRecvData->Data[26]); + long nodetimestamp_ = BUILD_UINT32(pRecvData->Data[29], pRecvData->Data[28], pRecvData->Data[27], pRecvData->Data[26]); - char localtimestamp[32] = {0}; - sprintf(localtimestamp,"%ld",nodetimestamp); + char nodetimestamp[32] = {0}; + sprintf(nodetimestamp,"%ld",nodetimestamp_); + // std::string nowTimetamp = std::string(localtimestamp); + // strTimetamp = nowTimetamp; + + char localtimestamp[32] = { 0 }; + GetTimeNet(localtimestamp, 1); std::string nowTimetamp = std::string(localtimestamp); strTimetamp = nowTimetamp; @@ -235,18 +240,18 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) { if (/*0 == sqlite_db_ctrl::instance().GetTableRows(T_DATASTATIC_INFO(TNAME), whereCon)*/ (Count * 3 < SAVE_COUNT && lTime < OneWeek) || strTime.size() == 0) { zlog_info(zct, "insert static data to sql"); char insertSql[1024] = {0}; - sprintf(insertSql, "'%s','%s','%f','%f','%d','%d','',%ld,'%s','1',%d,'','%d','%d'", strMeasurementID.c_str(), (strMeasurementID + "-S").c_str(), dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, staticIndex, nowTimetamp.c_str(), nodeResend, flag, - timing); + sprintf(insertSql, "'%s','%s','%f','%f','%d','%d','',%ld,'%s','1',%d,'','%d','%d','%s'", strMeasurementID.c_str(), (strMeasurementID + "-S").c_str(), dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, staticIndex, nowTimetamp.c_str(), nodeResend, flag, + timing,nodetimestamp); sqlite_db_ctrl::instance().InsertData(szTableName, insertSql); if (0 == sqlite_db_ctrl::instance().GetTableRows(T_DATASTATIC_INFO(TNAME), whereCon)) { // First Connect char insertSql[1024] = {0}; - sprintf(insertSql, "'%s','%s','%f','%f','%d','%d','',%ld,'%s','1',%d", strMeasurementID.c_str(), (strMeasurementID + "-S").c_str(), dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, staticIndex, nowTimetamp.c_str(), nodeResend); + sprintf(insertSql, "'%s','%s','%f','%f','%d','%d','',%ld,'%s','1',%d,%s", strMeasurementID.c_str(), (strMeasurementID + "-S").c_str(), dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, staticIndex, nowTimetamp.c_str(), nodeResend,nodetimestamp); sqlite_db_ctrl::instance().InsertData(T_DATASTATIC_INFO(TNAME), insertSql); sqlite_db_ctrl::instance().CalculateBattery(); } else { memset(updateSql, 0x00, sizeof(updateSql)); - sprintf(updateSql, "temTop='%f',temBot='%f',dip='%d',voltage='%d',timeStamp='%s',StaticIndex = %ld ", dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, nowTimetamp.c_str(), staticIndex); + sprintf(updateSql, "temTop='%f',temBot='%f',dip='%d',voltage='%d',timeStamp='%s',StaticIndex = %ld,nodeTimestamp = '%s' ", dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, nowTimetamp.c_str(), staticIndex,nodetimestamp); sqlite_db_ctrl::instance().UpdateTableData(T_DATASTATIC_INFO(TNAME), updateSql, whereCon); } } else { @@ -257,7 +262,7 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) { memset(whereCon, 0x00, sizeof(whereCon)); sprintf(whereCon, "channelID='%s' ", (strMeasurementID + "-S").c_str()); memset(updateSql, 0x00, sizeof(updateSql)); - sprintf(updateSql, "temTop='%f',temBot='%f',dip='%d',voltage='%d',timeStamp='%s',StaticIndex = %ld ", dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, nowTimetamp.c_str(), staticIndex); + sprintf(updateSql, "temTop='%f',temBot='%f',dip='%d',voltage='%d',timeStamp='%s',StaticIndex = %ld,nodeTimestamp = '%s' ", dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, nowTimetamp.c_str(), staticIndex,nodetimestamp); sqlite_db_ctrl::instance().UpdateTableData(T_DATASTATIC_INFO(TNAME), updateSql, whereCon); } memset(szTableName, 0x00, sizeof(szTableName)); @@ -310,14 +315,14 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) { sprintf(whereCon, "channelID='%s' ", (strMeasurementID + "-X").c_str()); memset(updateSql, 0, 1024); sprintf(updateSql, "diagnosisPk='%f',integratPk='%f',integratRMS='%f',rmsValues='%f',envelopEnergy='%f',\ - Amp1='%f',Amp2='%f',Amp3='%f',Amp4='%f',Amp5='%f',Phase1='%f',Phase2='%f',Phase3='%f',Phase4='%f',timeStamp='%s',StaticIndex = %ld,nodeResend = %d ", + Amp1='%f',Amp2='%f',Amp3='%f',Amp4='%f',Amp5='%f',Phase1='%f',Phase2='%f',Phase3='%f',Phase4='%f',timeStamp='%s',StaticIndex = %ld,nodeResend = %d, nodeTimestamp = '%s' ", dataDymX.DiagnosisPk, dataDymX.IntegratPk, dataDymX.IntegratRMS, dataDymX.RmsValues, dataDymX.EnvelopEnergy, dataDymX.Amp1, dataDymX.Amp2, dataDymX.Amp3, dataDymX.Amp4, dataDymX.Amp5, dataDymX.Phase1, dataDymX.Phase2, dataDymX.Phase3, dataDymX.Phase4, - nowTimetamp.c_str(), staticIndex, nodeResend); + nowTimetamp.c_str(), staticIndex, nodeResend,nodetimestamp); if ((Count * 3 < SAVE_COUNT && lTime < OneWeek) || strTime.size() == 0 || nodeResend != 0) { // 1 week char insertSql[1024] = {0}; memset(insertSql, 0x00, sizeof(insertSql)); - sprintf(insertSql, "'%s','%s','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f',%ld,'%s','1',%d", strMeasurementID.c_str(), (strMeasurementID + "-X").c_str(), dataDymX.DiagnosisPk, dataDymX.IntegratPk, dataDymX.IntegratRMS, dataDymX.RmsValues, - dataDymX.EnvelopEnergy, dataDymX.Amp1, dataDymX.Amp2, dataDymX.Amp3, dataDymX.Amp4, dataDymX.Amp5, dataDymX.Phase1, dataDymX.Phase2, dataDymX.Phase3, dataDymX.Phase4, staticIndex, nowTimetamp.c_str(), nodeResend); + sprintf(insertSql, "'%s','%s','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f',%ld,'%s','1',%d,'%s'", strMeasurementID.c_str(), (strMeasurementID + "-X").c_str(), dataDymX.DiagnosisPk, dataDymX.IntegratPk, dataDymX.IntegratRMS, dataDymX.RmsValues, + dataDymX.EnvelopEnergy, dataDymX.Amp1, dataDymX.Amp2, dataDymX.Amp3, dataDymX.Amp4, dataDymX.Amp5, dataDymX.Phase1, dataDymX.Phase2, dataDymX.Phase3, dataDymX.Phase4, staticIndex, nowTimetamp.c_str(), nodeResend,nodetimestamp); sqlite_db_ctrl::instance().InsertData(szTableName, insertSql); if (0 == sqlite_db_ctrl::instance().GetTableRows(T_DATA_INFO(TNAME), whereCon)) @@ -326,15 +331,15 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) { sqlite_db_ctrl::instance().UpdateTableData(T_DATA_INFO(TNAME), updateSql, whereCon); } else { memset(whereCon, 0x00, sizeof(whereCon)); - sprintf(whereCon, "channelID='%s' and timeStamp = '%s' and nodeResend = 0", (strMeasurementID + "-X").c_str(), strTime.c_str()); + sprintf(whereCon, "channelID='%s' and timeStamp = '%s' and nodeResend = 0 and nodeTimestamp = '%s'", (strMeasurementID + "-X").c_str(), strTime.c_str(),nodetimestamp); sqlite_db_ctrl::instance().UpdateTableData(szTableName, updateSql, whereCon); memset(whereCon, 0x00, sizeof(whereCon)); sprintf(whereCon, "channelID='%s' ", (strMeasurementID + "-X").c_str()); sqlite_db_ctrl::instance().UpdateTableData(T_DATA_INFO(TNAME), updateSql, whereCon); } - zlog_info(zct, "x:%s,%s,diagnosisPk=%f,integratPk=%f,integratRMS=%f,rmsValues=%f,envelopEnergy=%f,Amp1=%f,Amp2=%f,Amp3=%f,Amp4=%f,Amp5=%f,Phase1=%f,Phase2=%f,Phase3=%f,Phase4=%f,timeStamp=%s", strMeasurementID.c_str(), (strMeasurementID + "-X").c_str(), dataDymX.DiagnosisPk, - dataDymX.IntegratPk, dataDymX.IntegratRMS, dataDymX.RmsValues, dataDymX.EnvelopEnergy, dataDymX.Amp1, dataDymX.Amp2, dataDymX.Amp3, dataDymX.Amp4, dataDymX.Amp5, dataDymX.Phase1, dataDymX.Phase2, dataDymX.Phase3, dataDymX.Phase4, nowTimetamp.c_str()); + zlog_info(zct, "x:%s,%s,diagnosisPk=%f,integratPk=%f,integratRMS=%f,rmsValues=%f,envelopEnergy=%f,Amp1=%f,Amp2=%f,Amp3=%f,Amp4=%f,Amp5=%f,Phase1=%f,Phase2=%f,Phase3=%f,Phase4=%f,timeStamp=%s,nodeTimestamp=%s", strMeasurementID.c_str(), (strMeasurementID + "-X").c_str(), dataDymX.DiagnosisPk, + dataDymX.IntegratPk, dataDymX.IntegratRMS, dataDymX.RmsValues, dataDymX.EnvelopEnergy, dataDymX.Amp1, dataDymX.Amp2, dataDymX.Amp3, dataDymX.Amp4, dataDymX.Amp5, dataDymX.Phase1, dataDymX.Phase2, dataDymX.Phase3, dataDymX.Phase4, nowTimetamp.c_str(),nodetimestamp); Json::Value valNodeData; Json::Value valNodeFeature; @@ -403,14 +408,14 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) { sprintf(whereCon, "channelID='%s' ", (strMeasurementID + "-Y").c_str()); memset(updateSql, 0, 1024); sprintf(updateSql, "diagnosisPk='%f',integratPk='%f',integratRMS='%f',rmsValues='%f',envelopEnergy='%f',\ - Amp1='%f',Amp2='%f',Amp3='%f',Amp4='%f',Amp5='%f',Phase1='%f',Phase2='%f',Phase3='%f',Phase4='%f',timeStamp='%s',StaticIndex = %ld,nodeResend = %d ", + Amp1='%f',Amp2='%f',Amp3='%f',Amp4='%f',Amp5='%f',Phase1='%f',Phase2='%f',Phase3='%f',Phase4='%f',timeStamp='%s',StaticIndex = %ld,nodeResend = %d, nodeTimestamp = '%s' ", dataDymY.DiagnosisPk, dataDymY.IntegratPk, dataDymY.IntegratRMS, dataDymY.RmsValues, dataDymY.EnvelopEnergy, dataDymY.Amp1, dataDymY.Amp2, dataDymY.Amp3, dataDymY.Amp4, dataDymY.Amp5, dataDymY.Phase1, dataDymY.Phase2, dataDymY.Phase3, dataDymY.Phase4, - nowTimetamp.c_str(), staticIndex, nodeResend); + nowTimetamp.c_str(), staticIndex, nodeResend,nodetimestamp); if (/*0 == sqlite_db_ctrl::instance().GetTableRows(T_DATA_INFO(TNAME), whereCon)*/ (Count * 3 < SAVE_COUNT && lTime < OneWeek) || strTime.size() == 0 ) { char insertSql[1024] = {0}; memset(insertSql, 0x00, sizeof(insertSql)); - sprintf(insertSql, "'%s','%s','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f',%ld,'%s','1',%d", strMeasurementID.c_str(), (strMeasurementID + "-Y").c_str(), dataDymY.DiagnosisPk, dataDymY.IntegratPk, dataDymY.IntegratRMS, dataDymY.RmsValues, - dataDymY.EnvelopEnergy, dataDymY.Amp1, dataDymY.Amp2, dataDymY.Amp3, dataDymY.Amp4, dataDymY.Amp5, dataDymY.Phase1, dataDymY.Phase2, dataDymY.Phase3, dataDymY.Phase4, staticIndex, nowTimetamp.c_str(), nodeResend); + sprintf(insertSql, "'%s','%s','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f',%ld,'%s','1',%d,%s", strMeasurementID.c_str(), (strMeasurementID + "-Y").c_str(), dataDymY.DiagnosisPk, dataDymY.IntegratPk, dataDymY.IntegratRMS, dataDymY.RmsValues, + dataDymY.EnvelopEnergy, dataDymY.Amp1, dataDymY.Amp2, dataDymY.Amp3, dataDymY.Amp4, dataDymY.Amp5, dataDymY.Phase1, dataDymY.Phase2, dataDymY.Phase3, dataDymY.Phase4, staticIndex, nowTimetamp.c_str(), nodeResend,nodetimestamp); sqlite_db_ctrl::instance().InsertData(szTableName, insertSql); if (0 == sqlite_db_ctrl::instance().GetTableRows(T_DATA_INFO(TNAME), whereCon)) @@ -419,7 +424,7 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) { sqlite_db_ctrl::instance().UpdateTableData(T_DATA_INFO(TNAME), updateSql, whereCon); } else { memset(whereCon, 0x00, sizeof(whereCon)); - sprintf(whereCon, "channelID='%s' and timeStamp = '%s' and nodeResend = 0", (strMeasurementID + "-Y").c_str(), strTime.c_str()); + sprintf(whereCon, "channelID='%s' and timeStamp = '%s' and nodeResend = 0 and nodeTimestamp = '%s'", (strMeasurementID + "-Y").c_str(), strTime.c_str(),nodetimestamp); sqlite_db_ctrl::instance().UpdateTableData(szTableName, updateSql, whereCon); memset(whereCon, 0x00, sizeof(whereCon)); sprintf(whereCon, "channelID='%s' ", (strMeasurementID + "-Y").c_str()); @@ -498,14 +503,14 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) { memset(updateSql, 0, 1024); sprintf(updateSql, "diagnosisPk='%f',integratPk='%f',integratRMS='%f',rmsValues='%f',envelopEnergy='%f',\ - Amp1='%f',Amp2='%f',Amp3='%f',Amp4='%f',Amp5='%f',Phase1='%f',Phase2='%f',Phase3='%f',Phase4='%f',timeStamp='%s',StaticIndex = %ld,nodeResend = %d ", + Amp1='%f',Amp2='%f',Amp3='%f',Amp4='%f',Amp5='%f',Phase1='%f',Phase2='%f',Phase3='%f',Phase4='%f',timeStamp='%s',StaticIndex = %ld,nodeResend = %d, nodeTimestamp = '%s' ", dataDymZ.DiagnosisPk, dataDymZ.IntegratPk, dataDymZ.IntegratRMS, dataDymZ.RmsValues, dataDymZ.EnvelopEnergy, dataDymZ.Amp1, dataDymZ.Amp2, dataDymZ.Amp3, dataDymZ.Amp4, dataDymZ.Amp5, dataDymZ.Phase1, dataDymZ.Phase2, dataDymZ.Phase3, dataDymZ.Phase4, - nowTimetamp.c_str(), staticIndex, nodeResend); + nowTimetamp.c_str(), staticIndex, nodeResend,nodetimestamp); if (/*0 == sqlite_db_ctrl::instance().GetTableRows(T_DATA_INFO(TNAME), whereCon)*/ (Count * 3 < SAVE_COUNT && lTime < OneWeek) || strTime.size() == 0 ) { char insertSql[1024] = {0}; memset(insertSql, 0x00, sizeof(insertSql)); - sprintf(insertSql, "'%s','%s','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f',%ld,'%s','1',%d", strMeasurementID.c_str(), (strMeasurementID + "-Z").c_str(), dataDymZ.DiagnosisPk, dataDymZ.IntegratPk, dataDymZ.IntegratRMS, dataDymZ.RmsValues, - dataDymZ.EnvelopEnergy, dataDymZ.Amp1, dataDymZ.Amp2, dataDymZ.Amp3, dataDymZ.Amp4, dataDymZ.Amp5, dataDymZ.Phase1, dataDymZ.Phase2, dataDymZ.Phase3, dataDymZ.Phase4, staticIndex, nowTimetamp.c_str(), nodeResend); + sprintf(insertSql, "'%s','%s','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f',%ld,'%s','1',%d,'%s'", strMeasurementID.c_str(), (strMeasurementID + "-Z").c_str(), dataDymZ.DiagnosisPk, dataDymZ.IntegratPk, dataDymZ.IntegratRMS, dataDymZ.RmsValues, + dataDymZ.EnvelopEnergy, dataDymZ.Amp1, dataDymZ.Amp2, dataDymZ.Amp3, dataDymZ.Amp4, dataDymZ.Amp5, dataDymZ.Phase1, dataDymZ.Phase2, dataDymZ.Phase3, dataDymZ.Phase4, staticIndex, nowTimetamp.c_str(), nodeResend,nodetimestamp); sqlite_db_ctrl::instance().InsertData(szTableName, insertSql); if (0 == sqlite_db_ctrl::instance().GetTableRows(T_DATA_INFO(TNAME), whereCon)) @@ -514,7 +519,7 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) { sqlite_db_ctrl::instance().UpdateTableData(T_DATA_INFO(TNAME), updateSql, whereCon); } else { memset(whereCon, 0x00, sizeof(whereCon)); - sprintf(whereCon, "channelID='%s' and timeStamp = '%s' and nodeResend = 0", (strMeasurementID + "-Z").c_str(), strTime.c_str()); + sprintf(whereCon, "channelID='%s' and timeStamp = '%s' and nodeResend = 0 and nodeTimestamp = '%s'", (strMeasurementID + "-Z").c_str(), strTime.c_str(),nodetimestamp); sqlite_db_ctrl::instance().UpdateTableData(szTableName, updateSql, whereCon); memset(whereCon, 0x00, sizeof(whereCon)); sprintf(whereCon, "channelID='%s' ", (strMeasurementID + "-Z").c_str());