add eigenvalue codes

This commit is contained in:
zhangsheng 2025-01-24 15:30:06 +08:00
parent ac2d4163fb
commit faa1938e82
6 changed files with 86 additions and 31 deletions

View File

@ -190,7 +190,7 @@ void JsonData::CmtCmd_82(char* MeasurementID,char* send_data,int& channel,int& s
{
FILE* pFile = NULL;
char* buffer = NULL;
int thisSize = 0;
int thisSize = 32;
WaveRes wave;
char whereCon[64]={0};
sprintf(whereCon,"MeasurementID = '%s'",MeasurementID);
@ -217,14 +217,15 @@ void JsonData::CmtCmd_82(char* MeasurementID,char* send_data,int& channel,int& s
buffer = (char*)malloc(thisSize - 32);
fread(buffer, sizeof(char), thisSize - 32, pFile);
fclose(pFile);
wave.sampling_rate = atoi(vecRes[0].c_str());
wave.sampling_time = atoi(vecRes[1].c_str());
wave.version = 1;
send_length = sizeof(WaveRes) + thisSize - 32;
memcpy(send_data,(char*)&wave,sizeof(WaveRes));
memcpy(send_data + sizeof(WaveRes) ,buffer,thisSize - 32);
free(buffer);
}
wave.sampling_rate = atoi(vecRes[0].c_str());
wave.sampling_time = atoi(vecRes[1].c_str());
wave.version = 1;
send_length = sizeof(WaveRes) + thisSize - 32;
memcpy(send_data,(char*)&wave,sizeof(WaveRes));
memcpy(send_data + sizeof(WaveRes) ,buffer,thisSize - 32);
free(buffer);
}
void JsonData::CmtCmd_83(char* recv_body,int& count,char* send_data,int& send_length)
@ -238,7 +239,6 @@ void JsonData::CmtCmd_83(char* recv_body,int& count,char* send_data,int& send_le
for (size_t i = 0; i < count; i++){
char temp[21]={0};
memcpy(temp,recv_body + i * 20,20);
printf("short_addr = %s\n",temp);
strcat(MeasurementID_,"'");
strcat(MeasurementID_,temp);
strcat(MeasurementID_,"'");
@ -402,7 +402,7 @@ void JsonData::CmtCmd_84(char* filename,char* file_md5,char* send_data,int& sen
void JsonData::CmtCmd_85(char* filename,char* file_md5,char* send_data,int& send_length)
{
zlog_info(zct,"file_path = %s,file_md5 = %d",filename,file_md5);
zlog_info(zct,"file_path = %s,file_md5 = %s",filename,file_md5);
sleep(3);
int iRet = system("/opt/opt.sh");
zlog_info(zct, "iRet = %d", iRet);
@ -413,7 +413,7 @@ void JsonData::CmtCmd_85(char* filename,char* file_md5,char* send_data,int& sen
void JsonData::CmtCmd_86(char* recv_body,int& count,char* filename,char* file_md5,char* send_data,int& send_length)
{
zlog_info(zct,"file_path = %s,file_md5 = %d",filename,file_md5);
zlog_info(zct,"file_path = %s,file_md5 = %s",filename,file_md5);
UpgradeSensorRes upgrade_sensor_res;
upgrade_sensor_res.code = 0;
sprintf(upgrade_sensor_res.message ,"%s","");
@ -508,8 +508,49 @@ void JsonData::CmtCmd_86(char* recv_body,int& count,char* filename,char* file_m
}
free(buffer);
}
void JsonData::CmtCmd_87(char* MeasurementID,char* send_data,int& send_length)
{
array_t arrRes;
GetEigenvalueRes get_eigenvalue_res;
char whereCon[128] = {};
sprintf(whereCon, "channelID like '%%%s%%' ORDER BY timeStamp DESC LIMIT 0,3", MeasurementID);
arrRes = sqlite_db_ctrl::instance().GetDataMultiLineTransaction(T_DATA_INFO(TNAME), "*", whereCon);
int iResult = arrRes.size();
if (iResult > 0) {
int j = 0;
GetEigenvalueRes get_eigenvalue_res[iResult];
for (; j < iResult; j++) {
get_eigenvalue_res[j].version = 1;
if(arrRes[j][1] == (std::string(MeasurementID) +"-X")){
get_eigenvalue_res[j].channel = 1;
}else if (arrRes[j][1] == (std::string(MeasurementID) +"-Y")){
get_eigenvalue_res[j].channel = 2;
}else if (arrRes[j][1] == (std::string(MeasurementID) +"-Z")){
get_eigenvalue_res[j].channel = 3;
}
printf("channle = %d\n",get_eigenvalue_res[j].channel);
get_eigenvalue_res[j].DiagnosisPk = atof(arrRes[j][2].c_str());
get_eigenvalue_res[j].IntegratPk = atof(arrRes[j][3].c_str());
get_eigenvalue_res[j].IntegratRMS = atof(arrRes[j][4].c_str());
get_eigenvalue_res[j].RmsValues = atof(arrRes[j][5].c_str());
get_eigenvalue_res[j].EnvelopEnergy = atof(arrRes[j][6].c_str());
get_eigenvalue_res[j].Amp1 = atof(arrRes[j][7].c_str());
get_eigenvalue_res[j].Amp2 = atof(arrRes[j][8].c_str());
get_eigenvalue_res[j].Amp3 = atof(arrRes[j][9].c_str());
get_eigenvalue_res[j].Amp4 = atof(arrRes[j][10].c_str());
get_eigenvalue_res[j].Amp5 = atof(arrRes[j][11].c_str());
get_eigenvalue_res[j].Phase1 = atof(arrRes[j][12].c_str());
get_eigenvalue_res[j].Phase2 = atof(arrRes[j][13].c_str());
get_eigenvalue_res[j].Phase3 = atof(arrRes[j][14].c_str());
get_eigenvalue_res[j].Phase4 = atof(arrRes[j][15].c_str());
get_eigenvalue_res[j].Time = atoi(arrRes[j][17].c_str());
}
memcpy(send_data,(char*)&get_eigenvalue_res,sizeof(GetEigenvalueRes) * j);
send_length = sizeof(GetEigenvalueRes) * j;
}
}
void JsonData::CmtCmd_88(char* recv_body,int& count)
void JsonData::CmtCmd_88(int& short_addr,char* send_data,int& send_length)
{
}

View File

@ -76,14 +76,15 @@ public:
std::string JsonCmd_Cgi_default();
//CMT tcp
void CmtCmd_80(char* send_data,int& return_length);
void CmtCmd_81(char* recv_body,int& count,char* send_data,int& return_length);
void CmtCmd_82(char* MeasurementID,char* send_data,int& channel,int& return_length);
void CmtCmd_83(char* recv_body,int& count,char* send_data,int& return_length);
void CmtCmd_80(char* send_data,int& send_length);
void CmtCmd_81(char* recv_body,int& count,char* send_data,int& send_length);
void CmtCmd_82(char* MeasurementID,char* send_data,int& channel,int& send_length);
void CmtCmd_83(char* recv_body,int& count,char* send_data,int& send_length);
void CmtCmd_84(char* filename,char* file_md5,char* send_data,int& send_length);
void CmtCmd_85(char* filename,char* file_md5,char* send_data,int& send_length);
void CmtCmd_86(char* recv_body,int& count,char* filename,char* file_md5,char* send_data,int& send_length);
void CmtCmd_88(char* recv_body,int& count);
void CmtCmd_87(char* MeasurementID,char* send_data,int& send_length);
void CmtCmd_88(int& short_addr,char* send_data,int& send_length);
private:
Json::FastWriter show_value_;

View File

@ -87,20 +87,12 @@ void LocalServer::HandleTcp_cmd(const char* recv_data,char* send_data,uint8_t& r
jd.CmtCmd_86(recv_body,count,upgrade_sensor.filename,upgrade_sensor.md5,send_data,send_length);
}break;
case KEigenvalue:{
GetEigenvalueReq get_eigenvalue;
memcpy(&get_eigenvalue,recv_data + sizeof(PackageHead),sizeof(GetEigenvalueReq));
jd.CmtCmd_87(get_eigenvalue.measurement_id,send_data,send_length);
}
break;
case KUpgradeSensorStop:{
char *recv_body = NULL;
int count = 0;
if (recvbody_length > 0){
recv_body = (char*)malloc(recvbody_length - 4);
memcpy((char*)&count,(char*)recv_data + sizeof(PackageHead) ,4);
memcpy(recv_body,recv_data + sizeof(PackageHead) + 4 ,recvbody_length - 4);
}
UpgradeSensorReq upgrade_sensor;
memcpy(&upgrade_sensor,recv_data + sizeof(PackageHead),sizeof(UpgradeSensorReq));
jd.CmtCmd_88(recv_body,count);
}
break;
default:

View File

@ -75,7 +75,7 @@ void CMTSession::do_read() {
pkg_head.head[2] = 0xAA;
pkg_head.cmd = cmd;
pkg_head.len = send_data_len;
memset(data_,0,sizeof(data_));
memset(data_,0,CMT_TCP_LEN);
memcpy(data_, &pkg_head, head_len_);
memcpy(data_ + head_len_, &send_data, send_data_len);
do_write(head_len_ + send_data_len);

View File

@ -171,7 +171,28 @@ struct UpgradeSensorRes{
char message[64];
};
//获取特征值 cmd 87
struct GetEigenvalueReq{
char measurement_id[20];
};
struct GetEigenvalueRes{
int version;
int channel;//参考 ChannelType
float DiagnosisPk;
float IntegratPk;
float IntegratRMS;
float RmsValues;
float EnvelopEnergy;
float Amp1;
float Amp2;
float Amp3;
float Amp4;
float Amp5;
float Phase1;
float Phase2;
float Phase3;
float Phase4;
int Time;
};
//停止更新传感器 cmd 88
struct UpgradeStopReq{

View File

@ -599,7 +599,7 @@ void Uart::DealDataNodeName(const char *pData) {
sprintf(szShortAdd, "%02x%02x", pData[3] & 0xFF, pData[4] & 0xFF);
memcpy(NodeName, &pData[7], 64);
memcpy(shortAdd, &pData[3], 2);
char whereCon[64] = {0};
char whereCon[128] = {0};
char uplCon[200] = {0x00};
char nodeWaveSend[10] = {0x00};