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["success"] = true;
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 whereCon[100] = {0};
std::string effect = "" ,rssi = "",batteryPower = "";
readStringValue("config", "loose", looseValue, (char *)GlobalConfig::Config_G.c_str());
Json::Value jsArray;
array_t arrRes;
@ -552,6 +558,7 @@ std::string JsonData::JsonCmd_Cgi_30(Param_30 &param) {
while (inFile.read((char *)&fTemp, sizeof(fTemp))) {
vecWave.push_back(fTemp);
}
zlog_info(zct,"LF vecWave size %zu",vecWave.size());
//进行傅立叶变换
Calculation::FFTSpec(vecWave, fftWave);
sampleRateReference = 1024;

View File

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

View File

@ -420,7 +420,7 @@ std::string LocalServer::HandleCgi_cmd(std::string &pData) {
case kTransducerUpgrade:{
JsonData jd;
Param_60 param;
std::string type = recvBody["type"].asString();
std::string type = recvBody["cmd"].asString();
if (0 == type.compare("UPDATE")) {
param.mMode = 0;
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(updateSql, "comprehensiveRSSI = '%f'", comprehensiveRSSI);
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);
}
}
@ -936,15 +941,15 @@ std::vector<float> Uart::DealData(int iChannel, float coe, unsigned int sampleRa
memcpy(dealdata, data, j * 92);
deallen = j * 92;
}
// if(iChannel == WAVE_X){
// for (size_t i = 0; i < 200; i++) {
// float fTemp = 0.0f;
// memset(buf, 0, 8);
// sprintf(buf, "%02x%02x", dealdata[2 * i + 1], dealdata[i * 2]);
// printf("%s ", buf);
// }
// printf("\n");
// }
if(iChannel == WAVE_LF_X){
for (size_t i = 0; i < 200; i++) {
float fTemp = 0.0f;
memset(buf, 0, 8);
sprintf(buf, "%02x%02x", dealdata[2 * i + 1], dealdata[i * 2]);
printf("%s ", buf);
}
printf("\n");
}
for (size_t i = 0; i < deallen; i++) {
float fTemp = 0.0f;
memset(buf, 0, 8);
@ -1014,7 +1019,7 @@ void Uart::DealWave() {
std::string strFileName = "";
std::string strProduct = "";
std::string softVersion = "";
int version = 0;
int version = 0;// 0 新版本 1 旧版本
std::vector<float> vecDataX, vecDataY, vecDataZ,vecDataVolX, vecDataVolY, vecDataVolZ;
bool z = false;
if (wave_trans_) { //对每个传感器的每个通道进行遍历然后处理数据例如传感器1x轴的数据处理完后再去处理y轴的。传感器1的所有数据处理完后再处理传感器2的
@ -1063,11 +1068,6 @@ void Uart::DealWave() {
accSampleTimeZ = (float)ACCSampleTime;
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) {
zlog_info(zct, "m_waveCountX = %d,VecWaveData = %zu", m_waveCountX, VecWaveDataX.size());
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);
zlog_info(zct, " vecData.size : %zu,start ", vecData.size());
int id = 0;
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);
if ((product == "02" && sampleRate == 24000 && iChannel == WAVE_Z && version == 0) ||
if ((product == "02" && sampleRate == 24000 && 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;
zlog_info(zct, " sampleRate = %d,product = %s,ACCSampleTime = %f ", sampleRate,product.c_str(),ACCSampleTime);
size_t outSize = 25600;
@ -1353,7 +1326,49 @@ void Uart::WriteDatFile(int sampleRate, std::string &strMeasurementID, int iChan
frTemp = outputData[i] - mean;
memset(buf, 0x00, sizeof(buf));
sprintf(buf, "%.2f", frTemp);
if(i != outputData.size() -1){
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){
strncpy(mqttData + id ,buf,strlen(buf));
id = id + strlen(buf);
strncpy(mqttData + id,",",1);
id = id + 1;
}else{
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);
@ -1363,6 +1378,7 @@ void Uart::WriteDatFile(int sampleRate, std::string &strMeasurementID, int iChan
}
}
}
fclose(fp);
zlog_info(zct, "fopen file vecData.size : %zu end ", vecData.size());
wave_channel.wave_timestamp = nowTimetamp;
g_mapWaveChannel[strMeasurementID] = wave_channel;