diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 26d0937..d524bcf 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4702,6 +4702,14 @@ QList SweepWidthList; QList IntermediateFrequencyBandwidthList; QList ConversionDeviationList; + QList ReferencelevelList; + QList VerticalScaleList; + QList InputFrequencyResponseList; + QList AverageNoiselevelList; + QList HarmonicDistortionList; + QList InputAttenuationList; + QList GainCompressionPointList; + QList CalibrationSignalList; if(itemCatoryName.contains("频谱分析仪")){ for(const QStringList &row : ResultData) { @@ -4718,21 +4726,21 @@ Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]+ row[4]);//标称值 - Data.append(row[4]);//标称值单位 需要隐藏 - Data.append(row[5]);//扫频宽度 - Data.append(row[9]);//分辨率带宽 - Data.append(row[7]);//水平分辨率 +// Data.append(row[4]);//标称值单位 需要隐藏 + Data.append(row[5] + row[6]);//扫频宽度 + Data.append(row[9] + row[10]);//分辨率带宽 + Data.append(row[7] + row[8]);//水平分辨率 Data.append("");//测量值1 Data.append("");//测量值2 Data.append("");//测量值3 - double index_lower = row[3].toInt()-(row[3].toInt()*row[15].toDouble()+row[16].toDouble() * row[5].toInt()+ row[17].toDouble() * row[9].toInt() + row[18].toDouble() + row[19].toDouble() * row[7].toInt()); + double index_lower = row[3].toInt()-(row[3].toInt()*row[15].toDouble()+row[16].toDouble()* 0.01 * row[5].toInt()+ row[17].toDouble() * 0.01 * row[9].toInt() + row[18].toDouble() + row[19].toDouble() * row[7].toInt()); Data.append(QString::number(index_lower) + row[4]);//指标下限 Data.append("");//均值 - double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble() + row[16].toDouble() * row[5].toInt() +row[17].toDouble() * row[9].toInt() + row[18].toDouble() + row[19].toDouble() * row[7].toInt()); + double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble() + row[16].toDouble() * 0.01 * row[5].toInt() +row[17].toDouble() * 0.01 * row[9].toInt() + row[18].toDouble() + row[19].toDouble() * row[7].toInt()); Data.append(QString::number(index_upper) + row[4]);//指标上限 Data.append("");//结论 FrequencyDisplayList.append(Data); - }else if(!row.isEmpty() && row[56]=="1" && row[2] =="2"){ + }else if(!row.isEmpty() && row[56]=="1" && row[2] =="2"){ VerificationItem = "扫频宽度"; //添加列头 QStringList head; @@ -4744,19 +4752,19 @@ Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]+ row[4]);//标称值 - Data.append(row[4]);//标称值单位 需要隐藏 - Data.append(row[7]);//水平分辨率 +// Data.append(row[4]);//标称值单位 需要隐藏 + Data.append(row[7] + row[8]);//水平分辨率 Data.append("");//fl1 Data.append("");//fr1 Data.append("");//fl2 Data.append("");//fr2 Data.append("");//fl3 Data.append("");//fr3 - double index_lower = row[3].toInt() - (row[3].toInt() * row[15].toDouble() + row[7].toInt()); + double index_lower = row[3].toInt() - (row[3].toInt() * row[15].toDouble() * 0.01 + row[7].toInt()); QString index_lowerr_num = formatDoubleWithEffectiveDigits(index_lower,5); Data.append(index_lowerr_num+ row[4]);//指标下限 Data.append("");//均值 - double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble() + row[7].toInt()); + double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble() * 0.01 + row[7].toInt()); QString index_upper_num = formatDoubleWithEffectiveDigits(index_upper,5); Data.append(index_upper_num + row[4]);//指标上限 Data.append("");//结论 @@ -4783,9 +4791,11 @@ Data.append("");//fl3 Data.append("");//fr3 Data.append("");//△f3 - Data.append("");//指标下限 + double index_lower = row[3].toDouble() - (row[3].toDouble() * row[15].toDouble() * 0.01); + QString str_index_lower = formatDoubleWithDecimalPlaces(index_lower,2); + Data.append(str_index_lower + row[4]);//指标下限 Data.append("");//均值 - double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble()); + double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble() * 0.01); QString index_upper_num = formatDoubleWithDecimalPlaces(index_upper,2); Data.append(index_upper_num + row[4]);//指标上限 Data.append("");//结论 @@ -4803,9 +4813,10 @@ Data.append(row[2]); //检定项目 Data.append(row[3] + row[4]);//中频带宽 Data.append("");//测量值 - Data.append(row[22]);//指标下限 + QString index_lower = row[20].split("±")[1]; + Data.append("-" + index_lower+ row[21]);//指标下限 Data.append("");//转换偏差 - Data.append(row[23]);//指标上限 + Data.append("+" +index_lower+ row[21]);//指标上限 Data.append("");//结论 ConversionDeviationList.append(Data); }else if(!row.isEmpty() && row[59]=="1" && row[2] =="5"){ @@ -4822,11 +4833,12 @@ Data.append(row[3] + row[4]);//标称值 Data.append(row[25] + row[26]);//标准衰减器衰减量 Data.append(row[27] + row[28]);//信号源幅度 - Data.append("");//指标下限 + QString index_lower = row[20].split("±")[1]; + Data.append(QString::number(row[3].toDouble() - index_lower.toDouble()) + row[4]);//指标下限 Data.append("");//测量值 - Data.append("");//指标上限 + Data.append(QString::number(row[3].toDouble() + index_lower.toDouble()) + row[4]);//指标上限 Data.append("");//结论 - ConversionDeviationList.append(Data); + ReferencelevelList.append(Data); }else if(!row.isEmpty() && row[60]=="1" && row[2] =="6"){ VerificationItem = "垂直刻度"; //添加列头 @@ -4842,13 +4854,139 @@ Data.append(row[29]);//垂直刻度 Data.append(row[25] + row[26]);//标准衰减器衰减量 Data.append(row[27] + row[28]);//信号源幅度 - Data.append("");//指标下限 + QString index_lower = row[20].split("±")[1]; + Data.append(QString::number(row[3].toDouble() - index_lower.toDouble()) + row[4]);//指标下限 Data.append("");//测量值 - Data.append("");//指标上限 + Data.append(QString::number(row[3].toDouble() + index_lower.toDouble()) + row[4]);//指标上限 Data.append("");//结论 - ConversionDeviationList.append(Data); + VerticalScaleList.append(Data); + }else if(!row.isEmpty() && row[61]=="1" && row[2] =="7"){ + VerificationItem = "输入频响"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"测量值1"<<"测量值2"<<"测量值3" + <<"均值"<<"指标下限"<<"输入频响"<<"指标上限"<<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[11] + row[12]);//频率 + Data.append("");//测量值1 + Data.append("");//测量值2 + Data.append("");//测量值3 + Data.append("");//均值 + QString index_lower = row[20].split("±")[1]; + Data.append("-" + index_lower + row[21]);//指标下限 + Data.append("");//输入频响 + Data.append("+" + index_lower + row[21]);//指标上限 + Data.append("");//结论 + InputFrequencyResponseList.append(Data); + }else if(!row.isEmpty() && row[62]=="1" && row[2] =="8"){ + VerificationItem = "平均噪声电平"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"起始频率"<<"终止频率"<<"测量值"<<"修正后结果" + <<"指标上限"<<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[30] + row[31]);//起始频率 + Data.append(row[32] + row[33]);//终止频率 + Data.append("");//测量值 + Data.append(row[34] + row[35]);//修正值 + Data.append("");//修正后结果 + Data.append(row[36] + row[37]);//指标上限 + Data.append("");//结论 + AverageNoiselevelList.append(Data); + }else if(!row.isEmpty() && row[63]=="1" && row[2] =="9"){ + VerificationItem = "谐波失真"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"基波幅度"<<"二次谐波幅度"<<"二次谐波失真"<<"三次谐波幅度"<<"三次谐波失真" + <<"四次谐波幅度"<<"四次谐波失真"<<"二次谐波失真指标上限"<<"三次谐波失真指标上限"<<"四次谐波失真指标上限"<<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[11] + row[12]);//频率 + Data.append("");//基波幅度 + Data.append("");//二次谐波幅度 + Data.append("");//二次谐波失真 + Data.append("");//三次谐波幅度 + Data.append("");//三次谐波失真 + Data.append("");//四次谐波幅度 + Data.append("");//四次谐波失真 + Data.append(row[46] + row[47]);//二次谐波失真指标上限 + Data.append(row[48] + row[49]);//三次谐波失真指标上限 + Data.append(row[50] + row[51]);//四次谐波失真指标上限 + Data.append("");//结论 + HarmonicDistortionList.append(Data); + }else if(!row.isEmpty() && row[64]=="1" && row[2] =="10 "){ + VerificationItem = "输入衰减"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"测量值1"<<"测量值2"<<"测量值3"<<"均值"<<"指标下限" + <<"输入频响"<<"指标上限"<<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[11] + row[12]);//频率 + Data.append("");//测量值1 + Data.append("");//测量值2 + Data.append("");//测量值3 + Data.append("");//均值 + QString index_lower = row[20].split("±")[1]; + Data.append("-" + index_lower + row[21]);//指标下限 + Data.append("");//输入频响 + Data.append("+" + index_lower + row[21]);//指标上限 + Data.append("");//结论 + InputAttenuationList.append(Data); + }else if(!row.isEmpty() && row[65]=="1" && row[2] =="11 "){ + VerificationItem = "1db增益压缩点"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"输入衰减"<<"参考电平"<<"测量值"<<"增益压缩"<<"技术指标"<<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[38] + row[39]);//输入衰减 + Data.append(row[40] + row[41]);//参考电平 + Data.append("");//测量值 + Data.append("");//增益压缩 + Data.append(row[20] + row[21]);//技术指标 + Data.append("");//结论 + GainCompressionPointList.append(Data); + }else if(!row.isEmpty() && row[66]=="1" && row[2] =="12 "){ + VerificationItem = "校准信号"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"类型"<<"标称值"<<"测量值1"<<"测量值2"<<"测量值3"<<"指标下限" + <<"测量结果"<<"指标上限"<<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[52]);//类型 + Data.append(row[3] + row[4]);//标称值 + Data.append("");//测量值1 + Data.append("");//测量值2 + Data.append("");//测量值3 + QString index_lower = row[20].split("±")[1]; + Data.append(QString::number(row[3].toDouble() - index_lower.toDouble()) + row[4]);//指标下限 + Data.append("");//测量结果 + Data.append(QString::number(row[3].toDouble() + index_lower.toDouble()) + row[4]);//指标上限 + Data.append("");//结论 + CalibrationSignalList.append(Data); } - } } if(FrequencyDisplayList.count()!=0){ @@ -4857,6 +4995,36 @@ if(SweepWidthList.count()!=0){ DataMapList.insert("扫频宽度",SweepWidthList); }; + if(IntermediateFrequencyBandwidthList.count()!=0){ + DataMapList.insert("中频带宽",IntermediateFrequencyBandwidthList); + }; + if(ConversionDeviationList.count()!=0){ + DataMapList.insert("扫频宽度转换偏差",ConversionDeviationList); + }; + if(ReferencelevelList.count()!=0){ + DataMapList.insert("参考电平",ReferencelevelList); + }; + if(VerticalScaleList.count()!=0){ + DataMapList.insert("垂直刻度",VerticalScaleList); + }; + if(InputFrequencyResponseList.count()!=0){ + DataMapList.insert("输入频响",InputFrequencyResponseList); + }; + if(AverageNoiselevelList.count()!=0){ + DataMapList.insert("平均噪声电平",AverageNoiselevelList); + }; + if(HarmonicDistortionList.count()!=0){ + DataMapList.insert("谐波失真",HarmonicDistortionList); + }; + if(InputAttenuationList.count()!=0){ + DataMapList.insert("输入衰减",InputAttenuationList); + }; + if(GainCompressionPointList.count()!=0){ + DataMapList.insert("1db增益压缩点",GainCompressionPointList); + }; + if(CalibrationSignalList.count()!=0){ + DataMapList.insert("校准信号",CalibrationSignalList); + }; return DataMapList; } //保留5位小数,参数1:值,参数2:保留几位有效数字 @@ -4932,3 +5100,329 @@ } return isSuccess; } +//【更新】角色 +bool UpdateDeviceRole(DeviceRole role) +{ + QSqlQuery query; + query.prepare("UPDATE zd_device_role " + " SET belong_vername = :belong_vername,belong_checkname = :belong_checkname,cateory_id = :cateory_id," + " device_id=:device_id,device_type=:device_type, role=:role,update_time=:update_time " + " WHERE id = :id"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); + query.bindValue(":id", role.id); + query.bindValue(":belong_vername", role.belong_vername); + query.bindValue(":belong_checkname", role.belong_checkname); + query.bindValue(":cateory_id", role.cateory_id); + query.bindValue(":device_id", role.device_id); + query.bindValue(":device_type", role.device_type); + query.bindValue(":role", role.role); + query.bindValue(":update_time", currentDateTime); + bool isSuccess = query.exec(); + if (!isSuccess) { + qDebug() << "Insert data failed: " << query.lastError().text(); + } + return isSuccess; +} +//检定项-信号发生器 +QMap> BaseCommonApi::getDeviceMeasureItemDataSignalGenerator(QString itemCatoryName,QString itemId,QMap *headList) +{ + QMap> DataMapList; + QList resultData; + QStringList result; + resultData.clear(); + + QSqlQuery query; + query.prepare("SELECT bbdmidsg.*,bbdmii.frequency,bbdmii.power,bbdmii.amplitude_modulation_depth,bbdmii.frequency_modulation_deviation," + " bbdmii.remain_amplitude_modulation,bbdmii.remain_frequency_modulation,bbdmii.harmonic,bbdmii.phase_modulation_phase_deviation," + " bbdmii.no_harmonic FROM biz_business_device_measure_item_data_signal_generator bbdmidsg" + " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmidsg.item_id" + " WHERE bbdmidsg.item_id = :itemId" + " ORDER BY bbdmidsg.update_time DESC"); + query.bindValue(":itemId", itemId); + if (query.exec()) { + while (query.next()) { + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("item_id").toString()); //检定项id + result.append(query.value("data_type").toString());//检定项数据类型(一个检定项中区分两个表格)(字典code) + result.append(query.value("nominal_value").toString());//标称值 + result.append(query.value("unit").toString());//标称值单位 + result.append(query.value("amplitude").toString());//幅度 + result.append(query.value("amplitude_unit").toString());//幅度单位 + result.append(query.value("frequency").toString());//频率 + result.append(query.value("frequency_unit").toString());//频率单位 + result.append(query.value("power").toString());//功率 + result.append(query.value("power_unit").toString());//功率单位 + result.append(query.value("technical_index_symbol").toString());//技术指标符号 + result.append(query.value("technical_index").toString());//技术指标 12 + result.append(query.value("technical_index_unit").toString());//技术指标单位 + result.append(query.value("urel").toString());//U(k=2) + result.append(query.value("high_pass_filter").toString());//高通滤波 + result.append(query.value("high_pass_filter_unit").toString());//高通滤波单位 16 + result.append(query.value("lower_pass_filter").toString());//低通滤波 + result.append(query.value("lower_pass_filter_unit").toString());//低通滤波单位 + result.append(query.value("modulation_rate").toString());//调制速率 + result.append(query.value("modulation_rate_unit").toString());//调制速率单位 + result.append(query.value("upper_index_symbol").toString());//指标上限符号/THD上限符号 + result.append(query.value("upper_index").toString());//指标上限/THD上限 + result.append(query.value("upper_index_unit").toString());//指标上限单位/THD上限单位 + result.append(query.value("harmonic_number").toString());//谐波次数 + result.append(query.value("rbw_value").toString());//RBW + result.append(query.value("rbw_value_unit").toString());//RBW单位 + result.append(query.value("vbw_value").toString());//VBW + result.append(query.value("vbw_value_unit").toString());//VBW单位 + result.append(query.value("offset_frequency").toString());//偏移频率 + result.append(query.value("offset_frequency_unit").toString());//偏移频率单位 + result.append(query.value("create_time").toString()); + result.append(query.value("update_time").toString()); + result.append(query.value("frequency").toString());//频率 + result.append(query.value("power").toString());//功率 + result.append(query.value("amplitude_modulation_depth").toString());//调幅深度 + result.append(query.value("frequency_modulation_deviation").toString());//调频频偏 + result.append(query.value("remain_amplitude_modulation").toString());//剩余调幅 + result.append(query.value("remain_frequency_modulation").toString());//剩余调频 + result.append(query.value("harmonic").toString());//谐波 + result.append(query.value("phase_modulation_phase_deviation").toString());//调相相偏 + result.append(query.value("no_harmonic").toString());//非谐波 + resultData.append(result); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + //进行检定项目列头转换 + DataMapList= GetDataReturnItemListBySignalGenerator(itemCatoryName,resultData,DataMapList,headList); + return DataMapList; +} +QMap>BaseCommonApi::GetDataReturnItemListBySignalGenerator(QString itemCatoryName,QList ResultData,QMap> DataMapList,QMap *HeadMapList) +{ + QList FrequencyList; + QList PowerList; + QList AmplitudeModulationDepthList; + QList FMFrequencyOffsetList; + QList RemainingAmplitudeModulationList; + QList ResidualFMList; + QList HarmonicList; + QList PhaseModulationPhaseDeviationList; + QList NonHarmonicList; + if(itemCatoryName.contains("信号发生器")){ + for(const QStringList &row : ResultData) + { + QString VerificationItem=NULL; + if (!row.isEmpty() && row[33]=="1" && row[2] == "1") { + VerificationItem = "频率"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"标称值"<<"指标下限"<<"测量值"<<"指标上限"<<"相对误差"<<"U(k=2)" ; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3] + row[4]);//标称值 + QString temp_low = QString::number(row[3].toDouble() - row[12].toDouble()); + Data.append(temp_low+ row[4]);//指标下限 + Data.append("");//测量值 + QString temp_hight = QString::number(row[3].toDouble() + row[12].toDouble()); + Data.append(temp_hight+ row[4]);//指标上限 + Data.append("");//相对误差 + Data.append(row[14]);//U(k=2) + FrequencyList.append(Data); + }else if(!row.isEmpty() && row[34]=="1" && row[2] =="2"){ + VerificationItem = "功率"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"标称值"<<"指标下限" + <<"测量值"<<"指标上限"<<"U(k=2)"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[7] + row[8]);//频率 + Data.append(row[3] + row[4]);//标称值 + QString temp_low = QString::number(row[3].toDouble() - row[12].toDouble()); + Data.append(temp_low + row[4]);//指标下限 + Data.append("");//测量值 + QString temp_hight = QString::number(row[3].toDouble() + row[12].toDouble()); + Data.append(temp_hight+ row[4]);//指标上限 + Data.append(row[14]);//U(k=2) + PowerList.append(Data); + }else if(!row.isEmpty() && row[35]=="1" && row[2] =="3"){ + VerificationItem = "调幅深度"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"高通滤波"<<"低通滤波"<<"调制速率"<<"标称值"<<"指标下限"<<"测量值"<<"指标上限" + <<"U(k=2)"<<"THD"<<"THD上限"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[7] + row[8]);//频率 + Data.append(row[15] + row[16]);//高通滤波 + + Data.append(row[17] + row[18]);//低通滤波 + Data.append(row[19] + row[20]);//调制速率 + QString temp_hight = QString::number(row[3].toDouble() + row[12].toDouble()); + Data.append(row[3]+ row[4]);//标称值 + QString temp_low = QString::number(row[3].toDouble() - row[12].toDouble()); + Data.append(temp_low + row[4]);//指标下限 + Data.append("");//测量值 + Data.append(temp_hight + row[4]);//指标上限 + Data.append(row[14]);//U(k=2) + Data.append("");//THD + Data.append(row[21] + row[22] + row[23]);//THD上限 + AmplitudeModulationDepthList.append(Data); + }else if(!row.isEmpty() && row[36]=="1" && row[2] =="4"){ + VerificationItem = "调频频偏"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"高通滤波"<<"低通滤波"<<"调制速率"<<"标称值"<<"指标下限"<<"测量值"<<"指标上限" + <<"U(k=2)"<<"THD"<<"THD上限"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[7] + row[8]);//频率 + Data.append(row[15] + row[16]);//高通滤波 + Data.append(row[17] + row[18]);//低通滤波 + Data.append(row[19] + row[20]);//调制速率 + QString temp_hight = formatDoubleWithEffectiveDigits(row[3].toDouble() + row[12].toDouble(),4); + Data.append(row[3]+ row[4]);//标称值 + QString temp_low = formatDoubleWithEffectiveDigits(row[3].toDouble() - row[12].toDouble(),4); + Data.append(temp_low + row[4]);//指标下限 + Data.append("");//测量值 + Data.append(temp_hight + row[4]);//指标上限 + Data.append(row[14]);//U(k=2) + Data.append("");//THD + Data.append(row[21] + row[22] + row[23]);//THD上限 + FMFrequencyOffsetList.append(Data); + }else if(!row.isEmpty() && row[37]=="1" && row[2] =="5"){ + VerificationItem = "剩余调幅"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"高通滤波"<<"低通滤波"<<"剩余调幅"<<"指标上限"<<"U(k=2)"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[7] + row[8]);//频率 + Data.append(row[15] + row[16]);//高通滤波 + Data.append(row[17] + row[18]);//低通滤波 + Data.append("");//剩余调幅 + Data.append(row[21] + row[22] + row[23]);//指标上限 + Data.append(row[14]);//U(k=2) + RemainingAmplitudeModulationList.append(Data); + }else if(!row.isEmpty() && row[38]=="1" && row[2] =="6"){ + VerificationItem = "剩余调频"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"高通滤波"<<"低通滤波"<<"剩余调频"<<"指标上限"<<"U(k=2)"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[7] + row[8]);//频率 + Data.append(row[15] + row[16]);//高通滤波 + Data.append(row[17] + row[18]);//低通滤波 + Data.append("");//剩余调频 + Data.append(row[21] + row[22] + row[23]);//指标上限 + Data.append(row[14]);//U(k=2) + ResidualFMList.append(Data); + }else if(!row.isEmpty() && row[39]=="1" && row[2] =="7"){ + VerificationItem = "谐波"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"幅度"<<"谐波次数"<<"基波幅度"<<"谐波幅度"<<"测量值"<<"指标上限"<<"U(k=2)"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[7] + row[8]);//频率 + Data.append(row[5] + row[6]);//幅度 + Data.append(row[24]);//谐波次数 + Data.append("");//基波幅度 + Data.append("");//谐波幅度 + Data.append("");//测量值 + Data.append(row[21] + row[22] + row[23]);//指标上限 + Data.append(row[14]);//U(k=2) + HarmonicList.append(Data); + }else if(!row.isEmpty() && row[40]=="1" && row[2] =="8"){ + VerificationItem = "调相相偏"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"高通滤波"<<"低通滤波"<<"调制速率"<<"标称值"<<"指标下限"<<"测量值"<<"指标上限" + <<"U(k=2)"<<"THD"<<"THD上限"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[7] + row[8]);//频率 + Data.append(row[15] + row[16]);//高通滤波 + Data.append(row[17] + row[18]);//低通滤波 + Data.append(row[19] + row[20]);//调制速率 + Data.append(row[3]+ row[4]);//标称值 + QString temp_low = formatDoubleWithEffectiveDigits(row[3].toDouble() - row[12].toDouble(),4); + Data.append(temp_low + row[4]);//指标下限 + Data.append("");//测量值 + QString temp_hight = formatDoubleWithEffectiveDigits(row[3].toDouble() + row[12].toDouble(),4); + Data.append(temp_hight + row[4]);//指标上限 + Data.append(row[14]);//U(k=2) + Data.append("");//THD + Data.append(row[21] + row[22] + row[23]);//THD上限 + PhaseModulationPhaseDeviationList.append(Data); + }else if(!row.isEmpty() && row[41]=="1" && row[2] =="9"){ + VerificationItem = "非谐波"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"功率"<<"偏移频率"<<"测量值"<<"指标上限"<<"U(k=2)"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[7] + row[8]);//频率 + Data.append(row[15] + row[16]);//功率 + Data.append(row[29] + row[30]);//偏移频率 + Data.append("");//测量值 + Data.append(row[21] + row[22] + row[23]);//指标上限 + Data.append(row[14]);//U(k=2) + PhaseModulationPhaseDeviationList.append(Data); + } + + } + } + if(FrequencyList.count()!=0){ + DataMapList.insert("频率",FrequencyList); + }; + if(PowerList.count()!=0){ + DataMapList.insert("功率",PowerList); + }; + if(AmplitudeModulationDepthList.count()!=0){ + DataMapList.insert("调幅深度",AmplitudeModulationDepthList); + }; + if(FMFrequencyOffsetList.count()!=0){ + DataMapList.insert("调频频偏",FMFrequencyOffsetList); + }; + if(RemainingAmplitudeModulationList.count()!=0){ + DataMapList.insert("剩余调幅",RemainingAmplitudeModulationList); + }; + if(ResidualFMList.count()!=0){ + DataMapList.insert("剩余调频",ResidualFMList); + }; + if(HarmonicList.count()!=0){ + DataMapList.insert("谐波",HarmonicList); + }; + if(PhaseModulationPhaseDeviationList.count()!=0){ + DataMapList.insert("调相相偏",PhaseModulationPhaseDeviationList); + }; + if(NonHarmonicList.count()!=0){ + DataMapList.insert("非谐波",NonHarmonicList); + }; + return DataMapList; +} diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 26d0937..d524bcf 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4702,6 +4702,14 @@ QList SweepWidthList; QList IntermediateFrequencyBandwidthList; QList ConversionDeviationList; + QList ReferencelevelList; + QList VerticalScaleList; + QList InputFrequencyResponseList; + QList AverageNoiselevelList; + QList HarmonicDistortionList; + QList InputAttenuationList; + QList GainCompressionPointList; + QList CalibrationSignalList; if(itemCatoryName.contains("频谱分析仪")){ for(const QStringList &row : ResultData) { @@ -4718,21 +4726,21 @@ Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]+ row[4]);//标称值 - Data.append(row[4]);//标称值单位 需要隐藏 - Data.append(row[5]);//扫频宽度 - Data.append(row[9]);//分辨率带宽 - Data.append(row[7]);//水平分辨率 +// Data.append(row[4]);//标称值单位 需要隐藏 + Data.append(row[5] + row[6]);//扫频宽度 + Data.append(row[9] + row[10]);//分辨率带宽 + Data.append(row[7] + row[8]);//水平分辨率 Data.append("");//测量值1 Data.append("");//测量值2 Data.append("");//测量值3 - double index_lower = row[3].toInt()-(row[3].toInt()*row[15].toDouble()+row[16].toDouble() * row[5].toInt()+ row[17].toDouble() * row[9].toInt() + row[18].toDouble() + row[19].toDouble() * row[7].toInt()); + double index_lower = row[3].toInt()-(row[3].toInt()*row[15].toDouble()+row[16].toDouble()* 0.01 * row[5].toInt()+ row[17].toDouble() * 0.01 * row[9].toInt() + row[18].toDouble() + row[19].toDouble() * row[7].toInt()); Data.append(QString::number(index_lower) + row[4]);//指标下限 Data.append("");//均值 - double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble() + row[16].toDouble() * row[5].toInt() +row[17].toDouble() * row[9].toInt() + row[18].toDouble() + row[19].toDouble() * row[7].toInt()); + double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble() + row[16].toDouble() * 0.01 * row[5].toInt() +row[17].toDouble() * 0.01 * row[9].toInt() + row[18].toDouble() + row[19].toDouble() * row[7].toInt()); Data.append(QString::number(index_upper) + row[4]);//指标上限 Data.append("");//结论 FrequencyDisplayList.append(Data); - }else if(!row.isEmpty() && row[56]=="1" && row[2] =="2"){ + }else if(!row.isEmpty() && row[56]=="1" && row[2] =="2"){ VerificationItem = "扫频宽度"; //添加列头 QStringList head; @@ -4744,19 +4752,19 @@ Data.append(row[0]); //ID Data.append(row[2]); //检定项目 Data.append(row[3]+ row[4]);//标称值 - Data.append(row[4]);//标称值单位 需要隐藏 - Data.append(row[7]);//水平分辨率 +// Data.append(row[4]);//标称值单位 需要隐藏 + Data.append(row[7] + row[8]);//水平分辨率 Data.append("");//fl1 Data.append("");//fr1 Data.append("");//fl2 Data.append("");//fr2 Data.append("");//fl3 Data.append("");//fr3 - double index_lower = row[3].toInt() - (row[3].toInt() * row[15].toDouble() + row[7].toInt()); + double index_lower = row[3].toInt() - (row[3].toInt() * row[15].toDouble() * 0.01 + row[7].toInt()); QString index_lowerr_num = formatDoubleWithEffectiveDigits(index_lower,5); Data.append(index_lowerr_num+ row[4]);//指标下限 Data.append("");//均值 - double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble() + row[7].toInt()); + double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble() * 0.01 + row[7].toInt()); QString index_upper_num = formatDoubleWithEffectiveDigits(index_upper,5); Data.append(index_upper_num + row[4]);//指标上限 Data.append("");//结论 @@ -4783,9 +4791,11 @@ Data.append("");//fl3 Data.append("");//fr3 Data.append("");//△f3 - Data.append("");//指标下限 + double index_lower = row[3].toDouble() - (row[3].toDouble() * row[15].toDouble() * 0.01); + QString str_index_lower = formatDoubleWithDecimalPlaces(index_lower,2); + Data.append(str_index_lower + row[4]);//指标下限 Data.append("");//均值 - double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble()); + double index_upper = row[3].toInt() + (row[3].toInt() * row[15].toDouble() * 0.01); QString index_upper_num = formatDoubleWithDecimalPlaces(index_upper,2); Data.append(index_upper_num + row[4]);//指标上限 Data.append("");//结论 @@ -4803,9 +4813,10 @@ Data.append(row[2]); //检定项目 Data.append(row[3] + row[4]);//中频带宽 Data.append("");//测量值 - Data.append(row[22]);//指标下限 + QString index_lower = row[20].split("±")[1]; + Data.append("-" + index_lower+ row[21]);//指标下限 Data.append("");//转换偏差 - Data.append(row[23]);//指标上限 + Data.append("+" +index_lower+ row[21]);//指标上限 Data.append("");//结论 ConversionDeviationList.append(Data); }else if(!row.isEmpty() && row[59]=="1" && row[2] =="5"){ @@ -4822,11 +4833,12 @@ Data.append(row[3] + row[4]);//标称值 Data.append(row[25] + row[26]);//标准衰减器衰减量 Data.append(row[27] + row[28]);//信号源幅度 - Data.append("");//指标下限 + QString index_lower = row[20].split("±")[1]; + Data.append(QString::number(row[3].toDouble() - index_lower.toDouble()) + row[4]);//指标下限 Data.append("");//测量值 - Data.append("");//指标上限 + Data.append(QString::number(row[3].toDouble() + index_lower.toDouble()) + row[4]);//指标上限 Data.append("");//结论 - ConversionDeviationList.append(Data); + ReferencelevelList.append(Data); }else if(!row.isEmpty() && row[60]=="1" && row[2] =="6"){ VerificationItem = "垂直刻度"; //添加列头 @@ -4842,13 +4854,139 @@ Data.append(row[29]);//垂直刻度 Data.append(row[25] + row[26]);//标准衰减器衰减量 Data.append(row[27] + row[28]);//信号源幅度 - Data.append("");//指标下限 + QString index_lower = row[20].split("±")[1]; + Data.append(QString::number(row[3].toDouble() - index_lower.toDouble()) + row[4]);//指标下限 Data.append("");//测量值 - Data.append("");//指标上限 + Data.append(QString::number(row[3].toDouble() + index_lower.toDouble()) + row[4]);//指标上限 Data.append("");//结论 - ConversionDeviationList.append(Data); + VerticalScaleList.append(Data); + }else if(!row.isEmpty() && row[61]=="1" && row[2] =="7"){ + VerificationItem = "输入频响"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"测量值1"<<"测量值2"<<"测量值3" + <<"均值"<<"指标下限"<<"输入频响"<<"指标上限"<<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[11] + row[12]);//频率 + Data.append("");//测量值1 + Data.append("");//测量值2 + Data.append("");//测量值3 + Data.append("");//均值 + QString index_lower = row[20].split("±")[1]; + Data.append("-" + index_lower + row[21]);//指标下限 + Data.append("");//输入频响 + Data.append("+" + index_lower + row[21]);//指标上限 + Data.append("");//结论 + InputFrequencyResponseList.append(Data); + }else if(!row.isEmpty() && row[62]=="1" && row[2] =="8"){ + VerificationItem = "平均噪声电平"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"起始频率"<<"终止频率"<<"测量值"<<"修正后结果" + <<"指标上限"<<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[30] + row[31]);//起始频率 + Data.append(row[32] + row[33]);//终止频率 + Data.append("");//测量值 + Data.append(row[34] + row[35]);//修正值 + Data.append("");//修正后结果 + Data.append(row[36] + row[37]);//指标上限 + Data.append("");//结论 + AverageNoiselevelList.append(Data); + }else if(!row.isEmpty() && row[63]=="1" && row[2] =="9"){ + VerificationItem = "谐波失真"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"基波幅度"<<"二次谐波幅度"<<"二次谐波失真"<<"三次谐波幅度"<<"三次谐波失真" + <<"四次谐波幅度"<<"四次谐波失真"<<"二次谐波失真指标上限"<<"三次谐波失真指标上限"<<"四次谐波失真指标上限"<<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[11] + row[12]);//频率 + Data.append("");//基波幅度 + Data.append("");//二次谐波幅度 + Data.append("");//二次谐波失真 + Data.append("");//三次谐波幅度 + Data.append("");//三次谐波失真 + Data.append("");//四次谐波幅度 + Data.append("");//四次谐波失真 + Data.append(row[46] + row[47]);//二次谐波失真指标上限 + Data.append(row[48] + row[49]);//三次谐波失真指标上限 + Data.append(row[50] + row[51]);//四次谐波失真指标上限 + Data.append("");//结论 + HarmonicDistortionList.append(Data); + }else if(!row.isEmpty() && row[64]=="1" && row[2] =="10 "){ + VerificationItem = "输入衰减"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"测量值1"<<"测量值2"<<"测量值3"<<"均值"<<"指标下限" + <<"输入频响"<<"指标上限"<<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[11] + row[12]);//频率 + Data.append("");//测量值1 + Data.append("");//测量值2 + Data.append("");//测量值3 + Data.append("");//均值 + QString index_lower = row[20].split("±")[1]; + Data.append("-" + index_lower + row[21]);//指标下限 + Data.append("");//输入频响 + Data.append("+" + index_lower + row[21]);//指标上限 + Data.append("");//结论 + InputAttenuationList.append(Data); + }else if(!row.isEmpty() && row[65]=="1" && row[2] =="11 "){ + VerificationItem = "1db增益压缩点"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"输入衰减"<<"参考电平"<<"测量值"<<"增益压缩"<<"技术指标"<<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[38] + row[39]);//输入衰减 + Data.append(row[40] + row[41]);//参考电平 + Data.append("");//测量值 + Data.append("");//增益压缩 + Data.append(row[20] + row[21]);//技术指标 + Data.append("");//结论 + GainCompressionPointList.append(Data); + }else if(!row.isEmpty() && row[66]=="1" && row[2] =="12 "){ + VerificationItem = "校准信号"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"类型"<<"标称值"<<"测量值1"<<"测量值2"<<"测量值3"<<"指标下限" + <<"测量结果"<<"指标上限"<<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[52]);//类型 + Data.append(row[3] + row[4]);//标称值 + Data.append("");//测量值1 + Data.append("");//测量值2 + Data.append("");//测量值3 + QString index_lower = row[20].split("±")[1]; + Data.append(QString::number(row[3].toDouble() - index_lower.toDouble()) + row[4]);//指标下限 + Data.append("");//测量结果 + Data.append(QString::number(row[3].toDouble() + index_lower.toDouble()) + row[4]);//指标上限 + Data.append("");//结论 + CalibrationSignalList.append(Data); } - } } if(FrequencyDisplayList.count()!=0){ @@ -4857,6 +4995,36 @@ if(SweepWidthList.count()!=0){ DataMapList.insert("扫频宽度",SweepWidthList); }; + if(IntermediateFrequencyBandwidthList.count()!=0){ + DataMapList.insert("中频带宽",IntermediateFrequencyBandwidthList); + }; + if(ConversionDeviationList.count()!=0){ + DataMapList.insert("扫频宽度转换偏差",ConversionDeviationList); + }; + if(ReferencelevelList.count()!=0){ + DataMapList.insert("参考电平",ReferencelevelList); + }; + if(VerticalScaleList.count()!=0){ + DataMapList.insert("垂直刻度",VerticalScaleList); + }; + if(InputFrequencyResponseList.count()!=0){ + DataMapList.insert("输入频响",InputFrequencyResponseList); + }; + if(AverageNoiselevelList.count()!=0){ + DataMapList.insert("平均噪声电平",AverageNoiselevelList); + }; + if(HarmonicDistortionList.count()!=0){ + DataMapList.insert("谐波失真",HarmonicDistortionList); + }; + if(InputAttenuationList.count()!=0){ + DataMapList.insert("输入衰减",InputAttenuationList); + }; + if(GainCompressionPointList.count()!=0){ + DataMapList.insert("1db增益压缩点",GainCompressionPointList); + }; + if(CalibrationSignalList.count()!=0){ + DataMapList.insert("校准信号",CalibrationSignalList); + }; return DataMapList; } //保留5位小数,参数1:值,参数2:保留几位有效数字 @@ -4932,3 +5100,329 @@ } return isSuccess; } +//【更新】角色 +bool UpdateDeviceRole(DeviceRole role) +{ + QSqlQuery query; + query.prepare("UPDATE zd_device_role " + " SET belong_vername = :belong_vername,belong_checkname = :belong_checkname,cateory_id = :cateory_id," + " device_id=:device_id,device_type=:device_type, role=:role,update_time=:update_time " + " WHERE id = :id"); + QString currentDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"); + query.bindValue(":id", role.id); + query.bindValue(":belong_vername", role.belong_vername); + query.bindValue(":belong_checkname", role.belong_checkname); + query.bindValue(":cateory_id", role.cateory_id); + query.bindValue(":device_id", role.device_id); + query.bindValue(":device_type", role.device_type); + query.bindValue(":role", role.role); + query.bindValue(":update_time", currentDateTime); + bool isSuccess = query.exec(); + if (!isSuccess) { + qDebug() << "Insert data failed: " << query.lastError().text(); + } + return isSuccess; +} +//检定项-信号发生器 +QMap> BaseCommonApi::getDeviceMeasureItemDataSignalGenerator(QString itemCatoryName,QString itemId,QMap *headList) +{ + QMap> DataMapList; + QList resultData; + QStringList result; + resultData.clear(); + + QSqlQuery query; + query.prepare("SELECT bbdmidsg.*,bbdmii.frequency,bbdmii.power,bbdmii.amplitude_modulation_depth,bbdmii.frequency_modulation_deviation," + " bbdmii.remain_amplitude_modulation,bbdmii.remain_frequency_modulation,bbdmii.harmonic,bbdmii.phase_modulation_phase_deviation," + " bbdmii.no_harmonic FROM biz_business_device_measure_item_data_signal_generator bbdmidsg" + " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmidsg.item_id" + " WHERE bbdmidsg.item_id = :itemId" + " ORDER BY bbdmidsg.update_time DESC"); + query.bindValue(":itemId", itemId); + if (query.exec()) { + while (query.next()) { + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("item_id").toString()); //检定项id + result.append(query.value("data_type").toString());//检定项数据类型(一个检定项中区分两个表格)(字典code) + result.append(query.value("nominal_value").toString());//标称值 + result.append(query.value("unit").toString());//标称值单位 + result.append(query.value("amplitude").toString());//幅度 + result.append(query.value("amplitude_unit").toString());//幅度单位 + result.append(query.value("frequency").toString());//频率 + result.append(query.value("frequency_unit").toString());//频率单位 + result.append(query.value("power").toString());//功率 + result.append(query.value("power_unit").toString());//功率单位 + result.append(query.value("technical_index_symbol").toString());//技术指标符号 + result.append(query.value("technical_index").toString());//技术指标 12 + result.append(query.value("technical_index_unit").toString());//技术指标单位 + result.append(query.value("urel").toString());//U(k=2) + result.append(query.value("high_pass_filter").toString());//高通滤波 + result.append(query.value("high_pass_filter_unit").toString());//高通滤波单位 16 + result.append(query.value("lower_pass_filter").toString());//低通滤波 + result.append(query.value("lower_pass_filter_unit").toString());//低通滤波单位 + result.append(query.value("modulation_rate").toString());//调制速率 + result.append(query.value("modulation_rate_unit").toString());//调制速率单位 + result.append(query.value("upper_index_symbol").toString());//指标上限符号/THD上限符号 + result.append(query.value("upper_index").toString());//指标上限/THD上限 + result.append(query.value("upper_index_unit").toString());//指标上限单位/THD上限单位 + result.append(query.value("harmonic_number").toString());//谐波次数 + result.append(query.value("rbw_value").toString());//RBW + result.append(query.value("rbw_value_unit").toString());//RBW单位 + result.append(query.value("vbw_value").toString());//VBW + result.append(query.value("vbw_value_unit").toString());//VBW单位 + result.append(query.value("offset_frequency").toString());//偏移频率 + result.append(query.value("offset_frequency_unit").toString());//偏移频率单位 + result.append(query.value("create_time").toString()); + result.append(query.value("update_time").toString()); + result.append(query.value("frequency").toString());//频率 + result.append(query.value("power").toString());//功率 + result.append(query.value("amplitude_modulation_depth").toString());//调幅深度 + result.append(query.value("frequency_modulation_deviation").toString());//调频频偏 + result.append(query.value("remain_amplitude_modulation").toString());//剩余调幅 + result.append(query.value("remain_frequency_modulation").toString());//剩余调频 + result.append(query.value("harmonic").toString());//谐波 + result.append(query.value("phase_modulation_phase_deviation").toString());//调相相偏 + result.append(query.value("no_harmonic").toString());//非谐波 + resultData.append(result); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + //进行检定项目列头转换 + DataMapList= GetDataReturnItemListBySignalGenerator(itemCatoryName,resultData,DataMapList,headList); + return DataMapList; +} +QMap>BaseCommonApi::GetDataReturnItemListBySignalGenerator(QString itemCatoryName,QList ResultData,QMap> DataMapList,QMap *HeadMapList) +{ + QList FrequencyList; + QList PowerList; + QList AmplitudeModulationDepthList; + QList FMFrequencyOffsetList; + QList RemainingAmplitudeModulationList; + QList ResidualFMList; + QList HarmonicList; + QList PhaseModulationPhaseDeviationList; + QList NonHarmonicList; + if(itemCatoryName.contains("信号发生器")){ + for(const QStringList &row : ResultData) + { + QString VerificationItem=NULL; + if (!row.isEmpty() && row[33]=="1" && row[2] == "1") { + VerificationItem = "频率"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"标称值"<<"指标下限"<<"测量值"<<"指标上限"<<"相对误差"<<"U(k=2)" ; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[3] + row[4]);//标称值 + QString temp_low = QString::number(row[3].toDouble() - row[12].toDouble()); + Data.append(temp_low+ row[4]);//指标下限 + Data.append("");//测量值 + QString temp_hight = QString::number(row[3].toDouble() + row[12].toDouble()); + Data.append(temp_hight+ row[4]);//指标上限 + Data.append("");//相对误差 + Data.append(row[14]);//U(k=2) + FrequencyList.append(Data); + }else if(!row.isEmpty() && row[34]=="1" && row[2] =="2"){ + VerificationItem = "功率"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"标称值"<<"指标下限" + <<"测量值"<<"指标上限"<<"U(k=2)"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[7] + row[8]);//频率 + Data.append(row[3] + row[4]);//标称值 + QString temp_low = QString::number(row[3].toDouble() - row[12].toDouble()); + Data.append(temp_low + row[4]);//指标下限 + Data.append("");//测量值 + QString temp_hight = QString::number(row[3].toDouble() + row[12].toDouble()); + Data.append(temp_hight+ row[4]);//指标上限 + Data.append(row[14]);//U(k=2) + PowerList.append(Data); + }else if(!row.isEmpty() && row[35]=="1" && row[2] =="3"){ + VerificationItem = "调幅深度"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"高通滤波"<<"低通滤波"<<"调制速率"<<"标称值"<<"指标下限"<<"测量值"<<"指标上限" + <<"U(k=2)"<<"THD"<<"THD上限"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[7] + row[8]);//频率 + Data.append(row[15] + row[16]);//高通滤波 + + Data.append(row[17] + row[18]);//低通滤波 + Data.append(row[19] + row[20]);//调制速率 + QString temp_hight = QString::number(row[3].toDouble() + row[12].toDouble()); + Data.append(row[3]+ row[4]);//标称值 + QString temp_low = QString::number(row[3].toDouble() - row[12].toDouble()); + Data.append(temp_low + row[4]);//指标下限 + Data.append("");//测量值 + Data.append(temp_hight + row[4]);//指标上限 + Data.append(row[14]);//U(k=2) + Data.append("");//THD + Data.append(row[21] + row[22] + row[23]);//THD上限 + AmplitudeModulationDepthList.append(Data); + }else if(!row.isEmpty() && row[36]=="1" && row[2] =="4"){ + VerificationItem = "调频频偏"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"高通滤波"<<"低通滤波"<<"调制速率"<<"标称值"<<"指标下限"<<"测量值"<<"指标上限" + <<"U(k=2)"<<"THD"<<"THD上限"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[7] + row[8]);//频率 + Data.append(row[15] + row[16]);//高通滤波 + Data.append(row[17] + row[18]);//低通滤波 + Data.append(row[19] + row[20]);//调制速率 + QString temp_hight = formatDoubleWithEffectiveDigits(row[3].toDouble() + row[12].toDouble(),4); + Data.append(row[3]+ row[4]);//标称值 + QString temp_low = formatDoubleWithEffectiveDigits(row[3].toDouble() - row[12].toDouble(),4); + Data.append(temp_low + row[4]);//指标下限 + Data.append("");//测量值 + Data.append(temp_hight + row[4]);//指标上限 + Data.append(row[14]);//U(k=2) + Data.append("");//THD + Data.append(row[21] + row[22] + row[23]);//THD上限 + FMFrequencyOffsetList.append(Data); + }else if(!row.isEmpty() && row[37]=="1" && row[2] =="5"){ + VerificationItem = "剩余调幅"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"高通滤波"<<"低通滤波"<<"剩余调幅"<<"指标上限"<<"U(k=2)"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[7] + row[8]);//频率 + Data.append(row[15] + row[16]);//高通滤波 + Data.append(row[17] + row[18]);//低通滤波 + Data.append("");//剩余调幅 + Data.append(row[21] + row[22] + row[23]);//指标上限 + Data.append(row[14]);//U(k=2) + RemainingAmplitudeModulationList.append(Data); + }else if(!row.isEmpty() && row[38]=="1" && row[2] =="6"){ + VerificationItem = "剩余调频"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"高通滤波"<<"低通滤波"<<"剩余调频"<<"指标上限"<<"U(k=2)"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[7] + row[8]);//频率 + Data.append(row[15] + row[16]);//高通滤波 + Data.append(row[17] + row[18]);//低通滤波 + Data.append("");//剩余调频 + Data.append(row[21] + row[22] + row[23]);//指标上限 + Data.append(row[14]);//U(k=2) + ResidualFMList.append(Data); + }else if(!row.isEmpty() && row[39]=="1" && row[2] =="7"){ + VerificationItem = "谐波"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"幅度"<<"谐波次数"<<"基波幅度"<<"谐波幅度"<<"测量值"<<"指标上限"<<"U(k=2)"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[7] + row[8]);//频率 + Data.append(row[5] + row[6]);//幅度 + Data.append(row[24]);//谐波次数 + Data.append("");//基波幅度 + Data.append("");//谐波幅度 + Data.append("");//测量值 + Data.append(row[21] + row[22] + row[23]);//指标上限 + Data.append(row[14]);//U(k=2) + HarmonicList.append(Data); + }else if(!row.isEmpty() && row[40]=="1" && row[2] =="8"){ + VerificationItem = "调相相偏"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"高通滤波"<<"低通滤波"<<"调制速率"<<"标称值"<<"指标下限"<<"测量值"<<"指标上限" + <<"U(k=2)"<<"THD"<<"THD上限"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[7] + row[8]);//频率 + Data.append(row[15] + row[16]);//高通滤波 + Data.append(row[17] + row[18]);//低通滤波 + Data.append(row[19] + row[20]);//调制速率 + Data.append(row[3]+ row[4]);//标称值 + QString temp_low = formatDoubleWithEffectiveDigits(row[3].toDouble() - row[12].toDouble(),4); + Data.append(temp_low + row[4]);//指标下限 + Data.append("");//测量值 + QString temp_hight = formatDoubleWithEffectiveDigits(row[3].toDouble() + row[12].toDouble(),4); + Data.append(temp_hight + row[4]);//指标上限 + Data.append(row[14]);//U(k=2) + Data.append("");//THD + Data.append(row[21] + row[22] + row[23]);//THD上限 + PhaseModulationPhaseDeviationList.append(Data); + }else if(!row.isEmpty() && row[41]=="1" && row[2] =="9"){ + VerificationItem = "非谐波"; + //添加列头 + QStringList head; + head <<"序号"<<"检定项目"<<"频率"<<"功率"<<"偏移频率"<<"测量值"<<"指标上限"<<"U(k=2)"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(row[2]); //检定项目 + Data.append(row[7] + row[8]);//频率 + Data.append(row[15] + row[16]);//功率 + Data.append(row[29] + row[30]);//偏移频率 + Data.append("");//测量值 + Data.append(row[21] + row[22] + row[23]);//指标上限 + Data.append(row[14]);//U(k=2) + PhaseModulationPhaseDeviationList.append(Data); + } + + } + } + if(FrequencyList.count()!=0){ + DataMapList.insert("频率",FrequencyList); + }; + if(PowerList.count()!=0){ + DataMapList.insert("功率",PowerList); + }; + if(AmplitudeModulationDepthList.count()!=0){ + DataMapList.insert("调幅深度",AmplitudeModulationDepthList); + }; + if(FMFrequencyOffsetList.count()!=0){ + DataMapList.insert("调频频偏",FMFrequencyOffsetList); + }; + if(RemainingAmplitudeModulationList.count()!=0){ + DataMapList.insert("剩余调幅",RemainingAmplitudeModulationList); + }; + if(ResidualFMList.count()!=0){ + DataMapList.insert("剩余调频",ResidualFMList); + }; + if(HarmonicList.count()!=0){ + DataMapList.insert("谐波",HarmonicList); + }; + if(PhaseModulationPhaseDeviationList.count()!=0){ + DataMapList.insert("调相相偏",PhaseModulationPhaseDeviationList); + }; + if(NonHarmonicList.count()!=0){ + DataMapList.insert("非谐波",NonHarmonicList); + }; + return DataMapList; +} diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index e8632cb..d6ac787 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -1475,6 +1475,11 @@ static QList getDeviceRoleBydeviceId(QString cateory_id); //【新增】角色 static bool InsertDeviceRole(DeviceRole role); + //【更新】角色 + static bool UpdateDeviceRole(DeviceRole role); + //【查询】检定项-信号发生器 + static QMap> getDeviceMeasureItemDataSignalGenerator(QString itemCatoryName,QString itemId,QMap *headList); + static QMap> GetDataReturnItemListBySignalGenerator(QString itemCatoryName,QList ResultData,QMap> DataMapList,QMap *HeadMapList); };