add x,y,z switch
This commit is contained in:
parent
974d54a09e
commit
976616ffe1
@ -2,6 +2,7 @@
|
||||
#define PARAMETER_DEFINATION_HPP_
|
||||
|
||||
#include <string>
|
||||
#include "scheduler/wave_feature_set.hpp"
|
||||
|
||||
struct Param_01 {
|
||||
int mMode; // 0:登陆 1:更改密码
|
||||
@ -343,5 +344,18 @@ struct Param_62 {
|
||||
int mPackageFlag;
|
||||
Param_62() : MeasurementID(""),timeStart(""),timeEnd(""),mPackageFlag(0){};
|
||||
};
|
||||
|
||||
struct Param_63 {
|
||||
|
||||
int mMode;
|
||||
bool partial;
|
||||
std::vector<FeatureEntryUploadCfg> cfg;
|
||||
Param_63() : mMode(0),partial(false){};
|
||||
};
|
||||
struct Param_64 {
|
||||
|
||||
int mMode;
|
||||
bool partial;
|
||||
std::vector<FeatureEntryUploadCfg> cfg;
|
||||
Param_64() : mMode(0),partial(false){};
|
||||
};
|
||||
#endif // PARAMETER_DEFINATION_HPP_
|
||||
|
||||
@ -71,6 +71,8 @@ public:
|
||||
std::string JsonCmd_Cgi_60(Param_60 ¶m);
|
||||
std::string JsonCmd_Cgi_61(Param_61 ¶m);
|
||||
std::string JsonCmd_Cgi_62(Param_62 ¶m);
|
||||
std::string JsonCmd_Cgi_63(Param_63 ¶m);
|
||||
std::string JsonCmd_Cgi_64(Param_64 ¶m);
|
||||
std::string JsonCmd_Cgi_default();
|
||||
|
||||
private:
|
||||
|
||||
@ -9,6 +9,7 @@
|
||||
#include "wifi_5g/wpa_client.h"
|
||||
#include "utility/calculation.hpp"
|
||||
#include "scheduler/schedule.hpp"
|
||||
#include "scheduler/wave_feature_set.hpp"
|
||||
|
||||
extern zlog_category_t *zct;
|
||||
extern const char *JSON_FIELD_CMD;
|
||||
@ -954,3 +955,96 @@ std::string JsonData::JsonCmd_Cgi_62(Param_62 ¶m){
|
||||
}
|
||||
return show_value_.write(jsonVal);
|
||||
}
|
||||
std::string JsonData::JsonCmd_Cgi_63(Param_63 ¶m)
|
||||
{
|
||||
Json::Value jsonVal;
|
||||
jsonVal.clear();
|
||||
Json::Value jsBody;
|
||||
jsonVal[JSON_FIELD_CMD] = "63";
|
||||
jsonVal["success"] = true;
|
||||
jsonVal["message"] = "";
|
||||
if (param.mMode == 0)
|
||||
{
|
||||
std::vector<FeatureEntryUploadCfg> cfg;
|
||||
wave_feature_set_inst::instance().GetAllFeatureCfg(cfg);
|
||||
if (cfg.size() > 0)
|
||||
{
|
||||
for (size_t i = 0; i < cfg.size(); i++)
|
||||
{
|
||||
Json::Value xyz_status;
|
||||
xyz_status.append(cfg[i].x);
|
||||
xyz_status.append(cfg[i].y);
|
||||
xyz_status.append(cfg[i].z);
|
||||
if (cfg[i].short_addr == 0)
|
||||
{
|
||||
jsBody["global"] = xyz_status;
|
||||
}else{
|
||||
char buf[8] = {0};
|
||||
snprintf(buf, 8, "%02x%02x", UINT16_HIGH(cfg[i].short_addr), UINT16_LOW(cfg[i].short_addr));
|
||||
jsBody[buf] = xyz_status;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
jsonVal["success"] = false;
|
||||
jsonVal["message"] = "";
|
||||
}
|
||||
}else if(param.mMode == 1){
|
||||
if (param.partial)
|
||||
{
|
||||
zlog_info(zct, "63 short_addr = %d,x = %d,y = %d,z = %d", param.cfg[0].short_addr, param.cfg[0].x, param.cfg[0].y, param.cfg[0].z);
|
||||
wave_feature_set_inst::instance().SetFeatureCfg(param.cfg[0].short_addr, param.cfg[0].x, param.cfg[0].y, param.cfg[0].z);
|
||||
}else{
|
||||
wave_feature_set_inst::instance().SetAllFeatureCfg(param.cfg);
|
||||
}
|
||||
|
||||
}
|
||||
jsonVal["cmdBody"] = jsBody;
|
||||
return show_value_.write(jsonVal);
|
||||
}
|
||||
std::string JsonData::JsonCmd_Cgi_64(Param_64 ¶m)
|
||||
{
|
||||
Json::Value jsonVal;
|
||||
jsonVal.clear();
|
||||
Json::Value jsBody;
|
||||
jsonVal[JSON_FIELD_CMD] = "64";
|
||||
jsonVal["success"] = true;
|
||||
jsonVal["message"] = "";
|
||||
if (param.mMode == 0)
|
||||
{
|
||||
std::vector<FeatureEntryUploadCfg> cfg;
|
||||
wave_feature_set_inst::instance().GetAllWaveCfg(cfg);
|
||||
zlog_info(zct,"cfg size = %d",cfg.size());
|
||||
if (cfg.size() > 0)
|
||||
{
|
||||
for (size_t i = 0; i < cfg.size(); i++)
|
||||
{
|
||||
Json::Value xyz_status;
|
||||
xyz_status.append(cfg[i].x);
|
||||
xyz_status.append(cfg[i].y);
|
||||
xyz_status.append(cfg[i].z);
|
||||
if (cfg[i].short_addr == 0)
|
||||
{
|
||||
jsBody["global"] = xyz_status;
|
||||
}else{
|
||||
char buf[8] = {0};
|
||||
snprintf(buf, 8, "%02x%02x", UINT16_HIGH(cfg[i].short_addr), UINT16_LOW(cfg[i].short_addr));
|
||||
jsBody[buf] = xyz_status;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
jsonVal["success"] = false;
|
||||
jsonVal["message"] = "";
|
||||
}
|
||||
}else if(param.mMode == 1){
|
||||
if (param.partial)
|
||||
{
|
||||
zlog_info(zct, "64 short_addr = %d,x = %d,y = %d,z = %d", param.cfg[0].short_addr, param.cfg[0].x, param.cfg[0].y, param.cfg[0].z);
|
||||
wave_feature_set_inst::instance().SetWaveCfg(param.cfg[0].short_addr, param.cfg[0].x, param.cfg[0].y, param.cfg[0].z);
|
||||
}else{
|
||||
wave_feature_set_inst::instance().SetAllWaveCfg(param.cfg);
|
||||
}
|
||||
|
||||
}
|
||||
jsonVal["cmdBody"] = jsBody;
|
||||
return show_value_.write(jsonVal);
|
||||
}
|
||||
@ -51,7 +51,9 @@ enum WebCommand {
|
||||
kLostRecords = 59,
|
||||
kTransducerUpgrade = 60,
|
||||
kWaveRecords = 61,
|
||||
kWaveReceive = 62
|
||||
kWaveReceive = 62,
|
||||
kWaveSend = 63,
|
||||
kFeatureSend = 64
|
||||
};
|
||||
|
||||
class LocalServer {
|
||||
|
||||
@ -377,7 +377,7 @@ std::string LocalServer::HandleCgi_cmd(std::string &pData) {
|
||||
case kSchedulingConfiguration:{
|
||||
JsonData jd;
|
||||
Param_58 param;
|
||||
std::string type = recvBody["type"].asString();
|
||||
std::string type = recvBody["type"].asString();
|
||||
if (0 == type.compare("SET")) {
|
||||
param.mMode = 1;
|
||||
}
|
||||
@ -438,6 +438,78 @@ std::string LocalServer::HandleCgi_cmd(std::string &pData) {
|
||||
std::string data = jd.JsonCmd_Cgi_62(param);
|
||||
return data;
|
||||
}break;
|
||||
case kWaveSend:{
|
||||
JsonData jd;
|
||||
Param_63 param;
|
||||
param.mMode = recvBody["sub_cmd"].asInt();
|
||||
param.partial = recvBody["partial"].asBool();
|
||||
if (param.mMode == 1)
|
||||
{
|
||||
for (const auto &key : recvBody.getMemberNames())
|
||||
{
|
||||
if (key != "sub_cmd" && key != "partial")
|
||||
{
|
||||
FeatureEntryUploadCfg tmpCfg;
|
||||
char *end_ptr;
|
||||
if (key == "global")
|
||||
{
|
||||
tmpCfg.short_addr = 0;
|
||||
}else{
|
||||
tmpCfg.short_addr = strtol(key.c_str(), &end_ptr, 16);
|
||||
}
|
||||
Json::Value xyz_status = recvBody[key];
|
||||
for (size_t i = 0; i < xyz_status.size(); ++i) {
|
||||
if (i == 0) {
|
||||
tmpCfg.x = xyz_status[i].asInt();
|
||||
} else if (i == 1) {
|
||||
tmpCfg.y = xyz_status[i].asInt();
|
||||
} else if (i == 2) {
|
||||
tmpCfg.z = xyz_status[i].asInt();
|
||||
}
|
||||
}
|
||||
param.cfg.push_back(tmpCfg);
|
||||
}
|
||||
}
|
||||
}
|
||||
std::string data = jd.JsonCmd_Cgi_63(param);
|
||||
return data;
|
||||
}break;
|
||||
case kFeatureSend:{
|
||||
JsonData jd;
|
||||
Param_64 param;
|
||||
param.mMode = recvBody["sub_cmd"].asInt();
|
||||
param.partial = recvBody["partial"].asBool();
|
||||
if (param.mMode == 1)
|
||||
{
|
||||
for (const auto &key : recvBody.getMemberNames())
|
||||
{
|
||||
if (key != "sub_cmd" && key != "partial")
|
||||
{
|
||||
FeatureEntryUploadCfg tmpCfg;
|
||||
char *end_ptr;
|
||||
if (key == "global")
|
||||
{
|
||||
tmpCfg.short_addr = 0;
|
||||
}else{
|
||||
tmpCfg.short_addr = strtol(key.c_str(), &end_ptr, 16);
|
||||
}
|
||||
Json::Value xyz_status = recvBody[key];
|
||||
for (size_t i = 0; i < xyz_status.size(); ++i) {
|
||||
if (i == 0) {
|
||||
tmpCfg.x = xyz_status[i].asInt();
|
||||
} else if (i == 1) {
|
||||
tmpCfg.y = xyz_status[i].asInt();
|
||||
} else if (i == 2) {
|
||||
tmpCfg.z = xyz_status[i].asInt();
|
||||
}
|
||||
}
|
||||
param.cfg.push_back(tmpCfg);
|
||||
}
|
||||
}
|
||||
}
|
||||
std::string data = jd.JsonCmd_Cgi_64(param);
|
||||
return data;
|
||||
}break;
|
||||
default:
|
||||
JsonData jd;
|
||||
std::string data = jd.JsonCmd_Cgi_default();
|
||||
|
||||
@ -363,6 +363,7 @@ int Uart::DealAskTask(uint16_t ushortAdd){
|
||||
int next_duration = 0;
|
||||
int taskID = scheduler::instance().StartSchedule(ushortAdd,next_duration);
|
||||
ScheduleTask scheduleTask;
|
||||
taskID = 4;
|
||||
zlog_info(zct, "taskID = %d ", taskID);
|
||||
if (taskID == kScheduleEigenValue) //1.特征值
|
||||
{
|
||||
|
||||
@ -53,11 +53,12 @@ void Uart::DealDataNodeFeature(const char *pData, int flag) {
|
||||
if (flag == 1) {
|
||||
zlog_info(zct, "DealDataNodeFeature %02x%02x, %d", pRecvData->ShortAddr[0], pRecvData->ShortAddr[1], flag);
|
||||
}
|
||||
|
||||
if (bSendTimeStamp) //波形处理中
|
||||
return;
|
||||
uint8_t Feature_x,Feature_y,Feature_z;
|
||||
char *end_ptr;
|
||||
uint16_t u_short_addr = strtol(buf, &end_ptr, 16);
|
||||
wave_feature_set_inst::instance().GetFeatureCfg(u_short_addr,Feature_x,Feature_y,Feature_z);
|
||||
std::string strShortAddr = std::string(buf);
|
||||
zlog_info(zct, "zigbeeShortAddr='%s'", strShortAddr.c_str());
|
||||
zlog_info(zct, "zigbeeShortAddr='%s',Feature_x = %d,Feature_y = %d,Feature_z = %d", strShortAddr.c_str(),Feature_x,Feature_y,Feature_z);
|
||||
char getLongAddr_sql[32] = {0};
|
||||
//根据数据包中的传感器的短地址获取数据库中长地址(MAC),在下面判断该传感器是否存在,如果不存在则把数据包丢弃
|
||||
sprintf(getLongAddr_sql, "zigbeeShortAddr='%s'", strShortAddr.c_str());
|
||||
@ -344,7 +345,10 @@ void Uart::DealDataNodeFeature(const char *pData, int flag) {
|
||||
valNodeFeature["Phase3"] = dataDymX.Phase3;
|
||||
valNodeFeature["Phase4"] = dataDymX.Phase4;
|
||||
valNodeFeature["timeStamp"] = nowTimetamp;
|
||||
valNodeData.append(valNodeFeature);
|
||||
if (Feature_x)
|
||||
{
|
||||
valNodeData.append(valNodeFeature);
|
||||
}
|
||||
DataRecvDym dataDymY;
|
||||
|
||||
DataExtract(pRecvData, 34, lowbit, n);
|
||||
@ -431,7 +435,10 @@ void Uart::DealDataNodeFeature(const char *pData, int flag) {
|
||||
valNodeFeature["Phase3"] = dataDymY.Phase3;
|
||||
valNodeFeature["Phase4"] = dataDymY.Phase4;
|
||||
valNodeFeature["timeStamp"] = nowTimetamp;
|
||||
valNodeData.append(valNodeFeature);
|
||||
if (Feature_y)
|
||||
{
|
||||
valNodeData.append(valNodeFeature);
|
||||
}
|
||||
|
||||
DataRecvDym dataDymZ;
|
||||
DataExtract(pRecvData, 52, lowbit, n);
|
||||
@ -528,7 +535,10 @@ void Uart::DealDataNodeFeature(const char *pData, int flag) {
|
||||
valNodeFeature["Phase3"] = dataDymZ.Phase3;
|
||||
valNodeFeature["Phase4"] = dataDymZ.Phase4;
|
||||
valNodeFeature["timeStamp"] = nowTimetamp;
|
||||
valNodeData.append(valNodeFeature);
|
||||
if (Feature_z)
|
||||
{
|
||||
valNodeData.append(valNodeFeature);
|
||||
}
|
||||
|
||||
memset(whereCon, 0, 1024);
|
||||
sprintf(whereCon, "MeasurementID='%s'", strMeasurementID.c_str());
|
||||
|
||||
@ -9,6 +9,7 @@
|
||||
#include <zlog.h>
|
||||
#include "common/common_func.hpp"
|
||||
#include "minilzo/minilzo.h"
|
||||
#include "scheduler/wave_feature_set.hpp"
|
||||
|
||||
extern zlog_category_t* zct;
|
||||
extern zlog_category_t* zbt;
|
||||
@ -559,14 +560,22 @@ int Uart::TaskResp(ScheduleTask scheduleTask){
|
||||
{
|
||||
UpdateData[7] = UINT16_LOW(scheduleTask.duration);
|
||||
UpdateData[8] = UINT16_HIGH(scheduleTask.duration);
|
||||
}
|
||||
if (scheduleTask.cmd == MEAS_EVAL)
|
||||
}else if (scheduleTask.cmd == MEAS_EVAL)
|
||||
{
|
||||
UpdateData[9] = UINT32_LOW_2(scheduleTask.timeStamp);
|
||||
UpdateData[10] = UINT32_LOW_1(scheduleTask.timeStamp);
|
||||
UpdateData[11] = UINT32_HIGH_2(scheduleTask.timeStamp);
|
||||
UpdateData[12] = UINT32_HIGH_1(scheduleTask.timeStamp);
|
||||
}else if (scheduleTask.cmd == WAVE_CMD)
|
||||
{
|
||||
uint8_t x,y,z;
|
||||
wave_feature_set_inst::instance().GetWaveCfg(scheduleTask.shortAddr,x,y,z);
|
||||
zlog_info(zct,"wave x = %d,y = %d,z = %d\n",x,y,z);
|
||||
UpdateData[17] = (x^1) & 0xFF;
|
||||
UpdateData[18] = (y^1) & 0xFF;
|
||||
UpdateData[19] = (z^1) & 0xFF;
|
||||
}
|
||||
|
||||
unsigned char tmp = 0x00;
|
||||
for (int k = 0; k < 99; k++) {
|
||||
tmp += UpdateData[k];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user