modify table name

This commit is contained in:
zhangsheng 2024-11-21 20:34:56 +08:00
parent 8b4e208e4a
commit fad8c2928c
6 changed files with 62 additions and 14 deletions

BIN
Cidn-SH

Binary file not shown.

View File

@ -349,7 +349,6 @@ int Uart::DealAskTask(uint16_t ushortAdd){
int taskID = scheduler::instance().StartSchedule(ushortAdd,next_duration); int taskID = scheduler::instance().StartSchedule(ushortAdd,next_duration);
ScheduleTask scheduleTask; ScheduleTask scheduleTask;
zlog_info(zct, "taskID = %d ", taskID); zlog_info(zct, "taskID = %d ", taskID);
taskID = 5;
if (taskID == kScheduleEigenValue) //1.特征值 if (taskID == kScheduleEigenValue) //1.特征值
{ {
char localtimestamp[32] = {0x00}; char localtimestamp[32] = {0x00};
@ -641,7 +640,6 @@ void Uart::DealDataNodeName(const char *pData) {
data_publish(strData.c_str(), GlobalConfig::Topic_G.mPubConfig.c_str()); data_publish(strData.c_str(), GlobalConfig::Topic_G.mPubConfig.c_str());
char szTableName[50] = {0x00}; char szTableName[50] = {0x00};
char sql_table_exist[50] = {0};
sprintf(szTableName, "t_data_%s", MeasurementID); sprintf(szTableName, "t_data_%s", MeasurementID);
memset(whereCon,0,sizeof(whereCon)); memset(whereCon,0,sizeof(whereCon));
sprintf(whereCon,"type='table' and name = '%s'",szTableName); sprintf(whereCon,"type='table' and name = '%s'",szTableName);
@ -650,7 +648,6 @@ void Uart::DealDataNodeName(const char *pData) {
if (ret == 0){ if (ret == 0){
sqlite_db_ctrl::instance().Createtable(szTableName); sqlite_db_ctrl::instance().Createtable(szTableName);
} }
memset(sql_table_exist, 0x00, sizeof(sql_table_exist));
memset(szTableName, 0x00, sizeof(szTableName)); memset(szTableName, 0x00, sizeof(szTableName));
sprintf(szTableName, "t_dataStatic_%s", MeasurementID); sprintf(szTableName, "t_dataStatic_%s", MeasurementID);
memset(whereCon,0,sizeof(whereCon)); memset(whereCon,0,sizeof(whereCon));
@ -1083,8 +1080,6 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql); sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
JsonData jd; JsonData jd;
jd.JsonCmd_32(strMeasurementID,1,1,strChannelID,error_msg); jd.JsonCmd_32(strMeasurementID,1,1,strChannelID,error_msg);
break; break;
} }

View File

@ -810,14 +810,19 @@ void Uart::DealWave() {
g_VecWaveDataZ.clear(); g_VecWaveDataZ.clear();
VecWaveDataZ.clear(); VecWaveDataZ.clear();
} }
char localtimestamp[32] = {0}; if (m_waveCountX > 0 || m_waveCountY > 0 || m_waveCountZ > 0)
GetTimeNet(localtimestamp, 1); {
char insertSql[100] = {0x00}; char localtimestamp[32] = {0};
char whereCon[50] = {0x00}; GetTimeNet(localtimestamp, 1);
sprintf(whereCon, "MeasurementID='%s'",strMeasurementID.c_str()); char insertSql[100] = {0x00};
memset(whereCon, 0x00, sizeof(whereCon)); char whereCon[50] = {0x00};
sprintf(insertSql, "'%s','%02x%02x','%s',0,'1','%s' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp,""); sprintf(whereCon, "MeasurementID='%s'",strMeasurementID.c_str());
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql); memset(whereCon, 0x00, sizeof(whereCon));
sprintf(insertSql, "'%s','%02x%02x','%s',0,'1','%s' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp,"");
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
}
wave_trans_ = false; wave_trans_ = false;
} }
} }

View File

@ -49,7 +49,7 @@ void Uart::UpdateWirelessNode(uint16_t shortAdd) {
char localtimestamp[32] = {0}; char localtimestamp[32] = {0};
GetTimeNet(localtimestamp, 1); GetTimeNet(localtimestamp, 1);
char insertSql[100] = {0}; char insertSql[100] = {0};
char wherecon[50] = {0}; char wherecon[64] = {0};
sprintf(wherecon," short_Addr = '%02x%02x' and status = 3 order by start_timestamp DESC",UINT16_HIGH(shortAdd), UINT16_LOW(shortAdd)); sprintf(wherecon," short_Addr = '%02x%02x' and status = 3 order by start_timestamp DESC",UINT16_HIGH(shortAdd), UINT16_LOW(shortAdd));
std::string spend_count = sqlite_db_ctrl::instance().GetData(" firmware_upgrade ","spend_count",wherecon); std::string spend_count = sqlite_db_ctrl::instance().GetData(" firmware_upgrade ","spend_count",wherecon);
if (atoi(spend_count.c_str()) >= 10){ if (atoi(spend_count.c_str()) >= 10){

View File

@ -295,3 +295,49 @@ void Calculation::Integration(std::vector<float> &vecData, std::vector<float> &r
_iFFT(realvalue, imagevalue, retData); _iFFT(realvalue, imagevalue, retData);
} }
std::vector<double> fftInterpolate(const std::vector<double>& input, size_t outputSize) {
size_t inputSize = input.size();
// 1. FFTW 初始化
fftw_complex *freqDomain = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * inputSize);
fftw_complex *paddedFreqDomain = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * outputSize);
fftw_plan forwardPlan = fftw_plan_dft_r2c_1d(inputSize, const_cast<double*>(input.data()), freqDomain, FFTW_ESTIMATE);
// 2. 执行 FFT
fftw_execute(forwardPlan);
// 3. 频域插值:扩展频谱
size_t halfSize = inputSize / 2 + 1; // 实数FFT的对称部分
for (size_t i = 0; i < halfSize; ++i) {
paddedFreqDomain[i][0] = freqDomain[i][0]; // 实部
paddedFreqDomain[i][1] = freqDomain[i][1]; // 虚部
}
for (size_t i = halfSize; i < outputSize - halfSize; ++i) {
paddedFreqDomain[i][0] = 0.0; // 实部填零
paddedFreqDomain[i][1] = 0.0; // 虚部填零
}
for (size_t i = outputSize - halfSize; i < outputSize; ++i) {
paddedFreqDomain[i][0] = freqDomain[inputSize - (outputSize - i)][0];
paddedFreqDomain[i][1] = freqDomain[inputSize - (outputSize - i)][1];
}
// 4. IFFT 变换回时域
std::vector<double> output(outputSize);
fftw_plan inversePlan = fftw_plan_dft_c2r_1d(outputSize, paddedFreqDomain, output.data(), FFTW_ESTIMATE);
fftw_execute(inversePlan);
// 5. 缩放输出结果
for (double& val : output) {
val /= outputSize;
}
// 清理 FFTW
fftw_destroy_plan(forwardPlan);
fftw_destroy_plan(inversePlan);
fftw_free(freqDomain);
fftw_free(paddedFreqDomain);
return output;
}

View File

@ -55,6 +55,8 @@ public:
static void envSpec(std::vector<float>& vecData, std::vector<float>& vecEnvSpecData, int StartFrequency, int EndFrequency); static void envSpec(std::vector<float>& vecData, std::vector<float>& vecEnvSpecData, int StartFrequency, int EndFrequency);
static void Integration(std::vector<float>& vecData, std::vector<float>& retData, double& resolution); static void Integration(std::vector<float>& vecData, std::vector<float>& retData, double& resolution);
std::vector<double> fftInterpolate(const std::vector<double>& input, size_t outputSize)
}; };
#endif // CALCULATION_HPP_ #endif // CALCULATION_HPP_