diff --git a/.autotools b/.autotools
new file mode 100644
index 0000000..a9fdb03
--- /dev/null
+++ b/.autotools
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.cproject b/.cproject
index 861de09..cc56c8b 100644
--- a/.cproject
+++ b/.cproject
@@ -36,18 +36,18 @@
-
+
-
diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index b743081..1a5207d 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
@@ -16,7 +16,7 @@
-
+
diff --git a/common/SH_CommonFunc.cpp b/common/SH_CommonFunc.cpp
index bccd68b..0d4f291 100644
--- a/common/SH_CommonFunc.cpp
+++ b/common/SH_CommonFunc.cpp
@@ -2,7 +2,7 @@
#include
#include "SH_global.h"
#include "SH_CommonFunc.hpp"
-
+#include
static boost::mutex s_config_mu;
@@ -440,16 +440,37 @@ std::string GetFileContent(std::string filename, int line)
}
+//BOOST用正则表达式验证ip地址合法
+bool CheckIP(const char *ip)
+{
+ using namespace boost::xpressive;
+ /* 定义正则表达式 */
+ cregex reg_ip = cregex::compile("(25[0-5]|2[0-5][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])[.](25[0-5]|2[0-5][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])[.](25[0-5]|2[0-5][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])[.](25[0-5]|2[0-5][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])");
+ return regex_match(ip, reg_ip);
+}
+bool IsValidMask(std::string mask) {
+ int iRet = -1;
+ // 将IP地址由“点分十进制”转换成 “二进制整数”
+ struct in_addr s;
+ iRet = inet_pton(AF_INET, mask.c_str(), &s);
+ // 转换成功返回1,说明是有效的IP地址
+ if (iRet == 1) {
+ // 从网络字节顺序转换为主机字节顺序
+ unsigned int addr = ntohl(s.s_addr);
+ // 转换为二进制字符串
+ std::bitset<32> b((int)addr);
+ std::string strMask = b.to_string();
+ // 查找二进制字符串中的"01",如果不存在,说明是有效的子网掩码
+ return (strMask.find("01") == std::string::npos);
+ }
-
-
-
-
+ return false;
+}
// int StatusPub()
// {
// long mem_used = -1;
diff --git a/common/SH_CommonFunc.hpp b/common/SH_CommonFunc.hpp
index 07958a3..cc6c117 100644
--- a/common/SH_CommonFunc.hpp
+++ b/common/SH_CommonFunc.hpp
@@ -572,7 +572,8 @@ extern void ZoneConfig(std::string zoneid);
*/
extern std::string GetSysStatus();
-
+extern bool CheckIP(const char *ip);
+bool IsValidMask(std::string mask);
//read update config file
extern std::vector ReadStrByOpt(std::string filename,std::string strUpdataFileName);
diff --git a/jsonparse/SH_JsonCmd.cpp b/jsonparse/SH_JsonCmd.cpp
index bea8b8f..9a2a751 100644
--- a/jsonparse/SH_JsonCmd.cpp
+++ b/jsonparse/SH_JsonCmd.cpp
@@ -49,6 +49,9 @@ std::string JsonData::JsonCmd_20(Param_20 ¶m)
jsSystemInfo["zigbeePanId"] = GlobalConfig::ZigbeeInfo_G.PanID;
jsSystemInfo["zigbeeChannel"] = GlobalConfig::ZigbeeInfo_G.Channel;
jsSystemInfo["zigbeeAddr"] = GlobalConfig::ZigbeeInfo_G.MyAddr;
+ jsSystemInfo[JSON_FIELD_SERVERIP] = ReadStrByOpt(SERVERCONFIG, "Server", "localServerIpAddress");
+ jsSystemInfo[JSON_FIELD_SERVERPORT] = boost::lexical_cast(ReadStrByOpt(SERVERCONFIG, "Server", "localServerPort"));
+ jsSystemInfo[JSON_FIELD_CommMode] = boost::lexical_cast(ReadStrByOpt(SERVERCONFIG, "Server", "CommMode"));
jsBody["SystemInfo"] = jsSystemInfo;
std::string dataBody = showValue.write(jsBody);
@@ -136,6 +139,7 @@ std::string JsonData::JsonCmd_25(Param_25 ¶m)
WriteStr2Config(NETWORKCONFIG, "Net", "subnetMask", param.mSubnetMask);
WriteStr2Config(NETWORKCONFIG, "Net", "ipAddress", param.mIp);
WriteStr2Config(NETWORKCONFIG, "Net", "hostName", param.mHostName);
+ system("reboot");
}
jsonVal["cmd"] = "25";
@@ -491,7 +495,27 @@ std::string JsonData::JsonCmd_Cgi_07()
}
return showValue.write(jsonVal);
}
+std::string JsonData::JsonCmd_07()
+{
+ Json::Value jsonVal;
+ jsonVal.clear();
+ std::string sysStatus = GetSysStatus();
+ print_info("sysStatus : %s\n", sysStatus.c_str());
+ Json::Features f = Json::Features::strictMode();
+ Json::Reader recvReader(f);
+ Json::Value recvSys;
+ jsonVal[JSON_FIELD_CMD] = "07";
+ jsonVal["success"] = true;
+ jsonVal["message"] = " ";
+ if (recvReader.parse(sysStatus, recvSys)){
+ jsonVal["cmdBody"] = sysStatus;
+ } else {
+ jsonVal["success"] = false;
+ jsonVal["message"] = "状态获取失败";
+ }
+ return showValue.write(jsonVal);
+}
std::string JsonData::JsonCmd_Cgi_08()
{
Json::Value jsonVal;
@@ -662,19 +686,23 @@ std::string JsonData::JsonCmd_Cgi_23(Param_23 ¶m)
{
Json::Value jsonVal;
jsonVal.clear();
- // SET 指令,则param.mMode = 0,将设置的数据写入配置文件中 SERVERCONFIG "/opt/configenv/ServerConfig.json"
- if (0 == param.mMode) {
- WriteStr2Config(SERVERCONFIG, "Server", "localServerIpAddress", param.mServerIp);
- WriteStr2Config(SERVERCONFIG, "Server", "localServerPort", param.mPort);
- WriteStr2Config(SERVERCONFIG, "Server", "communicationMode", param.mCommMode);
- }
-
jsonVal[JSON_FIELD_CMD] = "23";
jsonVal["dataNodeGatewayNo"] = GlobalConfig::MacAddr_G;
jsonVal["cmdSerial"] = param.mCmdSerial;
jsonVal["success"] = true;
jsonVal["message"] = " ";
+ // SET 指令,则param.mMode = 0,将设置的数据写入配置文件中 SERVERCONFIG "/opt/configenv/ServerConfig.json"
+ if (0 == param.mMode && CheckIP(param.mServerIp.c_str())) {
+
+ WriteStr2Config(SERVERCONFIG, "Server", "localServerIpAddress", param.mServerIp);
+ WriteStr2Config(SERVERCONFIG, "Server", "localServerPort", param.mPort);
+ WriteStr2Config(SERVERCONFIG, "Server", "communicationMode", param.mCommMode);
+ system("reboot");
+ }else if(0 == param.mMode && !(CheckIP(param.mServerIp.c_str()))){
+ jsonVal["success"] = false;
+ }
+
Json::Value jsSystemSetting;
Json::Value jsBody;
@@ -694,8 +722,15 @@ std::string JsonData::JsonCmd_Cgi_25(Param_25 ¶m)
{
Json::Value jsonVal;
jsonVal.clear();
+ jsonVal["success"] = true;
+ jsonVal["message"] = " ";
jsonVal["cmd"] = "25";
- if (0 == param.mMode) {
+ bool bFlag1 = CheckIP(param.mGateway.c_str());
+ bool bFlag2 = IsValidMask(param.mSubnetMask);
+ bool bFlag3 = CheckIP(param.mIp.c_str());
+ bool bFlag4 = CheckIP(param.mDnsName.c_str());
+
+ if (0 == param.mMode &&(bFlag1 && bFlag2 && bFlag3 && bFlag4)) {
WriteStr2Config(NETWORKCONFIG, "Net", "dnsName", param.mDnsName);
WriteStr2Config(NETWORKCONFIG, "Net", "networkPortStatus", param.mNetworkPortStatus);
WriteStr2Config(NETWORKCONFIG, "Net", "gateway", param.mGateway);
@@ -703,9 +738,11 @@ std::string JsonData::JsonCmd_Cgi_25(Param_25 ¶m)
WriteStr2Config(NETWORKCONFIG, "Net", "ipAddress", param.mIp);
WriteStr2Config(NETWORKCONFIG, "Net", "hostName", param.mHostName);
platform->EquipIpInit();
+ system("reboot");
+ }else if(0 == param.mMode &&(!bFlag1 || !bFlag2 || !bFlag3 || !bFlag4)){
+ jsonVal["success"] = false;
}
- jsonVal["success"] = true;
- jsonVal["message"] = " ";
+
jsonVal["content"]["dnsName"] = ReadStrByOpt(NETWORKCONFIG, "Net", "dnsName");
jsonVal["content"]["networkPortStatus"] = ReadStrByOpt(NETWORKCONFIG, "Net", "networkPortStatus");
jsonVal["content"]["gateway"] = ReadStrByOpt(NETWORKCONFIG, "Net", "gateway");
diff --git a/jsonparse/SH_JsonCmd.hpp b/jsonparse/SH_JsonCmd.hpp
index 93d77ec..50b0013 100644
--- a/jsonparse/SH_JsonCmd.hpp
+++ b/jsonparse/SH_JsonCmd.hpp
@@ -35,6 +35,7 @@ public :
std::string JsonCmd_Cgi_01(Param_01 ¶m); //用户操作处理
std::string JsonCmd_Cgi_02(Param_02 ¶m); //时间校准接口
std::string JsonCmd_Cgi_07(); //获取系统内存温度硬盘等信息
+ std::string JsonCmd_07(); //获取系统内存温度硬盘等信息
std::string JsonCmd_Cgi_08(); //重启
std::string JsonCmd_Cgi_09(); //实时数据获取
std::string JsonCmd_Cgi_20(Param_20 ¶m); //终端信息获取
@@ -75,6 +76,7 @@ static const char* JSON_FIELD_TIMEZONE = "timezone";
+
//cmd "21"
// static const char* JSON_FIELD_CMD = "cmd";//协议: 命令字段
// static const char* JSON_FIELD_NAME = "dataWatchName";//协议: 终端名称
diff --git a/localserver/SH_LocalServer.cpp b/localserver/SH_LocalServer.cpp
index 354624b..0d6a644 100644
--- a/localserver/SH_LocalServer.cpp
+++ b/localserver/SH_LocalServer.cpp
@@ -16,194 +16,198 @@ LocalServer::~LocalServer()
void LocalServer::HandleFromServer(const char *pData_r, int pLen, const char *topic)
{
- if(pLen == 0) {
- return;
- }
-
- std::string data_r = (std::string)(pData_r);
- print_brown("pData base : %s \n", data_r.c_str());
- char *base64_data = new char[data_r.length()];
- memset(base64_data, 0, data_r.length());
- Secure::instance()->Base64Decode(data_r.c_str(), (unsigned char*)base64_data);
- std::string pData = std::string(base64_data);
- delete[] base64_data;
+ if(pLen == 0) {
+ return;
+ }
- print_brown("pData : %s \n", pData.c_str());
- Json::Reader recvReader;
- Json::Value recvValue;
- Json::Value recvBody;
- if (recvReader.parse(pData, recvValue)) {
- /* std::string cmdBody = recvValue["cmdBody"].asString();
- if (!recvReader.parse(cmdBody, recvBody)) {
- print_error("recv body error");
- return;
- }*/
- recvBody = recvValue["cmdBody"];
- std::string str = recvBody["timestamp"].asString();
- int cmdType = atoi(recvValue["cmd"].asString().c_str());
- switch (cmdType) {
- case 10:{
- recvValue["dataNodeGatewayNo"] = GlobalConfig::MacAddr_G;
- recvValue["status"] = "ACK";
- Json::FastWriter fw;
- std::string strjson = fw.write(recvValue);
- data_publish(strjson.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
- system("echo 1 > /CIDW/start");
- boost::this_thread::sleep(boost::posix_time::seconds(1));
- system("reboot");
- }
- break;
- case 12:{
- /* std::string strBody = recvValue["cmdBody"].asString();
- Json::Value jsBody;
- if (!recvReader.parse(strBody, jsBody)) {
- return;
- }*/
- std::string timestamp = recvBody["timestamp"].asString();
- unsigned long itimestamp = boost::lexical_cast(timestamp);
- SetTime(itimestamp);
- boost::this_thread::sleep(boost::posix_time::milliseconds(200));
- system("hwclock -w");
- if (!recvValue["ZoneId"].isNull() && recvValue["ZoneId"].asString().length() > 0) {
- std::string zoneid = recvValue["ZoneId"].asString();
- ZoneConfig(zoneid);
- }
- Json::Value retVal;
- retVal["dataNodeGatewayNo"] = GlobalConfig::MacAddr_G;
- retVal["cmd"] = 12;
- retVal["success"] = true;
- retVal["message"] = "校时成功";
- Json::FastWriter fw;
- std::string strjson = fw.write(retVal);
- data_publish(strjson.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
- }
- break;
- case 13:{
- std::string type = recvValue["type"].asString();
- if (type.compare("delete") == 0) {
- WriteStr2Config(SERVERCONFIG, "Server", "localServerIpAddress", "0.0.0.0");
- GlobalConfig::ServerIP.clear();
- exit(0);
- }
- }
- break;
- case 20:{
- Param_20 param;
- param.mCmdSerial = recvValue["cmdSerial"].asString();
- std::string type = recvBody["type"].asString();
- if (0 == type.compare("SET")) {
- param.mMode = 0;
- param.mDataWatchName = recvBody["SystemInfo"]["dataNodeGatewayName"].asString();
- param.mDataWatchAssetId = recvBody["SystemInfo"]["dataNodeGatewayAssetId"].asString();
- param.mDataWatchAddedBy = recvBody["SystemInfo"]["dataNodeGatewayAddedBy"].asString();
- } else {
- param.mMode = 1;
- }
- JsonData jd;
- std::string data = jd.JsonCmd_20(param);
- print_info("20 data: %s\n", data.c_str());
- data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
- }
- break;
- case 22:{
- Param_22 param;
- std::string type = recvBody["type"].asString();
- param.mCmdSerial = recvValue["cmdSerial"].asString();
+ std::string data_r = (std::string)(pData_r);
+ print_brown("pData base : %s \n", data_r.c_str());
+ char *base64_data = new char[data_r.length()];
+ memset(base64_data, 0, data_r.length());
+ Secure::instance()->Base64Decode(data_r.c_str(), (unsigned char*)base64_data);
+ std::string pData = std::string(base64_data);
+ delete[] base64_data;
- if (0 == type.compare("SET")) {
- param.mMode = 0;
- param.mTimeZone = recvBody["timezone"].asString();
- ZoneConfig(param.mTimeZone);
- } else {
- param.mMode = 1;
- }
- JsonData jd;
- std::string data = jd.JsonCmd_22(param);
- data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
- }
- break;
- case 23:{
- std::string type = recvBody["type"].asString();
- Param_23 param;
- param.mCmdSerial = recvValue["cmdSerial"].asString();
- if (0 == type.compare("SET")) {
- param.mMode = 0;
- param.mServerIp = recvBody["localServerIpAddress"].asString();
- param.mPort = boost::lexical_cast(recvBody["localServerPort"].asInt());
- param.mCommMode = boost::lexical_cast(recvBody["CommMode"].asInt());
- } else {
- param.mMode = 1;
- }
- JsonData jd;
- std::string data = jd.JsonCmd_23(param);
- data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
- }
- break;
- case 25:{
- Param_25 param;
- param.mCmdSerial = recvValue["cmdSerial"].asString();
- std::string type = recvBody["type"].asString();
- if (0 == type.compare("SET")) {
- param.mDnsName = recvBody["dnsName"].asString();
- param.mGateway = recvBody["gateway"].asString();
- param.mHostName = recvBody["hostName"].asString();
- param.mIp = recvBody["dataWatchIpAddress"].asString();
- param.mSubnetMask = recvBody["subnetMask"].asString();
- param.mNetworkPortStatus = recvBody["networkPortStatus"].asString();
- param.mMode = 0;
- } else {
- param.mMode = 1;
- }
- JsonData jd;
- std::string data = jd.JsonCmd_25(param);
- data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
- // platform->EquipIpInit();
- }
- break;
- case 26:{
- Param_26 param;
- param.mCmdSerial = recvValue["cmdSerial"].asString();
- std::string type = recvBody["type"].asString();
- if (0 == type.compare("GET")) {
- param.mMode = 0;
- } else {
- param.mMode = 1;
- }
- JsonData jd;
- std::string data = jd.JsonCmd_26(param);
- data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
- // platform->EquipIpInit();
- }
- break;
- case 27:{
- Param_27 param;
- param.mCmdSerial = recvValue["cmdSerial"].asString();
+ print_brown("pData : %s \n", pData.c_str());
+ Json::Reader recvReader;
+ Json::Value recvValue;
+ Json::Value recvBody;
+ if (recvReader.parse(pData, recvValue)) {
+ std::string cmdBody = recvValue["cmdBody"].asString();
+ if (!recvReader.parse(cmdBody, recvBody)) {
+ print_error("recv body error");
+ return;
+ }
+ // recvBody = recvValue["cmdBody"];
+ std::string str = recvBody["timestamp"].asString();
+ int cmdType = atoi(recvValue["cmd"].asString().c_str());
+ switch (cmdType) {
+ case 7:{
+ JsonData jd;
+ std::string data = jd.JsonCmd_07();
+ data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
+ }break;
+ case 10:{
+ recvValue["dataNodeGatewayNo"] = GlobalConfig::MacAddr_G;
+ recvValue["status"] = "ACK";
+ Json::FastWriter fw;
+ std::string strjson = fw.write(recvValue);
+ data_publish(strjson.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
+ system("echo 1 > /CIDW/start");
+ boost::this_thread::sleep(boost::posix_time::seconds(1));
+ system("reboot");
+ }
+ break;
+ case 12:{
+ /* std::string strBody = recvValue["cmdBody"].asString();
+ Json::Value jsBody;
+ if (!recvReader.parse(strBody, jsBody)) {
+ return;
+ }*/
+ std::string timestamp = recvBody["timestamp"].asString();
+ unsigned long itimestamp = boost::lexical_cast(timestamp);
+ SetTime(itimestamp);
+ boost::this_thread::sleep(boost::posix_time::milliseconds(200));
+ system("hwclock -w");
+ if (!recvValue["ZoneId"].isNull() && recvValue["ZoneId"].asString().length() > 0) {
+ std::string zoneid = recvValue["ZoneId"].asString();
+ ZoneConfig(zoneid);
+ }
+ /* Json::Value retVal;
+ retVal["dataNodeGatewayNo"] = GlobalConfig::MacAddr_G;
+ retVal["cmd"] = 12;
+ retVal["success"] = true;
+ retVal["message"] = "校时成功";
+ Json::FastWriter fw;
+ std::string strjson = fw.write(retVal);
+ data_publish(strjson.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());*/
+ }
+ break;
+ case 13:{
+ std::string type = recvValue["type"].asString();
+ if (type.compare("delete") == 0) {
+ WriteStr2Config(SERVERCONFIG, "Server", "localServerIpAddress", "0.0.0.0");
+ GlobalConfig::ServerIP.clear();
+ exit(0);
+ }
+ }
+ break;
+ case 20:{
+ Param_20 param;
+ param.mCmdSerial = recvValue["cmdSerial"].asString();
+ std::string type = recvBody["type"].asString();
+ if (0 == type.compare("SET")) {
+ param.mMode = 0;
+ param.mDataWatchName = recvBody["SystemInfo"]["dataNodeGatewayName"].asString();
+ param.mDataWatchAssetId = recvBody["SystemInfo"]["dataNodeGatewayAssetId"].asString();
+ param.mDataWatchAddedBy = recvBody["SystemInfo"]["dataNodeGatewayAddedBy"].asString();
+ } else {
+ param.mMode = 1;
+ }
+ JsonData jd;
+ std::string data = jd.JsonCmd_20(param);
+ print_info("20 data: %s\n", data.c_str());
+ data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
+ }
+ break;
+ case 22:{
+ Param_22 param;
+ std::string type = recvBody["type"].asString();
+ param.mCmdSerial = recvValue["cmdSerial"].asString();
- JsonData jd;
- std::string data = jd.JsonCmd_27(recvBody);
- data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
- }
- break;
- case 50:{
- JsonData jd;
- std::string data = jd.JsonCmd_50(recvBody);
- data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
- }break;
- case 51:{
- JsonData jd;
- std::string data = jd.JsonCmd_51(recvBody);
- data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
- }break;
- default:
- // data_publish_local(pData.c_str(), GlobalConfig::Topic_G.mPubLocalCmd.c_str());
- break;
- }
- print_brown("cmdType : %d \n", cmdType);
-
- } else {
- print_error("parase fail \n");
- }
+ if (0 == type.compare("SET")) {
+ param.mMode = 0;
+ param.mTimeZone = recvBody["timezone"].asString();
+ ZoneConfig(param.mTimeZone);
+ } else {
+ param.mMode = 1;
+ }
+ JsonData jd;
+ std::string data = jd.JsonCmd_22(param);
+ data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
+ }
+ break;
+ case 23:{
+ std::string type = recvBody["type"].asString();
+ Param_23 param;
+ param.mCmdSerial = recvValue["cmdSerial"].asString();
+ if (0 == type.compare("SET")) {
+ param.mMode = 0;
+ param.mServerIp = recvBody["localServerIpAddress"].asString();
+ param.mPort = boost::lexical_cast(recvBody["localServerPort"].asInt());
+ param.mCommMode = boost::lexical_cast(recvBody["CommMode"].asInt());
+ } else {
+ param.mMode = 1;
+ }
+ JsonData jd;
+ std::string data = jd.JsonCmd_23(param);
+ data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
+ }
+ break;
+ case 25:{
+ Param_25 param;
+ param.mCmdSerial = recvValue["cmdSerial"].asString();
+ std::string type = recvBody["type"].asString();
+ if (0 == type.compare("SET")) {
+ param.mDnsName = recvBody["dnsName"].asString();
+ param.mGateway = recvBody["gateway"].asString();
+ param.mHostName = recvBody["hostName"].asString();
+ param.mIp = recvBody["dataWatchIpAddress"].asString();
+ param.mSubnetMask = recvBody["subnetMask"].asString();
+ param.mNetworkPortStatus = recvBody["networkPortStatus"].asString();
+ param.mMode = 0;
+ } else {
+ param.mMode = 1;
+ }
+ JsonData jd;
+ std::string data = jd.JsonCmd_25(param);
+ data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
+ // platform->EquipIpInit();
+ }
+ break;
+ case 26:{
+ Param_26 param;
+ param.mCmdSerial = recvValue["cmdSerial"].asString();
+ std::string type = recvBody["type"].asString();
+ if (0 == type.compare("GET")) {
+ param.mMode = 0;
+ } else {
+ param.mMode = 1;
+ }
+ JsonData jd;
+ std::string data = jd.JsonCmd_26(param);
+ data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
+ // platform->EquipIpInit();
+ }
+ break;
+ case 27:{
+ Param_27 param;
+ param.mCmdSerial = recvValue["cmdSerial"].asString();
+ JsonData jd;
+ std::string data = jd.JsonCmd_27(recvBody);
+ data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
+ }
+ break;
+ case 50:{
+ JsonData jd;
+ std::string data = jd.JsonCmd_50(recvBody);
+ data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
+ }break;
+ case 51:{
+ JsonData jd;
+ std::string data = jd.JsonCmd_51(recvBody);
+ data_publish(data.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
+ }break;
+ default:
+ // data_publish_local(pData.c_str(), GlobalConfig::Topic_G.mPubLocalCmd.c_str());
+ break;
+ }
+ print_brown("cmdType : %d \n", cmdType);
+
+ } else {
+ print_error("parase fail \n");
+ }
}
std::string LocalServer::HandleCgi_cmd(std::string &pData)
@@ -321,11 +325,12 @@ try{
}
JsonData jd;
std::string data = jd.JsonCmd_Cgi_23(param);
+
return data;
}
break;
case 25:{
- Param_25 param;
+ Param_25 param;
std::string type = recvBody["type"].asString();
if (0 == type.compare("SET")) {
param.mDnsName = recvBody["dnsName"].asString();
@@ -400,9 +405,9 @@ try{
data = jd.JsonCmd_Cgi_31(param);
sleep(1);
system("reboot");
-
+
}else{
- param.mMode = 1;
+ param.mMode = 1;
data = jd.JsonCmd_Cgi_31(param);
}
// std::string data = jd.JsonCmd_Cgi_31(param);
diff --git a/main.cpp b/main.cpp
index 5d6297c..3a78adb 100644
--- a/main.cpp
+++ b/main.cpp
@@ -88,7 +88,7 @@ int main(int argc, char *argv[])
while (GlobalConfig::QuitFlag_G) {
boost::this_thread::sleep(boost::posix_time::seconds(20));
- // data_publish(senddata.c_str(), GlobalConfig::Topic_G.mPubData.c_str());
+ // data_publish(senddata.c_str(), GlobalConfig::Topic_G.mPubData.c_str());
}
return 0;
diff --git a/threadfunc/SH_ThreadFunc.cpp b/threadfunc/SH_ThreadFunc.cpp
index 594d581..0638ff6 100644
--- a/threadfunc/SH_ThreadFunc.cpp
+++ b/threadfunc/SH_ThreadFunc.cpp
@@ -194,7 +194,7 @@ void my_connect_callback(struct mosquitto *mosq, void *obj, int result)
// jsData["cmdBody"] = "";
std::string strCmd15 = fw.write(jsData);
- data_publish(strCmd15.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
+ // data_publish(strCmd15.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
std::string instr = std::string(reply_string);
std::string topic = "equipment/state/" + GlobalConfig::MacAddr_G;
@@ -215,7 +215,7 @@ void my_connect_callback(struct mosquitto *mosq, void *obj, int result)
sprintf(buf, "{\"dataNodeGatewayNo\":\"%s\",\"cmd\":\"12\",\"status\":\"REQ\"}",
GlobalConfig::MacAddr_G.c_str());
std::string str = std::string(buf);
- data_publish(str.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
+ // data_publish(str.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
std::string runinfo = "本地服务器连接成功";
}
diff --git a/uart/SH_Uart.cpp b/uart/SH_Uart.cpp
index 14ed8fe..61e8371 100644
--- a/uart/SH_Uart.cpp
+++ b/uart/SH_Uart.cpp
@@ -279,6 +279,7 @@ void Uart::UpdateWirelessNode(unsigned char* id)
break;
}
}
+ printf("thisindex = %d\n",thisindex);
if(thisindex < 0)
return;