From 08cb041e29e1f127ef9e2da8da3cadc756eb79d5 Mon Sep 17 00:00:00 2001 From: zhangsheng Date: Fri, 22 Nov 2024 15:20:22 +0800 Subject: [PATCH] mqtt change string to json --- .vscode/settings.json | 3 ++- common/common_func.cpp | 4 +--- common/common_func.hpp | 3 ++- jsonparse/mqtt_cmd_parse.cpp | 17 +++++++---------- jsonparse/web_cmd_parse.cpp | 6 ++++-- mqttclient/mqtt_client.cpp | 3 ++- uart/uart.cpp | 3 --- uart/uart_feature_parse.cpp | 22 +++++++++++++--------- uart/uart_parameter_config.cpp | 3 --- 9 files changed, 31 insertions(+), 33 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a6c2fe0..1f0ac91 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -78,7 +78,8 @@ "complex": "cpp", "any": "cpp", "future": "cpp", - "typeindex": "cpp" + "typeindex": "cpp", + "variant": "cpp" }, "C_Cpp.errorSquiggles": "disabled" } \ No newline at end of file diff --git a/common/common_func.cpp b/common/common_func.cpp index e20926b..15abba6 100644 --- a/common/common_func.cpp +++ b/common/common_func.cpp @@ -42,7 +42,6 @@ #include #include #include -#include #include #include "global.hpp" #include "dbaccess/sql_db.hpp" @@ -953,7 +952,7 @@ int getSysIntValue(char *key) { return value; } -std::string GetSysStatus() { +std::string GetSysStatus(Json::Value &jsData) { long mem_used = -1; long mem_free = -1; long mem_total = -1; @@ -1009,7 +1008,6 @@ std::string GetSysStatus() { sprintf(key, "/sys/class/thermal/thermal_zone0/temp"); int temp = getSysIntValue(key); - Json::Value jsData; Json::FastWriter fw; jsData["dataNodeGatewayNo"] = GlobalConfig::MacAddr_G; jsData["cpuUserUse"] = rateUser; diff --git a/common/common_func.hpp b/common/common_func.hpp index ac7e793..22c2719 100644 --- a/common/common_func.hpp +++ b/common/common_func.hpp @@ -5,6 +5,7 @@ #include #include #include +#include typedef struct statfs DISK, *pDISK; @@ -378,7 +379,7 @@ void ZoneConfig(std::string zoneid); * @brief 获取系统基本信息 * @return std::string CPU MEM DISK info */ -std::string GetSysStatus(); +std::string GetSysStatus(Json::Value &jsData); bool CheckIP(const char* ip); diff --git a/jsonparse/mqtt_cmd_parse.cpp b/jsonparse/mqtt_cmd_parse.cpp index 1d70223..bdcdf73 100644 --- a/jsonparse/mqtt_cmd_parse.cpp +++ b/jsonparse/mqtt_cmd_parse.cpp @@ -508,8 +508,7 @@ int JsonData::JsonCmd_29() { jsBody["CommMode"] = "WiFi"; #endif jsBody["GateWayHwVesion"] = ReadStrByOpt(SYSTEMINFOFILE, "Version", "GateWayHwVesion"); - std::string dataBody = show_value_.write(jsBody); - jsonVal["cmdBody"] = dataBody; + jsonVal["cmdBody"] = jsBody; char localtimestamp[32] = {0}; GetTimeNet(localtimestamp, 1); jsonVal["timestamp"] = localtimestamp; @@ -604,8 +603,7 @@ int JsonData::JsonCmd_30(){ } jsBody["dataNodeGatewayNo"] = GlobalConfig::MacAddr_G; jsBody["dataNodeArray"] = jsArray; - std::string dataBody = show_value_.write(jsBody); - jsonVal["cmdBody"] = dataBody; + jsonVal["cmdBody"] = jsBody; char localtimestamp[32] = {0}; GetTimeNet(localtimestamp, 1); jsonVal["timestamp"] = localtimestamp; @@ -637,8 +635,7 @@ int JsonData::JsonCmd_31(){ jsBody["waveInterTime"] = waveInterTime; jsBody["maxSensorNum"] = maxSensorNum; jsBody["sensorCount"] = sensorCount; - std::string dataBody = show_value_.write(jsBody); - jsonVal["cmdBody"] = dataBody; + jsonVal["cmdBody"] = jsBody; char localtimestamp[32] = {0}; GetTimeNet(localtimestamp, 1); jsonVal["timestamp"] = localtimestamp; @@ -661,8 +658,7 @@ int JsonData::JsonCmd_32(std::string MeasurementID,int status,int type,std::str jsBody["errorType"] = type; jsBody["errorData"] = Data; jsBody["errorMsg"] = Msg; - std::string dataBody = show_value_.write(jsBody); - jsonVal["cmdBody"] = dataBody; + jsonVal["cmdBody"] = jsBody; char timestamp[32] = {0}; GetTimeNet(timestamp, 1); jsonVal["timestamp"] = timestamp; @@ -723,7 +719,8 @@ void JsonData::DataNodeStatusCheck() { std::string JsonData::JsonCmd_07() { Json::Value jsonVal; jsonVal.clear(); - std::string sysStatus = GetSysStatus(); + Json::Value jsData; + std::string sysStatus = GetSysStatus(jsData); zlog_info(zct, "sysStatus : %s", sysStatus.c_str()); Json::Features f = Json::Features::strictMode(); @@ -736,7 +733,7 @@ std::string JsonData::JsonCmd_07() { GetTimeNet(localtimestamp, 1); jsonVal["timestamp"] = localtimestamp; if (recvReader.parse(sysStatus, recvSys)) { - jsonVal["cmdBody"] = sysStatus; + jsonVal["cmdBody"] = jsData; } else { jsonVal["success"] = false; jsonVal["message"] = "状态获取失败"; diff --git a/jsonparse/web_cmd_parse.cpp b/jsonparse/web_cmd_parse.cpp index a7b00ff..7c2162f 100644 --- a/jsonparse/web_cmd_parse.cpp +++ b/jsonparse/web_cmd_parse.cpp @@ -112,7 +112,8 @@ std::string JsonData::JsonCmd_Cgi_02(Param_02 ¶m) { std::string JsonData::JsonCmd_Cgi_07() { Json::Value jsonVal; jsonVal.clear(); - std::string sysStatus = GetSysStatus(); + Json::Value jsData; + std::string sysStatus = GetSysStatus(jsData); zlog_info(zct, "sysStatus : %s", sysStatus.c_str()); Json::Features f = Json::Features::strictMode(); @@ -133,7 +134,8 @@ std::string JsonData::JsonCmd_Cgi_07() { std::string JsonData::JsonCmd_Cgi_08() { Json::Value jsonVal; jsonVal.clear(); - std::string sysStatus = GetSysStatus(); + Json::Value jsData; + std::string sysStatus = GetSysStatus(jsData); Json::Features f = Json::Features::strictMode(); Json::Reader recvReader(f); diff --git a/mqttclient/mqtt_client.cpp b/mqttclient/mqtt_client.cpp index 2398b35..cb28f70 100644 --- a/mqttclient/mqtt_client.cpp +++ b/mqttclient/mqtt_client.cpp @@ -203,7 +203,8 @@ int data_publish(const char *str, const char *topic) { int ret = -1; if (mosq != NULL) { std::string strTopic = std::string(topic); - if (strTopic.find("cmd") != std::string::npos || strTopic.find("configureInfo") != std::string::npos) { + if (strTopic.find("cmd") != std::string::npos || strTopic.find("configureInfo") != std::string::npos || strTopic.find("status") != std::string::npos) { + zlog_info(zct,"strTopic = %s,pData = %s",strTopic.c_str(),str); std::string pData = (std::string)str; char *base64_aes = new char[pData.length() * 2]; memset(base64_aes, 0, pData.length() * 2); diff --git a/uart/uart.cpp b/uart/uart.cpp index 65cd705..d844838 100644 --- a/uart/uart.cpp +++ b/uart/uart.cpp @@ -361,9 +361,7 @@ int Uart::DealAskTask(uint16_t ushortAdd){ } else if (taskID == kScheduleUpgrade) //3.升级 { - zlog_info(zct, " UpdateWirelessNode 2222" ); UpdateWirelessNode(ushortAdd); - zlog_info(zct, " UpdateWirelessNode end1111" ); }else if (taskID == kScheduleConfigSensor) //4.更新配置 { scheduleTask.cmd = CONFIG; @@ -523,7 +521,6 @@ void Uart::DealRecvData(const char *pData) { break; case ASK_TASK: DealAskTask(ushortAdd); - zlog_info(zct, " DealAskTask end11111" ); break; case DEVICE_EXCEPTION: DealException(pData); diff --git a/uart/uart_feature_parse.cpp b/uart/uart_feature_parse.cpp index 60b4016..c10bea3 100644 --- a/uart/uart_feature_parse.cpp +++ b/uart/uart_feature_parse.cpp @@ -581,7 +581,8 @@ void Uart::DealDataNodeFeature(const char *pData, int flag) { memset(selectCon, 0x00, sizeof(selectCon)); sprintf(selectCon, "zigbeeSignal <> '' ORDER BY timeStamp desc LIMIT 0,1"); strTime = sqlite_db_ctrl::instance().GetData(szTableNameStatic, "timeStamp", selectCon); - + JsonData jd; + jd.JsonCmd_32(strMeasurementID,0,0,strMeasurementID,""); if (flag == 1) { zlog_info(zct, "DealDataNodeFeature end %02x%02x", pRecvData->ShortAddr[0], pRecvData->ShortAddr[1]); } @@ -811,14 +812,17 @@ void Uart::DealWave() { g_VecWaveDataZ.clear(); VecWaveDataZ.clear(); } - char localtimestamp[32] = {0}; - GetTimeNet(localtimestamp, 1); - char insertSql[100] = {0x00}; - char whereCon[50] = {0x00}; - sprintf(whereCon, "MeasurementID='%s'",strMeasurementID.c_str()); - memset(whereCon, 0x00, sizeof(whereCon)); - sprintf(insertSql, "'%s','%02x%02x','%s',0,'1','%s' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp,""); - sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql); + if (m_waveCountX > 0 || m_waveCountY > 0 || m_waveCountZ > 0) + { + char localtimestamp[32] = {0}; + GetTimeNet(localtimestamp, 1); + char insertSql[100] = {0x00}; + char whereCon[50] = {0x00}; + sprintf(whereCon, "MeasurementID='%s'",strMeasurementID.c_str()); + memset(whereCon, 0x00, sizeof(whereCon)); + sprintf(insertSql, "'%s','%02x%02x','%s',0,'1','%s' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp,""); + sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql); + } wave_trans_ = false; } } diff --git a/uart/uart_parameter_config.cpp b/uart/uart_parameter_config.cpp index f0b7f9d..f868e3b 100644 --- a/uart/uart_parameter_config.cpp +++ b/uart/uart_parameter_config.cpp @@ -168,11 +168,8 @@ void Uart::UpdateWirelessNode(uint16_t shortAdd) { } Data[99] = tmp; sleep(1); - zlog_info(zct, "111111111"); WriteToUart((const char*)Data, 100); - zlog_info(zct, "22222222222"); int iRet = CheckZigbeeACK(); - zlog_info(zct, "333333333333"); if (iRet == 0) { zlog_info(zct, "Packge ACK send success,shortAddr = %02x%02x", UINT16_HIGH(shortAdd), UINT16_LOW(shortAdd)); } else {