diff --git a/calculation/Calculation.cpp b/calculation/Calculation.cpp index 68e28c1..d19d964 100644 --- a/calculation/Calculation.cpp +++ b/calculation/Calculation.cpp @@ -451,24 +451,36 @@ void Calculation::Integration(std::vector & vecData,std::vector& r std::vector realshiftfft; std::vector imageshiftfft; - std::vector realvalue,imagevalue; + std::vector realvalue,imagevalue,ifftData; _FFT(vecData,realshiftfft,imageshiftfft); - for (int i = 0; i <= 5 / resolution; i++) { - realshiftfft[i] = 0; - imageshiftfft[i] = 0; - } - for (int i = 1000 / resolution ; i < realshiftfft.size(); i++) { - realshiftfft[i] = 0; - imageshiftfft[i] = 0; + + //在频域上进行5-1000 Hz的带通滤波 + for (int i = 0; i < vecData.size() / 2 + 1; ++i) { + double frequency = i * resolution; // 计算当前频率分量 + if (frequency < 5 || frequency > 1000) { + // 将5 Hz 到 1000 Hz 之外的频率成分设置为0 + realshiftfft[i] = 0.0; + realshiftfft[i] = 0.0; + imageshiftfft[i] = 0.0; + imageshiftfft[i] = 0.0; + } } + for(int k = 1; k < realshiftfft.size()+1;k++){ - realvalue.push_back((realshiftfft.at(k-1)/(k*2*M_PI))*1000 * 2);//单位转换mm/s,*1000 *2 精度损失 - imagevalue.push_back((imageshiftfft.at(k-1)/(k*2*M_PI))*1000 * 2);//单位转换mm/s,*1000 + double frequency = k * resolution; // 计算当前频率分量 + realvalue.push_back((realshiftfft.at(k-1)/(frequency*2*M_PI))*1000 * 2);//单位转换mm/s,*1000 *2 精度损失 + imagevalue.push_back((imageshiftfft.at(k-1)/(frequency*2*M_PI))*1000 * 2);//单位转换mm/s,*1000 } _iFFT(realvalue,imagevalue,retData); + + // for (size_t i = 0; i < ifftData.size(); i++) + // { + // retData.push_back( ifftData[i] * 2); + // } + } @@ -531,4 +543,4 @@ void Calculation::Integration(std::vector & vecData,std::vector& r for (int i = 0; i < N; ++i) { out_data[i] = backward_out[i][0] / N * 2 * 1000; // *1000 是单位换算, 跟python保持一致 } -}*/ \ No newline at end of file +}*/ diff --git a/jsonparse/SH_JsonCmd.cpp b/jsonparse/SH_JsonCmd.cpp index d614bcc..e1c5b23 100644 --- a/jsonparse/SH_JsonCmd.cpp +++ b/jsonparse/SH_JsonCmd.cpp @@ -2524,7 +2524,7 @@ std::string JsonData::JsonCmd_Cgi_55(Param_55 ¶m) if(res[17]=="01"){ printf("@@@@@@@@@@@@@@@@@@@@sample_rate=%d\n",SampleRate); - resolution = (((double)SampleRate/1000)*1016)/ 8192; + resolution = (((double)SampleRate/1000)*1016)/ vecWave.size(); }else if(res[17]=="02"){ string::size_type comper = param.mChannelId.find("Z"); diff --git a/threadfunc/SH_ThreadFunc.cpp b/threadfunc/SH_ThreadFunc.cpp index 6c42c5d..27d2044 100644 --- a/threadfunc/SH_ThreadFunc.cpp +++ b/threadfunc/SH_ThreadFunc.cpp @@ -53,6 +53,7 @@ void CheckThread() if (10 == heart_count) { // StatusPub(); if (GlobalConfig::LinkCount > 30) { + LOG_ERROR("MQTT connect failed\n"); #ifdef IMX6UL_GATEWAY char connect[10]={0x00}; readStringValue("config", "connect",connect,(char*)GlobalConfig::Config_G.c_str()); @@ -89,7 +90,15 @@ void CheckThread() iRet = data_publish(str.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str()); if(iRet != 0 ) { - LOG_ERROR("MQTT connect failed\n"); + LOG_ERROR("MQTT connect failed ,time check\n"); +#ifdef IMX6UL_GATEWAY + char connect[10]={0x00}; + readStringValue("config", "connect",connect,(char*)GlobalConfig::Config_G.c_str()); + if(atoi(connect)){ + LOG_ERROR("MQTT connect failed,time check ,reboot\n"); + exit(0); + } +#endif //bool status = Ping( GlobalConfig::ServerIP.c_str(), 10000); #ifdef NR5G_MODULE #ifdef IMX6UL_GATEWAY @@ -231,12 +240,13 @@ void CheckThread() loose_check = 0; sql_ctl->CalculateDip(); } - if(ModifyAddr == 3600 && pUart->bModifyAddr){ - LOG_ERROR("ModifyAddr failed \n"); - exit(0); - } - if(ModifyAddr == 21000){ - ModifyAddr = 0; + if(ModifyAddr == 3600) { + LOG_INFO("ModifyAddr check\n"); + ModifyAddr = 0; + if(pUart->bModifyAddr){ + LOG_ERROR("ModifyAddr failed \n"); + exit(0); + } } if(18000 == commSignal){ //5h