add web code
This commit is contained in:
parent
04c18e836f
commit
0de695ed4c
@ -373,6 +373,37 @@ struct Param_66 {
|
|||||||
int mSensorLooseEnable;
|
int mSensorLooseEnable;
|
||||||
Param_66() : mSensorLooseEnable(0){};
|
Param_66() : mSensorLooseEnable(0){};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct Param_67 {
|
||||||
|
int mMode;
|
||||||
|
int mPackageFlag;
|
||||||
|
std::vector<std::string> measurementID;
|
||||||
|
Param_67() : mMode(0),mPackageFlag(0){};
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Param_68 {
|
||||||
|
int lowSignal;
|
||||||
|
int signalThreshold;
|
||||||
|
int lowBatteryLevel;
|
||||||
|
int batteryThreshold;
|
||||||
|
Param_68():lowSignal(0),signalThreshold(0),lowBatteryLevel(0),batteryThreshold(0){};
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Param_69{
|
||||||
|
int threshold;
|
||||||
|
Param_69():threshold(0){};
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Param_70{
|
||||||
|
int mPackageFlag;
|
||||||
|
Param_70():mPackageFlag(0){};
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Param_71{
|
||||||
|
int mPackageFlag;
|
||||||
|
Param_71():mPackageFlag(0){};
|
||||||
|
};
|
||||||
|
|
||||||
// 无线温度传感器(蓝牙)
|
// 无线温度传感器(蓝牙)
|
||||||
struct Param_100{
|
struct Param_100{
|
||||||
int mPackageFlag;
|
int mPackageFlag;
|
||||||
|
|||||||
@ -198,14 +198,11 @@ void SqliteDB::SqliteInit(const char *pDbName) {
|
|||||||
if(iRet == 0){
|
if(iRet == 0){
|
||||||
CreateTable("ALTER TABLE t_datastatic_info ADD COLUMN 'nodeTimeStamp'");
|
CreateTable("ALTER TABLE t_datastatic_info ADD COLUMN 'nodeTimeStamp'");
|
||||||
}
|
}
|
||||||
iRet = GetTableRows(" sqlite_master "," name = 't_datastatic_info' and sql LIKE '%minmumBatteryVoltageType%' ");
|
iRet = GetTableRows(" sqlite_master "," name = 't_datastatic_info' and sql LIKE '%comprehensiveRSSI%' ");
|
||||||
if(iRet == 0){
|
if(iRet == 0){
|
||||||
CreateTable("ALTER TABLE t_datastatic_info ADD COLUMN 'minmumBatteryVoltageType'");
|
CreateTable("ALTER TABLE t_datastatic_info ADD COLUMN 'comprehensiveRSSI'");
|
||||||
}
|
|
||||||
iRet = GetTableRows(" sqlite_master "," name = 't_datastatic_info' and sql LIKE '%instantaneousBatteryVoltage%' ");
|
|
||||||
if(iRet == 0){
|
|
||||||
CreateTable("ALTER TABLE t_datastatic_info ADD COLUMN 'instantaneousBatteryVoltage'");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(sql_exec, 0, 2048);
|
memset(sql_exec, 0, 2048);
|
||||||
// clang-format off
|
// 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);",
|
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);",
|
||||||
@ -359,8 +356,8 @@ void SqliteDB::CreatedataStatictable(const char *ptableName) {
|
|||||||
char sql_exec[2048];
|
char sql_exec[2048];
|
||||||
//创建传感器数据存储表
|
//创建传感器数据存储表
|
||||||
memset(sql_exec, 0, 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,%s,%s,%s);", ptableName, T_DATASTATIC_INFO(DATANODENO), T_DATASTATIC_INFO(CHANNELID), T_DATASTATIC_INFO(TEMTOP), T_DATASTATIC_INFO(TEMBOT), T_DATASTATIC_INFO(DIP),
|
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,%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","minmumBatteryVoltageType","instantaneousBatteryVoltage");
|
T_DATASTATIC_INFO(VOLTAGE), "zigbeeSignal", "StaticIndex", T_DATASTATIC_INFO(TIMESTAMP), "sendMsg", "nodeResend", "zigbeeSignalNode", "statisticType", "timing", "nodeTimestamp","minmumBatteryVoltageType","instantaneousBatteryVoltage","comprehensiveRSSI");
|
||||||
CreateTable(sql_exec);
|
CreateTable(sql_exec);
|
||||||
memset(sql_exec, 0, 2048);
|
memset(sql_exec, 0, 2048);
|
||||||
sprintf(sql_exec, "CREATE INDEX %s_1 ON %s (%s)", ptableName, ptableName, T_DATA_INFO(DATANODENO));
|
sprintf(sql_exec, "CREATE INDEX %s_1 ON %s (%s)", ptableName, ptableName, T_DATA_INFO(DATANODENO));
|
||||||
|
|||||||
@ -41,7 +41,7 @@ public:
|
|||||||
|
|
||||||
// web command parse2
|
// web command parse2
|
||||||
std::string JsonCmd_Cgi_26(Param_26 ¶m);
|
std::string JsonCmd_Cgi_26(Param_26 ¶m);
|
||||||
std::string JsonCmd_Cgi_27(Param_27 ¶m);
|
std::string JsonCmd_Cgi_27(std::vector<Param_27> ¶m);
|
||||||
std::string JsonCmd_Cgi_28(Param_28 ¶m);
|
std::string JsonCmd_Cgi_28(Param_28 ¶m);
|
||||||
std::string JsonCmd_Cgi_29(Param_29 ¶m); //获取原始数据
|
std::string JsonCmd_Cgi_29(Param_29 ¶m); //获取原始数据
|
||||||
std::string JsonCmd_Cgi_30(Param_30 ¶m); //获取频域数据
|
std::string JsonCmd_Cgi_30(Param_30 ¶m); //获取频域数据
|
||||||
@ -75,6 +75,11 @@ public:
|
|||||||
std::string JsonCmd_Cgi_64(Param_64 ¶m);
|
std::string JsonCmd_Cgi_64(Param_64 ¶m);
|
||||||
std::string JsonCmd_Cgi_65(Param_65 ¶m);
|
std::string JsonCmd_Cgi_65(Param_65 ¶m);
|
||||||
std::string JsonCmd_Cgi_66(Param_66 ¶m);
|
std::string JsonCmd_Cgi_66(Param_66 ¶m);
|
||||||
|
std::string JsonCmd_Cgi_67(Param_67 ¶m);
|
||||||
|
std::string JsonCmd_Cgi_68(Param_68 ¶m);
|
||||||
|
std::string JsonCmd_Cgi_69(Param_69 ¶m);
|
||||||
|
std::string JsonCmd_Cgi_70(Param_70 ¶m);
|
||||||
|
std::string JsonCmd_Cgi_71(Param_71 ¶m);
|
||||||
|
|
||||||
// 无线温度传感器(蓝牙)
|
// 无线温度传感器(蓝牙)
|
||||||
std::string JsonCmd_Cgi_100(Param_100 ¶m);
|
std::string JsonCmd_Cgi_100(Param_100 ¶m);
|
||||||
|
|||||||
@ -244,11 +244,11 @@ std::string JsonData::JsonCmd_Cgi_09(Param_09 ¶m) {
|
|||||||
jsStaticData["ChannelType"] = "STATUS";
|
jsStaticData["ChannelType"] = "STATUS";
|
||||||
jsStaticData["ChannelId"] = vecRes[1];
|
jsStaticData["ChannelId"] = vecRes[1];
|
||||||
jsStaticData["TimeStamp"] = vecRes[8];
|
jsStaticData["TimeStamp"] = vecRes[8];
|
||||||
jsStaticData["battery"] = vecRes[14];
|
jsStaticData["battery"] = vecRes[15];
|
||||||
jsStaticData["MeasurementID"] = strMeasurementID;
|
jsStaticData["MeasurementID"] = strMeasurementID;
|
||||||
jsStaticData["dataNodeNo"] = arrResAll[i][0];
|
jsStaticData["dataNodeNo"] = arrResAll[i][0];
|
||||||
jsStaticData["ShortAddr"] = strShortAddr;
|
jsStaticData["ShortAddr"] = strShortAddr;
|
||||||
jsStaticData["status"] = vecRes[12];
|
jsStaticData["status"] = vecRes[13];
|
||||||
jsStaticData["loose"] = "0";
|
jsStaticData["loose"] = "0";
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -218,7 +218,7 @@ std::string JsonData::JsonCmd_Cgi_54(Param_54 ¶m) {
|
|||||||
return show_value_.write(jsonVal);
|
return show_value_.write(jsonVal);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string JsonData::JsonCmd_Cgi_27(Param_27 ¶m) {
|
std::string JsonData::JsonCmd_Cgi_27(std::vector<Param_27> ¶m) {
|
||||||
Json::Value jsonVal;
|
Json::Value jsonVal;
|
||||||
jsonVal.clear();
|
jsonVal.clear();
|
||||||
|
|
||||||
@ -228,33 +228,35 @@ std::string JsonData::JsonCmd_Cgi_27(Param_27 ¶m) {
|
|||||||
jsonVal["message"] = " ";
|
jsonVal["message"] = " ";
|
||||||
char whereCon[128] = {0};
|
char whereCon[128] = {0};
|
||||||
char localtimestamp[32] = {0};
|
char localtimestamp[32] = {0};
|
||||||
if (param.mDataNodeNo.length() > 0 && param.mType == "DELETE") {
|
for (size_t i = 0; i < param.size(); i++)
|
||||||
sprintf(whereCon, "%s= '%s'", T_SENSOR_INFO(DATANODENO), param.mDataNodeNo.c_str());
|
{
|
||||||
|
if (param[i].mDataNodeNo.length() > 0 && param[i].mType == "DELETE") {
|
||||||
|
sprintf(whereCon, "%s= '%s'", T_SENSOR_INFO(DATANODENO), param[i].mDataNodeNo.c_str());
|
||||||
sqlite_db_ctrl::instance().DeleteTableData(T_SENSOR_INFO(TNAME), whereCon);
|
sqlite_db_ctrl::instance().DeleteTableData(T_SENSOR_INFO(TNAME), whereCon);
|
||||||
memset(whereCon,0,sizeof(whereCon));
|
memset(whereCon,0,sizeof(whereCon));
|
||||||
sprintf(whereCon, "%s= '%s'", T_SENSOR_INFO(DATANODENO), param.mMeasurementID.c_str());
|
sprintf(whereCon, "%s= '%s'", T_SENSOR_INFO(DATANODENO), param[i].mMeasurementID.c_str());
|
||||||
sqlite_db_ctrl::instance().DeleteTableData(T_DATA_INFO(TNAME), whereCon);
|
sqlite_db_ctrl::instance().DeleteTableData(T_DATA_INFO(TNAME), whereCon);
|
||||||
sqlite_db_ctrl::instance().DeleteTableData(T_DATASTATIC_INFO(TNAME), whereCon);
|
sqlite_db_ctrl::instance().DeleteTableData(T_DATASTATIC_INFO(TNAME), whereCon);
|
||||||
sqlite_db_ctrl::instance().DeleteTableData(T_BATTERY_INFO(TNAME), whereCon);
|
sqlite_db_ctrl::instance().DeleteTableData(T_BATTERY_INFO(TNAME), whereCon);
|
||||||
sqlite_db_ctrl::instance().DeleteTableData(" t_battery_history ", whereCon);
|
sqlite_db_ctrl::instance().DeleteTableData(" t_battery_history ", whereCon);
|
||||||
memset(whereCon,0,sizeof(whereCon));
|
memset(whereCon,0,sizeof(whereCon));
|
||||||
sprintf(whereCon, "channelID like '%%%s%%'", param.mMeasurementID.c_str());
|
sprintf(whereCon, "channelID like '%%%s%%'", param[i].mMeasurementID.c_str());
|
||||||
sqlite_db_ctrl::instance().DeleteTableData(" t_data_waveSend ", whereCon);
|
sqlite_db_ctrl::instance().DeleteTableData(" t_data_waveSend ", whereCon);
|
||||||
char szTableName[50] = {0x00};
|
char szTableName[50] = {0x00};
|
||||||
sprintf(szTableName, "DROP TABLE t_data_%s", param.mMeasurementID.c_str());
|
sprintf(szTableName, "DROP TABLE t_data_%s", param[i].mMeasurementID.c_str());
|
||||||
sqlite_db_ctrl::instance().CreateTable(szTableName);
|
sqlite_db_ctrl::instance().CreateTable(szTableName);
|
||||||
memset(szTableName, 0x00, sizeof(szTableName));
|
memset(szTableName, 0x00, sizeof(szTableName));
|
||||||
sprintf(szTableName, "DROP TABLE t_dataStatic_%s", param.mMeasurementID.c_str());
|
sprintf(szTableName, "DROP TABLE t_dataStatic_%s", param[i].mMeasurementID.c_str());
|
||||||
sqlite_db_ctrl::instance().CreateTable(szTableName);
|
sqlite_db_ctrl::instance().CreateTable(szTableName);
|
||||||
uint16_t short_addr;
|
uint16_t short_addr;
|
||||||
char *end_ptr = NULL;
|
char *end_ptr = NULL;
|
||||||
short_addr = strtol(param.mShortAddr.c_str(), &end_ptr, 16);
|
short_addr = strtol(param[i].mShortAddr.c_str(), &end_ptr, 16);
|
||||||
zlog_warn(zct,"delete short_addr = %02x%02x",UINT16_HIGH(short_addr),UINT16_LOW(short_addr));
|
zlog_warn(zct,"delete short_addr = %02x%02x",UINT16_HIGH(short_addr),UINT16_LOW(short_addr));
|
||||||
scheduler::instance().ClearScheduleCfg(short_addr);
|
scheduler::instance().ClearScheduleCfg(short_addr);
|
||||||
|
|
||||||
} else if (param.mDataNodeNo.length() > 0 && param.mType == "CORRECT") {
|
} else if (param[i].mDataNodeNo.length() > 0 && param[i].mType == "CORRECT") {
|
||||||
char updateSql[1024] = {0};
|
char updateSql[1024] = {0};
|
||||||
sprintf(whereCon, "%s= '%s'", T_SENSOR_INFO(DATANODENO), param.mDataNodeNo.c_str());
|
sprintf(whereCon, "%s= '%s'", T_SENSOR_INFO(DATANODENO), param[i].mDataNodeNo.c_str());
|
||||||
GetTimeNet(localtimestamp, 1);
|
GetTimeNet(localtimestamp, 1);
|
||||||
sprintf(updateSql, "LooseValue = '0,2,");
|
sprintf(updateSql, "LooseValue = '0,2,");
|
||||||
std::string strUpdateSql = std::string(updateSql) + std::string(localtimestamp) + "' ";
|
std::string strUpdateSql = std::string(updateSql) + std::string(localtimestamp) + "' ";
|
||||||
@ -263,6 +265,7 @@ std::string JsonData::JsonCmd_Cgi_27(Param_27 ¶m) {
|
|||||||
jsonVal["success"] = false;
|
jsonVal["success"] = false;
|
||||||
jsonVal["message"] = "没有传感器号";
|
jsonVal["message"] = "没有传感器号";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return show_value_.write(jsonVal);
|
return show_value_.write(jsonVal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1232,3 +1232,98 @@ std::string JsonData::JsonCmd_Cgi_66(Param_66 ¶m) {
|
|||||||
|
|
||||||
return show_value_.write(jsonVal);
|
return show_value_.write(jsonVal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string JsonData::JsonCmd_Cgi_67(Param_67 ¶m){
|
||||||
|
Json::Value jsonVal;
|
||||||
|
jsonVal.clear();
|
||||||
|
|
||||||
|
jsonVal[JSON_FIELD_CMD] = "67";
|
||||||
|
jsonVal["success"] = true;
|
||||||
|
jsonVal["message"] = " ";
|
||||||
|
if(param.mMode == 0){
|
||||||
|
array_t arrResAll = sqlite_db_ctrl::instance().GetDataMultiLine(T_SENSOR_INFO(TNAME), " dataNodeNo,MeasurementID,zigbeeShortAddr ", NULL);
|
||||||
|
int nSize = arrResAll.size();
|
||||||
|
if (nSize > 0) {
|
||||||
|
int packgeNo = param.mPackageFlag;
|
||||||
|
int packgeMax = 0;
|
||||||
|
int packgeNum = 0;
|
||||||
|
jsonVal["package"] = packgeNo;
|
||||||
|
int lastSize = nSize % 10;
|
||||||
|
int index = nSize / 10;
|
||||||
|
if (lastSize > 0 && index > 0) {
|
||||||
|
packgeMax = index + 1;
|
||||||
|
if (packgeNo + 1 == packgeMax) {
|
||||||
|
packgeNum = nSize;
|
||||||
|
jsonVal["packageMax"] = index + 1;
|
||||||
|
} else {
|
||||||
|
packgeNum = (packgeNo + 1) * 10;
|
||||||
|
jsonVal["packageMax"] = index + 1;
|
||||||
|
}
|
||||||
|
} else if (lastSize == 0 && index > 0) {
|
||||||
|
packgeNum = (packgeNo + 1) * 10;
|
||||||
|
packgeMax = index;
|
||||||
|
jsonVal["packageMax"] = index;
|
||||||
|
} else if (lastSize > 0 && index == 0) {
|
||||||
|
packgeNum = lastSize;
|
||||||
|
packgeMax = index + 1;
|
||||||
|
jsonVal["packageMax"] = index + 1;
|
||||||
|
}
|
||||||
|
Json::Value jsSensor;
|
||||||
|
for (int i = packgeNo * 10; i < packgeNum; i++) {
|
||||||
|
std::string strMeasurementID = arrResAll[i][1];
|
||||||
|
std::string strShortAddr = arrResAll[i][2];
|
||||||
|
char whereCon[512] = {};
|
||||||
|
char selectCon[128] = {0};
|
||||||
|
char column[128] = {0};
|
||||||
|
char tablename[256] = {0};
|
||||||
|
sprintf(selectCon, " t_sensor_info.MeasurementID='%s' ", strMeasurementID.c_str());
|
||||||
|
sprintf(column, " _debug_info.*,t_sensor_info.status,t_sensor_info.dataNodeName ");
|
||||||
|
sprintf(tablename, " t_debug_info LEFT JOIN t_sensor_info ");
|
||||||
|
array_t arrRes;
|
||||||
|
arrRes = sqlite_db_ctrl::instance().GetDataMultiLineTransaction(tablename, "*", selectCon);
|
||||||
|
int iResult = arrRes.size();
|
||||||
|
if (iResult > 0) {
|
||||||
|
for (int j = 0; j < iResult; j++) {
|
||||||
|
Json::Value jsChannelData;
|
||||||
|
jsChannelData["dataNodeName"] = arrRes[j][9];
|
||||||
|
jsChannelData["zigbeeAddr"] = arrRes[j][1];
|
||||||
|
jsChannelData["MeasurementID"] = arrRes[j][0];
|
||||||
|
jsChannelData["status"] = atoi(arrRes[j][0].c_str());
|
||||||
|
jsChannelData["gatewayRssi"] = atoi(arrRes[j][2].c_str());
|
||||||
|
jsChannelData["dataNodeRssi"] = atoi(arrRes[j][3].c_str());
|
||||||
|
jsChannelData["comprehensiveRssi"] = atof(arrRes[j][4].c_str());
|
||||||
|
jsChannelData["minimumVoltage"] = atof(arrRes[j][5].c_str());
|
||||||
|
jsChannelData["currentBatteryLevel"] = atof(arrRes[j][6].c_str());
|
||||||
|
jsChannelData["TimeStamp"] = arrRes[j][7];
|
||||||
|
jsSensor.append(jsChannelData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (jsSensor.size() == 0) {
|
||||||
|
jsonVal["success"] = false;
|
||||||
|
jsonVal["content"].resize(0);
|
||||||
|
} else {
|
||||||
|
jsonVal["content"] = (jsSensor);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
jsonVal["success"] = false;
|
||||||
|
jsonVal["content"].resize(0);
|
||||||
|
}
|
||||||
|
}else if(param.mMode == 1){//启动传感器调试
|
||||||
|
|
||||||
|
}
|
||||||
|
return show_value_.write(jsonVal);
|
||||||
|
}
|
||||||
|
std::string JsonData::JsonCmd_Cgi_68(Param_68 ¶m){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string JsonData::JsonCmd_Cgi_69(Param_69 ¶m){
|
||||||
|
|
||||||
|
}
|
||||||
|
std::string JsonData::JsonCmd_Cgi_70(Param_70 ¶m){
|
||||||
|
|
||||||
|
}
|
||||||
|
std::string JsonData::JsonCmd_Cgi_71(Param_71 ¶m){
|
||||||
|
|
||||||
|
}
|
||||||
@ -56,6 +56,11 @@ enum WebCommand {
|
|||||||
kFeatureSend = 64,
|
kFeatureSend = 64,
|
||||||
kFeatureWaveCount = 65,
|
kFeatureWaveCount = 65,
|
||||||
KSensorLoose = 66,
|
KSensorLoose = 66,
|
||||||
|
KDebugSensor = 67, // 调试传感器
|
||||||
|
KWaveRule = 68, // 波形规则配置
|
||||||
|
KTrigerWaveUpload = 69, // 触发波形上传
|
||||||
|
KProcessLog = 70, // 获取应用程序运行日志
|
||||||
|
KSystemLog = 71, // 获取系统日志
|
||||||
|
|
||||||
//CMT TCP
|
//CMT TCP
|
||||||
kGateWayVersion = 80,
|
kGateWayVersion = 80,
|
||||||
|
|||||||
@ -173,11 +173,15 @@ std::string LocalServer::HandleCgi_cmd(std::string &pData) {
|
|||||||
return data;
|
return data;
|
||||||
} break;
|
} break;
|
||||||
case kWebDeleteTransducerInfo: {
|
case kWebDeleteTransducerInfo: {
|
||||||
Param_27 param;
|
std::vector<Param_27> param;
|
||||||
param.mDataNodeNo = recvBody["dataNodeNo"].asString();
|
for (size_t i = 0; i < recvBody.size(); i++) {
|
||||||
param.mShortAddr = recvBody["shortAddr"].asString();
|
Param_27 p;
|
||||||
param.mMeasurementID = recvBody["MeasurementID"].asString();
|
p.mDataNodeNo = recvBody[i]["dataNodeNo"].asString();
|
||||||
param.mType = recvBody["type"].asString();
|
p.mShortAddr = recvBody[i]["shortAddr"].asString();
|
||||||
|
p.mMeasurementID = recvBody[i]["MeasurementID"].asString();
|
||||||
|
p.mType = recvBody[i]["type"].asString();
|
||||||
|
param.push_back(p);
|
||||||
|
}
|
||||||
JsonData jd;
|
JsonData jd;
|
||||||
std::string data = jd.JsonCmd_Cgi_27(param);
|
std::string data = jd.JsonCmd_Cgi_27(param);
|
||||||
return data;
|
return data;
|
||||||
@ -537,6 +541,27 @@ std::string LocalServer::HandleCgi_cmd(std::string &pData) {
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case KDebugSensor:{
|
||||||
|
JsonData jd;
|
||||||
|
Param_67 param;
|
||||||
|
std::string type = recvBody["type"].asString();
|
||||||
|
if (0 == type.compare("SET")) {
|
||||||
|
param.mMode = 1;
|
||||||
|
Json::Value recvDataNodeNo = recvBody["DataNodeNo"];
|
||||||
|
if (recvDataNodeNo.size() > 0)
|
||||||
|
{
|
||||||
|
for (size_t i = 0; i < recvDataNodeNo.size(); i++) {
|
||||||
|
param.measurementID.push_back(recvDataNodeNo[i].asString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (0 == type.compare("GET")) {
|
||||||
|
param.mMode = 0;
|
||||||
|
}
|
||||||
|
std::string data = jd.JsonCmd_Cgi_67(param);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case kGetSensorInfo:{
|
case kGetSensorInfo:{
|
||||||
JsonData jd;
|
JsonData jd;
|
||||||
Param_100 param;
|
Param_100 param;
|
||||||
|
|||||||
@ -247,6 +247,7 @@ private:
|
|||||||
std::string m_strDestShortAddr;
|
std::string m_strDestShortAddr;
|
||||||
uint16_t wave_shortAddr;
|
uint16_t wave_shortAddr;
|
||||||
int now_task;
|
int now_task;
|
||||||
|
struct timespec wave_recv_start,wave_recv_end;
|
||||||
|
|
||||||
int waittime;
|
int waittime;
|
||||||
enum { BUF_LENGTH = 40960 };
|
enum { BUF_LENGTH = 40960 };
|
||||||
|
|||||||
@ -32,6 +32,49 @@ void Uart::RecordBattery(std::string &strLongAddr, DataRecvStatic &dataStatic, s
|
|||||||
char insertSql[1024] = {0};
|
char insertSql[1024] = {0};
|
||||||
sprintf(insertSql, "'%s','%d','%f','%f','%f','%d','','','%s'", strLongAddr.c_str(), dataStatic.Dip, dataStatic.TemBot, dataStatic.nodeWorkTime, dataStatic.nodeSendTime, dataStatic.Voltage, nowTimetamp.c_str());
|
sprintf(insertSql, "'%s','%d','%f','%f','%f','%d','','','%s'", strLongAddr.c_str(), dataStatic.Dip, dataStatic.TemBot, dataStatic.nodeWorkTime, dataStatic.nodeSendTime, dataStatic.Voltage, nowTimetamp.c_str());
|
||||||
sqlite_db_ctrl::instance().InsertData(T_BATTERY_INFO(TNAME), insertSql);
|
sqlite_db_ctrl::instance().InsertData(T_BATTERY_INFO(TNAME), insertSql);
|
||||||
|
|
||||||
|
//计算综合信号强度
|
||||||
|
char tableName[64] = {0};
|
||||||
|
char whereCon[128] = {0};
|
||||||
|
sprintf(tableName,"t_dataStatic_%s",(char*)strLongAddr.c_str());
|
||||||
|
sprintf(whereCon, "dataNodeNo='%s' and zigbeeSignal <> '' and zigbeeSignalNode <> '' and comprehensiveRSSI = '' order by timeStamp desc limit 1", strLongAddr.c_str());
|
||||||
|
vec_t res_static = sqlite_db_ctrl::instance().GetDataSingleLine(tableName, " * ", whereCon);
|
||||||
|
if(res_static.size() < 1){
|
||||||
|
zlog_info(zct, "No static data found for dataNodeNo='%s' to calculate comprehensiveRSSI", strLongAddr.c_str());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
memset(whereCon, 0x00, sizeof(whereCon));
|
||||||
|
sprintf(whereCon,"data_nodeno like '%%%s%%' and timeStamp = '%s'", strLongAddr.c_str(), res_static[8].c_str());
|
||||||
|
vec_t package_length = sqlite_db_ctrl::instance().GetDataMultiLineOfOneColumn(" receive_wave_status ", " package_length ", whereCon);
|
||||||
|
int wave_dataLen = 0;
|
||||||
|
if (package_length.size() < 1)
|
||||||
|
{
|
||||||
|
zlog_info(zct, "No wave package_length found for dataNodeNo='%s' and timeStamp = '%s'", strLongAddr.c_str(), res_static[8].c_str());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (size_t i = 0; i < package_length.size(); i++){
|
||||||
|
wave_dataLen += atoi(package_length[i].c_str());
|
||||||
|
}
|
||||||
|
//信号质量计算:[传感器信号强度+网关信号强度]x[实际速率/标准速率(5kB/s)]
|
||||||
|
if (res_static.size() > 0){
|
||||||
|
int zigbeeSignal = atoi(res_static[6].c_str());
|
||||||
|
int zigbeeSignalNode = atoi(res_static[11].c_str());
|
||||||
|
float standardRate = 5000.0f; //5kB/s
|
||||||
|
float actualRate = 0.0f;
|
||||||
|
if (dataStatic.nodeSendTime > 0){
|
||||||
|
actualRate = (wave_dataLen / 1024.0f) / (dataStatic.nodeSendTime / 1000.0f); //单位:KB/s
|
||||||
|
}
|
||||||
|
float comprehensiveRSSI = (zigbeeSignal + zigbeeSignalNode) * (actualRate / standardRate);
|
||||||
|
zlog_info(zct, "dataNodeNo='%s',wave_dataLen=%d,nodeSendTime=%f,actualRate=%f", strLongAddr.c_str(), wave_dataLen, dataStatic.nodeSendTime, actualRate);
|
||||||
|
//更新综合信号强度到数据库
|
||||||
|
char updateSql[256] = {0};
|
||||||
|
memset(whereCon, 0x00, sizeof(whereCon));
|
||||||
|
sprintf(whereCon, "dataNodeNo='%s' and timeStamp = '%s'", strLongAddr.c_str(), res_static[8].c_str());
|
||||||
|
sprintf(updateSql, "comprehensiveRSSI = '%f'", comprehensiveRSSI);
|
||||||
|
sqlite_db_ctrl::instance().UpdateTableData(tableName, updateSql, whereCon);
|
||||||
|
zlog_info(zct, "dataNodeNo='%s',zigbeeSignal=%d,zigbeeSignalNode=%d,actualRate=%f,comprehensiveRSSI=%f", strLongAddr.c_str(), zigbeeSignal, zigbeeSignalNode, actualRate, comprehensiveRSSI);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Uart::DataExtract(RecvData *p, int id, unsigned int &lowbit, float &n) {
|
void Uart::DataExtract(RecvData *p, int id, unsigned int &lowbit, float &n) {
|
||||||
@ -143,7 +186,7 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) {
|
|||||||
DataExtract(pRecvData, 32, lowbit, n);
|
DataExtract(pRecvData, 32, lowbit, n);
|
||||||
dataStatic.nodeSendTime = lowbit * n;
|
dataStatic.nodeSendTime = lowbit * n;
|
||||||
dataStatic.nodeWorkTime = dataStatic.nodeWorkTime - dataStatic.nodeSendTime;
|
dataStatic.nodeWorkTime = dataStatic.nodeWorkTime - dataStatic.nodeSendTime;
|
||||||
|
zlog_info(zct, "nodeWorkTime = %f,nodeSendTime = %f", dataStatic.nodeWorkTime, dataStatic.nodeSendTime);
|
||||||
RecordBattery(strMeasurementID, dataStatic, nowTimetamp);
|
RecordBattery(strMeasurementID, dataStatic, nowTimetamp);
|
||||||
|
|
||||||
memset(buf, 0, sizeof(buf));
|
memset(buf, 0, sizeof(buf));
|
||||||
@ -244,24 +287,24 @@ int Uart::DealDataNodeFeature(const char *pData, int flag) {
|
|||||||
|
|
||||||
zlog_info(zct, "dataStatic.TemTop : %f dataStatic.TemBot : %f dataStatic.Dip :%d dataStatic.Voltage : %d", dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage);
|
zlog_info(zct, "dataStatic.TemTop : %f dataStatic.TemBot : %f dataStatic.Dip :%d dataStatic.Voltage : %d", dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage);
|
||||||
|
|
||||||
sprintf(updateSql, "temTop='%f',temBot='%f',dip='%d',voltage='%d',timeStamp='%s',StaticIndex = %ld, nodeResend = %d,zigbeeSignal = '',zigbeeSignalNode = '',statisticType = '%d',timing = '%d',,nodeTimestamp = '%s',minmumBatteryVoltageType = '%d',instantaneousBatteryVoltage = '%d' ", dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage,
|
sprintf(updateSql, "temTop='%f',temBot='%f',dip='%d',voltage='%d',timeStamp='%s',StaticIndex = %ld, nodeResend = %d,zigbeeSignal = '',zigbeeSignalNode = '',statisticType = '%d',timing = '%d',nodeTimestamp = '%s',minmumBatteryVoltageType = '%d',instantaneousBatteryVoltage = '%d' ", dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage,
|
||||||
nowTimetamp.c_str(), staticIndex, nodeResend, flag, timing, nodetimestamp, dataStatic.minmumBatteryVoltageType, dataStatic.instantaneousBatteryVoltage);
|
nowTimetamp.c_str(), staticIndex, nodeResend, flag, timing, nodetimestamp, dataStatic.minmumBatteryVoltageType, dataStatic.instantaneousBatteryVoltage);
|
||||||
sprintf(whereCon, "channelID='%s' ", (strMeasurementID + "-S").c_str());
|
sprintf(whereCon, "channelID='%s' ", (strMeasurementID + "-S").c_str());
|
||||||
if (/*0 == sqlite_db_ctrl::instance().GetTableRows(T_DATASTATIC_INFO(TNAME), whereCon)*/ (Count * 3 < SAVE_COUNT && lTime < OneWeek) || strTime.size() == 0) {
|
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");
|
zlog_info(zct, "insert static data to sql");
|
||||||
char insertSql[1024] = {0};
|
char insertSql[1024] = {0};
|
||||||
sprintf(insertSql, "'%s','%s','%f','%f','%d','%d','',%ld,'%s','1',%d,'','%d','%d','%s','%d','%d'", strMeasurementID.c_str(), (strMeasurementID + "-S").c_str(), dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, staticIndex, nowTimetamp.c_str(), nodeResend, flag,
|
sprintf(insertSql, "'%s','%s','%f','%f','%d','%d','',%ld,'%s','1',%d,'','%d','%d','%s','%d','%d',''", strMeasurementID.c_str(), (strMeasurementID + "-S").c_str(), dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, staticIndex, nowTimetamp.c_str(), nodeResend, flag,
|
||||||
timing,nodetimestamp, dataStatic.minmumBatteryVoltageType, dataStatic.instantaneousBatteryVoltage);
|
timing,nodetimestamp, dataStatic.minmumBatteryVoltageType, dataStatic.instantaneousBatteryVoltage);
|
||||||
sqlite_db_ctrl::instance().InsertData(szTableName, insertSql);
|
sqlite_db_ctrl::instance().InsertData(szTableName, insertSql);
|
||||||
|
|
||||||
if (0 == sqlite_db_ctrl::instance().GetTableRows(T_DATASTATIC_INFO(TNAME), whereCon)) { // First Connect
|
if (0 == sqlite_db_ctrl::instance().GetTableRows(T_DATASTATIC_INFO(TNAME), whereCon)) { // First Connect
|
||||||
char insertSql[1024] = {0};
|
char insertSql[1024] = {0};
|
||||||
sprintf(insertSql, "'%s','%s','%f','%f','%d','%d','',%ld,'%s','1',%d,%s,'%d','%d'", strMeasurementID.c_str(), (strMeasurementID + "-S").c_str(), dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, staticIndex, nowTimetamp.c_str(), nodeResend,nodetimestamp, dataStatic.minmumBatteryVoltageType, dataStatic.instantaneousBatteryVoltage);
|
sprintf(insertSql, "'%s','%s','%f','%f','%d','%d','',%ld,'%s','1',%d,%s,'%d'", 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().InsertData(T_DATASTATIC_INFO(TNAME), insertSql);
|
||||||
sqlite_db_ctrl::instance().CalculateBattery();
|
sqlite_db_ctrl::instance().CalculateBattery();
|
||||||
} else {
|
} else {
|
||||||
memset(updateSql, 0x00, sizeof(updateSql));
|
memset(updateSql, 0x00, sizeof(updateSql));
|
||||||
sprintf(updateSql, "temTop='%f',temBot='%f',dip='%d',voltage='%d',timeStamp='%s',StaticIndex = %ld,nodeTimestamp = '%s',minmumBatteryVoltageType = '%d',instantaneousBatteryVoltage = '%d' ", dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, nowTimetamp.c_str(), staticIndex,nodetimestamp, dataStatic.minmumBatteryVoltageType, dataStatic.instantaneousBatteryVoltage);
|
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);
|
sqlite_db_ctrl::instance().UpdateTableData(T_DATASTATIC_INFO(TNAME), updateSql, whereCon);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -785,6 +828,7 @@ std::vector<float> Uart::DealData(int iChannel, float coe, unsigned int sampleRa
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Uart::DealWave() {
|
void Uart::DealWave() {
|
||||||
|
|
||||||
std::string strShortAddr = "";
|
std::string strShortAddr = "";
|
||||||
std::string strShortAddrTemp;
|
std::string strShortAddrTemp;
|
||||||
std::string strLongAddr = "";
|
std::string strLongAddr = "";
|
||||||
@ -793,7 +837,8 @@ void Uart::DealWave() {
|
|||||||
std::string strProduct = "";
|
std::string strProduct = "";
|
||||||
std::vector<float> vecDataX, vecDataY, vecDataZ;
|
std::vector<float> vecDataX, vecDataY, vecDataZ;
|
||||||
if (wave_trans_) { //对每个传感器的每个通道进行遍历然后处理数据,例如:传感器1x轴的数据处理完后,再去处理y轴的。传感器1的所有数据处理完后,再处理传感器2的
|
if (wave_trans_) { //对每个传感器的每个通道进行遍历然后处理数据,例如:传感器1x轴的数据处理完后,再去处理y轴的。传感器1的所有数据处理完后,再处理传感器2的
|
||||||
char getzigbeeShortAddr[32] = {0};
|
|
||||||
|
char getzigbeeShortAddr[32] = {0}, tableName[64] = {0}, whereCon[128] = {0};
|
||||||
sprintf(getzigbeeShortAddr, "zigbeeShortAddr='%02x%02x'", (wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF);
|
sprintf(getzigbeeShortAddr, "zigbeeShortAddr='%02x%02x'", (wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF);
|
||||||
vec_t res = sqlite_db_ctrl::instance().GetDataSingleLine(T_SENSOR_INFO(TNAME), " * ", getzigbeeShortAddr);
|
vec_t res = sqlite_db_ctrl::instance().GetDataSingleLine(T_SENSOR_INFO(TNAME), " * ", getzigbeeShortAddr);
|
||||||
if (res.size() < 0)
|
if (res.size() < 0)
|
||||||
@ -809,7 +854,10 @@ void Uart::DealWave() {
|
|||||||
wave_trans_ = false;
|
wave_trans_ = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
sprintf(tableName, "t_dataStatic_%s", (char *)res[44].c_str());
|
||||||
|
memset(whereCon,0,sizeof(whereCon));
|
||||||
|
sprintf(whereCon, "dataNodeNo='%s' order by timeStamp desc limit 1", strMeasurementID.c_str());
|
||||||
|
std::string timestamp_last = sqlite_db_ctrl::instance().GetData(tableName, " timeStamp ", whereCon);
|
||||||
|
|
||||||
std::string ran = "";
|
std::string ran = "";
|
||||||
int n = 0;
|
int n = 0;
|
||||||
@ -853,25 +901,23 @@ void Uart::DealWave() {
|
|||||||
g_VecWaveDataZ.clear();
|
g_VecWaveDataZ.clear();
|
||||||
VecWaveDataZ.clear();
|
VecWaveDataZ.clear();
|
||||||
}
|
}
|
||||||
char localtimestamp[32] = {0};
|
|
||||||
GetTimeNet(localtimestamp, 1);
|
|
||||||
char insertSql[100] = {0x00};
|
char insertSql[100] = {0x00};
|
||||||
char whereCon[50] = {0x00};
|
memset(whereCon,0,sizeof(whereCon));
|
||||||
sprintf(whereCon, "MeasurementID='%s'",strMeasurementID.c_str());
|
sprintf(whereCon, "MeasurementID='%s'",strMeasurementID.c_str());
|
||||||
memset(whereCon, 0x00, sizeof(whereCon));
|
memset(whereCon, 0x00, sizeof(whereCon));
|
||||||
if (vecDataX.size() > 0)
|
if (vecDataX.size() > 0)
|
||||||
{
|
{
|
||||||
sprintf(insertSql, "'%s-X','%02x%02x','%s',0,'1','%s','' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp,"");
|
sprintf(insertSql, "'%s-X','%02x%02x','%s',%d,'1','%s','' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,(char*)timestamp_last.c_str(),g_mapCompress[strShortAddr].CountX,"");
|
||||||
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
|
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
|
||||||
}
|
}
|
||||||
if (vecDataY.size() > 0)
|
if (vecDataY.size() > 0)
|
||||||
{
|
{
|
||||||
sprintf(insertSql, "'%s-Y','%02x%02x','%s',0,'1','%s','' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp,"");
|
sprintf(insertSql, "'%s-Y','%02x%02x','%s',%d,'1','%s','' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,(char*)timestamp_last.c_str(),g_mapCompress[strShortAddr].CountY,"");
|
||||||
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
|
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
|
||||||
}
|
}
|
||||||
if (vecDataZ.size() > 0)
|
if (vecDataZ.size() > 0)
|
||||||
{
|
{
|
||||||
sprintf(insertSql, "'%s-Z','%02x%02x','%s',0,'1','%s','' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp,"");
|
sprintf(insertSql, "'%s-Z','%02x%02x','%s',%d,'1','%s','' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,(char*)timestamp_last.c_str(),g_mapCompress[strShortAddr].CountZ,"");
|
||||||
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
|
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
|
||||||
}
|
}
|
||||||
zlog_warn(zct,"waveCountX = %d, waveCountY = %d, waveCountZ = %d", vecDataX.size() , vecDataY.size(), vecDataZ.size());
|
zlog_warn(zct,"waveCountX = %d, waveCountY = %d, waveCountZ = %d", vecDataX.size() , vecDataY.size(), vecDataZ.size());
|
||||||
@ -885,7 +931,7 @@ void Uart::DealWave() {
|
|||||||
memset(whereCon, 0x00, sizeof(whereCon));
|
memset(whereCon, 0x00, sizeof(whereCon));
|
||||||
char updateSql[1024] = { 0 };
|
char updateSql[1024] = { 0 };
|
||||||
sprintf(updateSql, "resend = '%d'", iRet);
|
sprintf(updateSql, "resend = '%d'", iRet);
|
||||||
sprintf(whereCon, "short_addr='%02x%02x' and timestamp = '%s'", (wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp);
|
sprintf(whereCon, "short_addr='%02x%02x' and timestamp = '%s'", (wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,(char*)timestamp_last.c_str());
|
||||||
sqlite_db_ctrl::instance().UpdateTableData(" receive_wave_status ", updateSql, whereCon);
|
sqlite_db_ctrl::instance().UpdateTableData(" receive_wave_status ", updateSql, whereCon);
|
||||||
}
|
}
|
||||||
}else if ((vecDataX.size() > 0 && g_mapCompress[strShortAddr].CountX > 0) ||
|
}else if ((vecDataX.size() > 0 && g_mapCompress[strShortAddr].CountX > 0) ||
|
||||||
@ -897,7 +943,7 @@ void Uart::DealWave() {
|
|||||||
memset(whereCon, 0x00, sizeof(whereCon));
|
memset(whereCon, 0x00, sizeof(whereCon));
|
||||||
char updateSql[1024] = { 0 };
|
char updateSql[1024] = { 0 };
|
||||||
sprintf(updateSql, "resend = '%d'", iRet);
|
sprintf(updateSql, "resend = '%d'", iRet);
|
||||||
sprintf(whereCon, "short_addr='%02x%02x' and timestamp = '%s'", (wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp);
|
sprintf(whereCon, "short_addr='%02x%02x' and timestamp = '%s'", (wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,(char*)timestamp_last.c_str());
|
||||||
sqlite_db_ctrl::instance().UpdateTableData(" receive_wave_status ", updateSql, whereCon);
|
sqlite_db_ctrl::instance().UpdateTableData(" receive_wave_status ", updateSql, whereCon);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -908,7 +954,7 @@ void Uart::DealWave() {
|
|||||||
memset(whereCon, 0x00, sizeof(whereCon));
|
memset(whereCon, 0x00, sizeof(whereCon));
|
||||||
char updateSql[1024] = { 0 };
|
char updateSql[1024] = { 0 };
|
||||||
sprintf(updateSql, "resend = '%d'", iRet);
|
sprintf(updateSql, "resend = '%d'", iRet);
|
||||||
sprintf(whereCon, "short_addr='%02x%02x' and timestamp = '%s'", (wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp);
|
sprintf(whereCon, "short_addr='%02x%02x' and timestamp = '%s'", (wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,(char*)timestamp_last.c_str());
|
||||||
sqlite_db_ctrl::instance().UpdateTableData(" receive_wave_status ", updateSql, whereCon);
|
sqlite_db_ctrl::instance().UpdateTableData(" receive_wave_status ", updateSql, whereCon);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user