This commit is contained in:
zhangsheng 2026-02-07 18:19:07 +08:00
parent 42d759fe29
commit ce8442de5f
4 changed files with 72 additions and 48 deletions

View File

@ -19,8 +19,14 @@ std::string JsonData::JsonCmd_Cgi_26(Param_26 &param) {
jsonVal["dataNodeGatewayNo"] = GlobalConfig::MacAddr_G; jsonVal["dataNodeGatewayNo"] = GlobalConfig::MacAddr_G;
jsonVal["success"] = true; jsonVal["success"] = true;
jsonVal["message"] = " "; jsonVal["message"] = " ";
int lowSignal = -1, signalThreshold = -1, lowBatteryLevel = -1, batteryLevelThreshold = -1;
lowSignal = readIntValue("config", "lowSignal", (char *)GlobalConfig::Config_G.c_str());
signalThreshold = readIntValue("config", "signalThreshold", (char *)GlobalConfig::Config_G.c_str());
lowBatteryLevel = readIntValue("config", "lowBatteryLevel", (char *)GlobalConfig::Config_G.c_str());
batteryLevelThreshold = readIntValue("config", "batteryLevelThreshold", (char *)GlobalConfig::Config_G.c_str());
char looseValue[10] = {0x00}; char looseValue[10] = {0x00};
char whereCon[100] = {0};
std::string effect = "" ,rssi = "",batteryPower = "";
readStringValue("config", "loose", looseValue, (char *)GlobalConfig::Config_G.c_str()); readStringValue("config", "loose", looseValue, (char *)GlobalConfig::Config_G.c_str());
Json::Value jsArray; Json::Value jsArray;
array_t arrRes; array_t arrRes;
@ -552,6 +558,7 @@ std::string JsonData::JsonCmd_Cgi_30(Param_30 &param) {
while (inFile.read((char *)&fTemp, sizeof(fTemp))) { while (inFile.read((char *)&fTemp, sizeof(fTemp))) {
vecWave.push_back(fTemp); vecWave.push_back(fTemp);
} }
zlog_info(zct,"LF vecWave size %zu",vecWave.size());
//进行傅立叶变换 //进行傅立叶变换
Calculation::FFTSpec(vecWave, fftWave); Calculation::FFTSpec(vecWave, fftWave);
sampleRateReference = 1024; sampleRateReference = 1024;

View File

@ -709,6 +709,7 @@ std::string JsonData::JsonCmd_Cgi_60(Param_60 &param){
char file_path[64]={0}; char file_path[64]={0};
char cmd[128]={0}; char cmd[128]={0};
sprintf(cmd, "mv /opt/%s /opt/DataNode/",param.fileName.c_str()); sprintf(cmd, "mv /opt/%s /opt/DataNode/",param.fileName.c_str());
zlog_info(zct,"cmd = %s",cmd);
system(cmd); system(cmd);
sprintf(file_path, "/opt/DataNode/%s",param.fileName.c_str()); sprintf(file_path, "/opt/DataNode/%s",param.fileName.c_str());
zlog_info(zct,"file_path = %s",file_path); zlog_info(zct,"file_path = %s",file_path);

View File

@ -420,7 +420,7 @@ std::string LocalServer::HandleCgi_cmd(std::string &pData) {
case kTransducerUpgrade:{ case kTransducerUpgrade:{
JsonData jd; JsonData jd;
Param_60 param; Param_60 param;
std::string type = recvBody["type"].asString(); std::string type = recvBody["cmd"].asString();
if (0 == type.compare("UPDATE")) { if (0 == type.compare("UPDATE")) {
param.mMode = 0; param.mMode = 0;
param.fileName = recvBody["fileName"].asString(); param.fileName = recvBody["fileName"].asString();

View File

@ -76,6 +76,11 @@ void Uart::RecordBattery(std::string &strLongAddr, DataRecvStatic &dataStatic, s
sprintf(whereCon, "dataNodeNo='%s' and timeStamp = '%s'", strLongAddr.c_str(), res_static[8].c_str()); sprintf(whereCon, "dataNodeNo='%s' and timeStamp = '%s'", strLongAddr.c_str(), res_static[8].c_str());
sprintf(updateSql, "comprehensiveRSSI = '%f'", comprehensiveRSSI); sprintf(updateSql, "comprehensiveRSSI = '%f'", comprehensiveRSSI);
sqlite_db_ctrl::instance().UpdateTableData(tableName, updateSql, whereCon); sqlite_db_ctrl::instance().UpdateTableData(tableName, updateSql, whereCon);
memset(whereCon,0x00,sizeof(whereCon));
memset(updateSql,0x00,sizeof(updateSql));
sprintf(whereCon,"MeasurementID = '%s'", strLongAddr.c_str());
sprintf(updateSql,"RSSI = '%f'", comprehensiveRSSI);
sqlite_db_ctrl::instance().UpdateTableData(T_SENSOR_INFO(TNAME), updateSql, whereCon);
zlog_info(zct, "dataNodeNo='%s',zigbeeSignal=%d,zigbeeSignalNode=%d,actualRate=%f,comprehensiveRSSI=%f", strLongAddr.c_str(), zigbeeSignal, zigbeeSignalNode, actualRate, comprehensiveRSSI); zlog_info(zct, "dataNodeNo='%s',zigbeeSignal=%d,zigbeeSignalNode=%d,actualRate=%f,comprehensiveRSSI=%f", strLongAddr.c_str(), zigbeeSignal, zigbeeSignalNode, actualRate, comprehensiveRSSI);
} }
} }
@ -936,15 +941,15 @@ std::vector<float> Uart::DealData(int iChannel, float coe, unsigned int sampleRa
memcpy(dealdata, data, j * 92); memcpy(dealdata, data, j * 92);
deallen = j * 92; deallen = j * 92;
} }
// if(iChannel == WAVE_X){ if(iChannel == WAVE_LF_X){
// for (size_t i = 0; i < 200; i++) { for (size_t i = 0; i < 200; i++) {
// float fTemp = 0.0f; float fTemp = 0.0f;
// memset(buf, 0, 8); memset(buf, 0, 8);
// sprintf(buf, "%02x%02x", dealdata[2 * i + 1], dealdata[i * 2]); sprintf(buf, "%02x%02x", dealdata[2 * i + 1], dealdata[i * 2]);
// printf("%s ", buf); printf("%s ", buf);
// } }
// printf("\n"); printf("\n");
// } }
for (size_t i = 0; i < deallen; i++) { for (size_t i = 0; i < deallen; i++) {
float fTemp = 0.0f; float fTemp = 0.0f;
memset(buf, 0, 8); memset(buf, 0, 8);
@ -1014,7 +1019,7 @@ void Uart::DealWave() {
std::string strFileName = ""; std::string strFileName = "";
std::string strProduct = ""; std::string strProduct = "";
std::string softVersion = ""; std::string softVersion = "";
int version = 0; int version = 0;// 0 新版本 1 旧版本
std::vector<float> vecDataX, vecDataY, vecDataZ,vecDataVolX, vecDataVolY, vecDataVolZ; std::vector<float> vecDataX, vecDataY, vecDataZ,vecDataVolX, vecDataVolY, vecDataVolZ;
bool z = false; bool z = false;
if (wave_trans_) { //对每个传感器的每个通道进行遍历然后处理数据例如传感器1x轴的数据处理完后再去处理y轴的。传感器1的所有数据处理完后再处理传感器2的 if (wave_trans_) { //对每个传感器的每个通道进行遍历然后处理数据例如传感器1x轴的数据处理完后再去处理y轴的。传感器1的所有数据处理完后再处理传感器2的
@ -1063,11 +1068,6 @@ void Uart::DealWave() {
accSampleTimeZ = (float)ACCSampleTime; accSampleTimeZ = (float)ACCSampleTime;
version = 1; version = 1;
} }
if (compareVersions(softVersion, "2.6") == -1 && strProduct == "01") {
accSampleTimeXY = (float)ACCSampleTime;
accSampleTimeZ = (float)ACCSampleTime;
version = 1;
}
if (m_waveCountX > 0 || VecWaveDataX.size() > 0) { if (m_waveCountX > 0 || VecWaveDataX.size() > 0) {
zlog_info(zct, "m_waveCountX = %d,VecWaveData = %zu", m_waveCountX, VecWaveDataX.size()); zlog_info(zct, "m_waveCountX = %d,VecWaveData = %zu", m_waveCountX, VecWaveDataX.size());
coe = Calcoe(n, WAVE_X, strProduct, range); coe = Calcoe(n, WAVE_X, strProduct, range);
@ -1292,37 +1292,10 @@ void Uart::WriteDatFile(int sampleRate, std::string &strMeasurementID, int iChan
fwrite(localtimestamp,sizeof(localtimestamp),1,fp); fwrite(localtimestamp,sizeof(localtimestamp),1,fp);
zlog_info(zct, " vecData.size : %zu,start ", vecData.size()); zlog_info(zct, " vecData.size : %zu,start ", vecData.size());
int id = 0; int id = 0;
for (size_t i = 0; i < vecData.size(); i++) {
frTemp = vecData[i] - mean; if ((product == "02" && sampleRate == 24000 && iChannel == WAVE_Z && version == 1) ||
memset(buf, 0x00, sizeof(buf));
sprintf(buf, "%.2f", frTemp);
fwrite(&frTemp,sizeof(float),1,fp);
if (iChannel == WAVE_X){
wave_channel.WaveChannelX[i] = frTemp;
}else if (iChannel == WAVE_Y){
wave_channel.WaveChannelY[i] = frTemp;
}else if (iChannel == WAVE_Z){
wave_channel.WaveChannelZ[i] = frTemp;
}else if (iChannel == WAVE_LF_X){
wave_vol_channel.WaveChannelVolX[i] = frTemp;
}else if (iChannel == WAVE_LF_Y){
wave_vol_channel.WaveChannelVolY[i] = frTemp;
}else if (iChannel == WAVE_LF_Z){
wave_vol_channel.WaveChannelVolZ[i] = frTemp;
}
if (i != vecData.size() -1){
strncpy(mqttData + id ,buf,strlen(buf));
id = id + strlen(buf);
strncpy(mqttData + id,",",1);
id = id + 1;
}else{
strncpy(mqttData + id ,buf,strlen(buf));
}
}
fclose(fp);
if ((product == "02" && sampleRate == 24000 && iChannel == WAVE_Z && version == 0) ||
(iChannel == WAVE_Z && version == 1) || (iChannel == WAVE_Z && version == 1) ||
((iChannel == WAVE_LF_X || iChannel == WAVE_LF_Y|| iChannel == WAVE_LF_Z) && version == 1)){ ((iChannel == WAVE_LF_X || iChannel == WAVE_LF_Y|| iChannel == WAVE_LF_Z) && version == 0)){
sampleRate = 25600; sampleRate = 25600;
zlog_info(zct, " sampleRate = %d,product = %s,ACCSampleTime = %f ", sampleRate,product.c_str(),ACCSampleTime); zlog_info(zct, " sampleRate = %d,product = %s,ACCSampleTime = %f ", sampleRate,product.c_str(),ACCSampleTime);
size_t outSize = 25600; size_t outSize = 25600;
@ -1353,6 +1326,20 @@ void Uart::WriteDatFile(int sampleRate, std::string &strMeasurementID, int iChan
frTemp = outputData[i] - mean; frTemp = outputData[i] - mean;
memset(buf, 0x00, sizeof(buf)); memset(buf, 0x00, sizeof(buf));
sprintf(buf, "%.2f", frTemp); sprintf(buf, "%.2f", frTemp);
fwrite(&frTemp,sizeof(float),1,fp);
if (iChannel == WAVE_X){
wave_channel.WaveChannelX[i] = frTemp;
}else if (iChannel == WAVE_Y){
wave_channel.WaveChannelY[i] = frTemp;
}else if (iChannel == WAVE_Z){
wave_channel.WaveChannelZ[i] = frTemp;
}else if (iChannel == WAVE_LF_X){
wave_vol_channel.WaveChannelVolX[i] = frTemp;
}else if (iChannel == WAVE_LF_Y){
wave_vol_channel.WaveChannelVolY[i] = frTemp;
}else if (iChannel == WAVE_LF_Z){
wave_vol_channel.WaveChannelVolZ[i] = frTemp;
}
if (i != outputData.size() -1){ if (i != outputData.size() -1){
strncpy(mqttData + id ,buf,strlen(buf)); strncpy(mqttData + id ,buf,strlen(buf));
id = id + strlen(buf); id = id + strlen(buf);
@ -1362,7 +1349,36 @@ void Uart::WriteDatFile(int sampleRate, std::string &strMeasurementID, int iChan
strncpy(mqttData + id ,buf,strlen(buf)); strncpy(mqttData + id ,buf,strlen(buf));
} }
} }
}else{
for (size_t i = 0; i < vecData.size(); i++) {
frTemp = vecData[i] - mean;
memset(buf, 0x00, sizeof(buf));
sprintf(buf, "%.2f", frTemp);
fwrite(&frTemp,sizeof(float),1,fp);
if (iChannel == WAVE_X){
wave_channel.WaveChannelX[i] = frTemp;
}else if (iChannel == WAVE_Y){
wave_channel.WaveChannelY[i] = frTemp;
}else if (iChannel == WAVE_Z){
wave_channel.WaveChannelZ[i] = frTemp;
}else if (iChannel == WAVE_LF_X){
wave_vol_channel.WaveChannelVolX[i] = frTemp;
}else if (iChannel == WAVE_LF_Y){
wave_vol_channel.WaveChannelVolY[i] = frTemp;
}else if (iChannel == WAVE_LF_Z){
wave_vol_channel.WaveChannelVolZ[i] = frTemp;
} }
if (i != vecData.size() -1){
strncpy(mqttData + id ,buf,strlen(buf));
id = id + strlen(buf);
strncpy(mqttData + id,",",1);
id = id + 1;
}else{
strncpy(mqttData + id ,buf,strlen(buf));
}
}
}
fclose(fp);
zlog_info(zct, "fopen file vecData.size : %zu end ", vecData.size()); zlog_info(zct, "fopen file vecData.size : %zu end ", vecData.size());
wave_channel.wave_timestamp = nowTimetamp; wave_channel.wave_timestamp = nowTimetamp;
g_mapWaveChannel[strMeasurementID] = wave_channel; g_mapWaveChannel[strMeasurementID] = wave_channel;