diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 804d39d..8efbe12 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -910,7 +910,7 @@ break; case 13: //示波器标准装置 = 13 - //DataList=BaseCommonApi::getDeviceOscilloscopeCalibration(deviceCatoryName,CliTable[0].id,HeadList); + DataList=BaseCommonApi::getDeviceOscilloscopeCalibration(deviceCatoryName,CliTable[0].id,HeadList); break; } @@ -3191,37 +3191,37 @@ QMap> BaseCommonApi::GetDataReturnItemListByPistonGaugeResult(QString itemCatoryName,QList ResultData,QMap> DataMapList,QMap *HeadMapList) { QList IndicationErrorList; - if(itemCatoryName.contains("一般压力表")){ - for(const QStringList &row : ResultData) - { - QString VerificationItem=NULL; - if (!row.isEmpty()) { - VerificationItem = "项目"; - //添加列头 - QStringList head; - head <<"项目-量程上限90%以下"<<"项目-量程上限90%以上"<<"示值误差允许值"<<"示值误差最大值"<<"轻敲位移允许值"<<"轻敲位移最大值" - <<"回程误差允许值"<<"回程误差最大值"<<"结果"<<"输出备注"; - HeadMapList->insert(VerificationItem,head); - //添加数据 - QStringList Data; - Data.append(row[24]); //量程上限90%以下 - Data.append(row[25]); //量程上限90%及以上 - Data.append(row[5]);//示值误差允许值 - Data.append("");//示值误差最大值 - Data.append(row[4]);//轻敲位移允许值 - Data.append("");//轻敲位移最大值 - Data.append(row[3]);//回程误差允许值 - Data.append("");//回程误差最大值 - Data.append("");//结果 - Data.append("");//输出备注 - IndicationErrorList.append(Data); + if(itemCatoryName.contains("一般压力表")){ + for(const QStringList &row : ResultData) + { + QString VerificationItem=NULL; + if (!row.isEmpty()) { + VerificationItem = "项目"; + //添加列头 + QStringList head; + head <<"项目-量程上限90%以下"<<"项目-量程上限90%以上"<<"示值误差允许值"<<"示值误差最大值"<<"轻敲位移允许值"<<"轻敲位移最大值" + <<"回程误差允许值"<<"回程误差最大值"<<"结果"<<"输出备注"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[24]); //量程上限90%以下 + Data.append(row[25]); //量程上限90%及以上 + Data.append(row[5]);//示值误差允许值 + Data.append("");//示值误差最大值 + Data.append(row[4]);//轻敲位移允许值 + Data.append("");//轻敲位移最大值 + Data.append(row[3]);//回程误差允许值 + Data.append("");//回程误差最大值 + Data.append("");//结果 + Data.append("");//输出备注 + IndicationErrorList.append(Data); + } } } - } - if(IndicationErrorList.count()!=0){ - DataMapList.insert("项目",IndicationErrorList); - }; - return DataMapList; + if(IndicationErrorList.count()!=0){ + DataMapList.insert("项目",IndicationErrorList); + }; + return DataMapList; } @@ -3879,6 +3879,7 @@ result.append(query.value("signal_frequency").toString());//信号频率 result.append(query.value("nominal_value").toString());//标称值 result.append(query.value("nominal_value_unit").toString());//标称值单位 + result.append(query.value("data_type").toString());// result.append(query.value("create_time").toString()); result.append(query.value("update_time").toString()); resultData.append(result); @@ -3893,37 +3894,198 @@ }; QMap> BaseCommonApi::GetDataReturnItemListByOscilloscope(QString itemCatoryName,QList ResultData,QMap> DataMapList,QMap *HeadMapList) { - QList IndicationErrorList; - if(itemCatoryName.contains("数字示波器")){ - for(const QStringList &row : ResultData) - { - QString VerificationItem=NULL; - if (!row.isEmpty() && row[2] =="1") { - VerificationItem = "示值误差"; - //添加列头 - QStringList head; - head <<"序号"<<"检定项目"<<"轻敲前示值-正"<<"轻敲前示值-反"<<"轻敲后示值-正" - <<"轻敲后示值-反"<<"轻敲前后变动量-正"<<"轻敲前后变动量-反" ; - HeadMapList->insert(VerificationItem,head); - //添加数据 - QStringList Data; + QList time_baseList; + QList Current_gainList; + QList Current_biasList; + QList band_widthList; + QList trigger_sensitivity; + QList rise_timeList; + QList input_resistanceList; + QList calibrating_signalList; + if(itemCatoryName.contains("数字示波器")){ + for(const QStringList &row : ResultData) + { + QString VerificationItem=NULL; + QString CHNAME="CH1"; + if (!row.isEmpty() && row[2]=="1" && row[30] =="1") { + VerificationItem = "时基"; + QStringList head; - Data.append(row[0]); //ID - Data.append(row[2]); //标准器示值 + head <<"序号"<<"检定项目"<<"周期时标信号"<<"时基绝对误差△T/ns"<<"时基相对误差△δ" + <<"技术指标"<<"结论"; - Data.append(row[2]);//轻敲前示值-正 - Data.append(row[2]);//"轻敲前示值-反" - Data.append(row[2]);//轻敲后示值-正 - Data.append(row[2]);//轻敲后示值-反 - Data.append("0");//轻敲前后变动量-正 - Data.append("0");//轻敲前后变动量-反 - IndicationErrorList.append(Data); - } + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; - } - } - if(IndicationErrorList.count()!=0){ - DataMapList.insert("示值误差",IndicationErrorList); - }; - return DataMapList; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[11]+row[12]); //周期时标信号 + Data.append("");//时基绝对误差△T/ns + Data.append("");//时基相对误差△δ + Data.append("");//技术指标 + Data.append("");//结论 + time_baseList.append(Data); + } + if (!row.isEmpty() && row[3]=="1" && row[30] =="2") { + VerificationItem = "直流增益"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"阻抗" <<"幅度/DIV" <<"标准值" + <<"单位" + <<"测量值"<<"相对误差"<<"技术指标" <<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[16]+row[17]);//阻抗 + Data.append(row[17]);//垂直偏转系数(/div) + Data.append(row[28]);//标准值 + Data.append(row[29]);//标准值单位 + Data.append("");//测量值 + Data.append("");//相对误差 + Data.append(row[13]);//技术指标 + Data.append("");//结论 + Current_gainList.append(Data); + } + if (!row.isEmpty()&& row[4]=="1" && row[30] =="3") { + VerificationItem = "直流偏置"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"阻抗"<<"垂直偏转系数(/div)"<<"标准值" + <<"测量值"<<"误差"<<"相对误差"<<"技术指标" <<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[16]+row[17]);//阻抗 + Data.append(row[17]);//垂直偏转系数(/div) + Data.append(row[19]);//标准值 + Data.append("");//测量值 + Data.append("");//误差 + Data.append("");//相对误差 + Data.append(row[13]);//技术指标 + Data.append("");//结论 + Current_biasList.append(Data); + } + if (!row.isEmpty() && row[5]=="1" && row[30] =="4") { + VerificationItem = "频带宽度"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"阻抗"<<"垂直偏转系数(/div)" + << "频带宽度" <<"参考幅度" <<"参考幅度单位" <<"测量幅度" <<"测量幅度单位" + <<"分贝数(dB)" <<"技术指标" << "结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[16]+row[17]);//阻抗 + Data.append(row[17]);//垂直偏转系数(/div) + Data.append(row[22]);//频带宽度 + Data.append("");//参考幅度 + Data.append("");//参考幅度单位 + Data.append("");//测量幅度 + Data.append("");//测量幅度单位 + Data.append("");//分贝数(dB) + Data.append(row[13]);//技术指标 + Data.append("");//结论 + band_widthList.append(Data); + } + if (!row.isEmpty() && row[6]=="1" && row[30] =="5") { + VerificationItem = "触发灵敏度"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"触发类型"<<"信号频率" + << "标称值" <<"测量值" <<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[26]);//触发类型 + Data.append(row[27]);//信号频率 + Data.append(row[28]);//标称值 + Data.append("");//测量值 + trigger_sensitivity.append(Data); + } + if (!row.isEmpty() && row[7]=="1" && row[30] =="6") { + VerificationItem = "上升时间"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"阻抗"<<"垂直偏转系数(/div)" + <<"测量值"<<"测量值单位"<<"技术指标" <<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[16]+row[17]);//阻抗 + Data.append(row[17]);//垂直偏转系数(/div) + Data.append("");//测量值 + Data.append("");//测量值单位 + Data.append(row[13]);//技术指标 + Data.append("");//结论 + rise_timeList.append(Data); + } + if (!row.isEmpty() && row[8]=="1" && row[30] =="7") { + VerificationItem = "输入电阻"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"标称值"<<"垂直偏转系数(/div)" + <<"测量值"<<"测量值单位"<<"技术指标" <<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[28]+row[29]);//标称值 + Data.append(row[17]);//垂直偏转系数(/div) + Data.append("");//测量值 + Data.append("");//测量值单位 + Data.append(row[13]);//技术指标 + Data.append("");//结论 + input_resistanceList.append(Data); + } + if (!row.isEmpty() && row[9]=="1" && row[30] =="8") { + VerificationItem = "校准信号"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"项目"<<"标称值"<<"顶部测量值"<<"底部测量值" + <<"测量值"<<"测量值单位"<<"相对误差"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[30]);//项目 + Data.append(row[28]+row[29]);//标称值 + Data.append("");//顶部测量值 + Data.append("");//底部测量值 + Data.append("");//测量值 + Data.append("");//测量值单位 + Data.append(row[13]);//技术指标 + Data.append("");//相对误差 + calibrating_signalList.append(Data); + } + + } + if(time_baseList.count()!=0){DataMapList.insert("时基",time_baseList);} + if(Current_gainList.count()!=0){DataMapList.insert("直流增益",Current_gainList);} + if(Current_biasList.count()!=0){DataMapList.insert("直流偏置",Current_biasList);} + if(band_widthList.count()!=0){DataMapList.insert("频带宽度",band_widthList);} + if(trigger_sensitivity.count()!=0){DataMapList.insert("触发灵敏度",trigger_sensitivity);} + if(rise_timeList.count()!=0){DataMapList.insert("上升时间",rise_timeList);} + if(input_resistanceList.count()!=0){DataMapList.insert("输入电阻",input_resistanceList);} + if(calibrating_signalList.count()!=0){DataMapList.insert("校准信号",calibrating_signalList);} + } + return DataMapList; }; diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 804d39d..8efbe12 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -910,7 +910,7 @@ break; case 13: //示波器标准装置 = 13 - //DataList=BaseCommonApi::getDeviceOscilloscopeCalibration(deviceCatoryName,CliTable[0].id,HeadList); + DataList=BaseCommonApi::getDeviceOscilloscopeCalibration(deviceCatoryName,CliTable[0].id,HeadList); break; } @@ -3191,37 +3191,37 @@ QMap> BaseCommonApi::GetDataReturnItemListByPistonGaugeResult(QString itemCatoryName,QList ResultData,QMap> DataMapList,QMap *HeadMapList) { QList IndicationErrorList; - if(itemCatoryName.contains("一般压力表")){ - for(const QStringList &row : ResultData) - { - QString VerificationItem=NULL; - if (!row.isEmpty()) { - VerificationItem = "项目"; - //添加列头 - QStringList head; - head <<"项目-量程上限90%以下"<<"项目-量程上限90%以上"<<"示值误差允许值"<<"示值误差最大值"<<"轻敲位移允许值"<<"轻敲位移最大值" - <<"回程误差允许值"<<"回程误差最大值"<<"结果"<<"输出备注"; - HeadMapList->insert(VerificationItem,head); - //添加数据 - QStringList Data; - Data.append(row[24]); //量程上限90%以下 - Data.append(row[25]); //量程上限90%及以上 - Data.append(row[5]);//示值误差允许值 - Data.append("");//示值误差最大值 - Data.append(row[4]);//轻敲位移允许值 - Data.append("");//轻敲位移最大值 - Data.append(row[3]);//回程误差允许值 - Data.append("");//回程误差最大值 - Data.append("");//结果 - Data.append("");//输出备注 - IndicationErrorList.append(Data); + if(itemCatoryName.contains("一般压力表")){ + for(const QStringList &row : ResultData) + { + QString VerificationItem=NULL; + if (!row.isEmpty()) { + VerificationItem = "项目"; + //添加列头 + QStringList head; + head <<"项目-量程上限90%以下"<<"项目-量程上限90%以上"<<"示值误差允许值"<<"示值误差最大值"<<"轻敲位移允许值"<<"轻敲位移最大值" + <<"回程误差允许值"<<"回程误差最大值"<<"结果"<<"输出备注"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[24]); //量程上限90%以下 + Data.append(row[25]); //量程上限90%及以上 + Data.append(row[5]);//示值误差允许值 + Data.append("");//示值误差最大值 + Data.append(row[4]);//轻敲位移允许值 + Data.append("");//轻敲位移最大值 + Data.append(row[3]);//回程误差允许值 + Data.append("");//回程误差最大值 + Data.append("");//结果 + Data.append("");//输出备注 + IndicationErrorList.append(Data); + } } } - } - if(IndicationErrorList.count()!=0){ - DataMapList.insert("项目",IndicationErrorList); - }; - return DataMapList; + if(IndicationErrorList.count()!=0){ + DataMapList.insert("项目",IndicationErrorList); + }; + return DataMapList; } @@ -3879,6 +3879,7 @@ result.append(query.value("signal_frequency").toString());//信号频率 result.append(query.value("nominal_value").toString());//标称值 result.append(query.value("nominal_value_unit").toString());//标称值单位 + result.append(query.value("data_type").toString());// result.append(query.value("create_time").toString()); result.append(query.value("update_time").toString()); resultData.append(result); @@ -3893,37 +3894,198 @@ }; QMap> BaseCommonApi::GetDataReturnItemListByOscilloscope(QString itemCatoryName,QList ResultData,QMap> DataMapList,QMap *HeadMapList) { - QList IndicationErrorList; - if(itemCatoryName.contains("数字示波器")){ - for(const QStringList &row : ResultData) - { - QString VerificationItem=NULL; - if (!row.isEmpty() && row[2] =="1") { - VerificationItem = "示值误差"; - //添加列头 - QStringList head; - head <<"序号"<<"检定项目"<<"轻敲前示值-正"<<"轻敲前示值-反"<<"轻敲后示值-正" - <<"轻敲后示值-反"<<"轻敲前后变动量-正"<<"轻敲前后变动量-反" ; - HeadMapList->insert(VerificationItem,head); - //添加数据 - QStringList Data; + QList time_baseList; + QList Current_gainList; + QList Current_biasList; + QList band_widthList; + QList trigger_sensitivity; + QList rise_timeList; + QList input_resistanceList; + QList calibrating_signalList; + if(itemCatoryName.contains("数字示波器")){ + for(const QStringList &row : ResultData) + { + QString VerificationItem=NULL; + QString CHNAME="CH1"; + if (!row.isEmpty() && row[2]=="1" && row[30] =="1") { + VerificationItem = "时基"; + QStringList head; - Data.append(row[0]); //ID - Data.append(row[2]); //标准器示值 + head <<"序号"<<"检定项目"<<"周期时标信号"<<"时基绝对误差△T/ns"<<"时基相对误差△δ" + <<"技术指标"<<"结论"; - Data.append(row[2]);//轻敲前示值-正 - Data.append(row[2]);//"轻敲前示值-反" - Data.append(row[2]);//轻敲后示值-正 - Data.append(row[2]);//轻敲后示值-反 - Data.append("0");//轻敲前后变动量-正 - Data.append("0");//轻敲前后变动量-反 - IndicationErrorList.append(Data); - } + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; - } - } - if(IndicationErrorList.count()!=0){ - DataMapList.insert("示值误差",IndicationErrorList); - }; - return DataMapList; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[11]+row[12]); //周期时标信号 + Data.append("");//时基绝对误差△T/ns + Data.append("");//时基相对误差△δ + Data.append("");//技术指标 + Data.append("");//结论 + time_baseList.append(Data); + } + if (!row.isEmpty() && row[3]=="1" && row[30] =="2") { + VerificationItem = "直流增益"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"阻抗" <<"幅度/DIV" <<"标准值" + <<"单位" + <<"测量值"<<"相对误差"<<"技术指标" <<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[16]+row[17]);//阻抗 + Data.append(row[17]);//垂直偏转系数(/div) + Data.append(row[28]);//标准值 + Data.append(row[29]);//标准值单位 + Data.append("");//测量值 + Data.append("");//相对误差 + Data.append(row[13]);//技术指标 + Data.append("");//结论 + Current_gainList.append(Data); + } + if (!row.isEmpty()&& row[4]=="1" && row[30] =="3") { + VerificationItem = "直流偏置"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"阻抗"<<"垂直偏转系数(/div)"<<"标准值" + <<"测量值"<<"误差"<<"相对误差"<<"技术指标" <<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[16]+row[17]);//阻抗 + Data.append(row[17]);//垂直偏转系数(/div) + Data.append(row[19]);//标准值 + Data.append("");//测量值 + Data.append("");//误差 + Data.append("");//相对误差 + Data.append(row[13]);//技术指标 + Data.append("");//结论 + Current_biasList.append(Data); + } + if (!row.isEmpty() && row[5]=="1" && row[30] =="4") { + VerificationItem = "频带宽度"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"阻抗"<<"垂直偏转系数(/div)" + << "频带宽度" <<"参考幅度" <<"参考幅度单位" <<"测量幅度" <<"测量幅度单位" + <<"分贝数(dB)" <<"技术指标" << "结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[16]+row[17]);//阻抗 + Data.append(row[17]);//垂直偏转系数(/div) + Data.append(row[22]);//频带宽度 + Data.append("");//参考幅度 + Data.append("");//参考幅度单位 + Data.append("");//测量幅度 + Data.append("");//测量幅度单位 + Data.append("");//分贝数(dB) + Data.append(row[13]);//技术指标 + Data.append("");//结论 + band_widthList.append(Data); + } + if (!row.isEmpty() && row[6]=="1" && row[30] =="5") { + VerificationItem = "触发灵敏度"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"触发类型"<<"信号频率" + << "标称值" <<"测量值" <<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[26]);//触发类型 + Data.append(row[27]);//信号频率 + Data.append(row[28]);//标称值 + Data.append("");//测量值 + trigger_sensitivity.append(Data); + } + if (!row.isEmpty() && row[7]=="1" && row[30] =="6") { + VerificationItem = "上升时间"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"阻抗"<<"垂直偏转系数(/div)" + <<"测量值"<<"测量值单位"<<"技术指标" <<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[16]+row[17]);//阻抗 + Data.append(row[17]);//垂直偏转系数(/div) + Data.append("");//测量值 + Data.append("");//测量值单位 + Data.append(row[13]);//技术指标 + Data.append("");//结论 + rise_timeList.append(Data); + } + if (!row.isEmpty() && row[8]=="1" && row[30] =="7") { + VerificationItem = "输入电阻"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"标称值"<<"垂直偏转系数(/div)" + <<"测量值"<<"测量值单位"<<"技术指标" <<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[28]+row[29]);//标称值 + Data.append(row[17]);//垂直偏转系数(/div) + Data.append("");//测量值 + Data.append("");//测量值单位 + Data.append(row[13]);//技术指标 + Data.append("");//结论 + input_resistanceList.append(Data); + } + if (!row.isEmpty() && row[9]=="1" && row[30] =="8") { + VerificationItem = "校准信号"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"项目"<<"标称值"<<"顶部测量值"<<"底部测量值" + <<"测量值"<<"测量值单位"<<"相对误差"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[30]);//项目 + Data.append(row[28]+row[29]);//标称值 + Data.append("");//顶部测量值 + Data.append("");//底部测量值 + Data.append("");//测量值 + Data.append("");//测量值单位 + Data.append(row[13]);//技术指标 + Data.append("");//相对误差 + calibrating_signalList.append(Data); + } + + } + if(time_baseList.count()!=0){DataMapList.insert("时基",time_baseList);} + if(Current_gainList.count()!=0){DataMapList.insert("直流增益",Current_gainList);} + if(Current_biasList.count()!=0){DataMapList.insert("直流偏置",Current_biasList);} + if(band_widthList.count()!=0){DataMapList.insert("频带宽度",band_widthList);} + if(trigger_sensitivity.count()!=0){DataMapList.insert("触发灵敏度",trigger_sensitivity);} + if(rise_timeList.count()!=0){DataMapList.insert("上升时间",rise_timeList);} + if(input_resistanceList.count()!=0){DataMapList.insert("输入电阻",input_resistanceList);} + if(calibrating_signalList.count()!=0){DataMapList.insert("校准信号",calibrating_signalList);} + } + return DataMapList; }; diff --git a/softwareDirectory/AutoVerScheme/checkwindow.cpp b/softwareDirectory/AutoVerScheme/checkwindow.cpp index e1acddc..4ae7da2 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.cpp +++ b/softwareDirectory/AutoVerScheme/checkwindow.cpp @@ -70,6 +70,9 @@ cmdPlaceHolderList.insert("{FREQ}","频率"); cmdPlaceHolderList.insert("{UNIT}","单位"); cmdPlaceHolderList.insert("{FUNIT}","频率单位"); + cmdPlaceHolderList.insert("{OHM}","阻抗"); + //示波器 + cmdPlaceHolderList.insert("{OHM}","阻抗"); //转换 unitTypeTransList.insert("Ω","OHM"); unitTypeTransList.insert("KΩ","KOHM"); @@ -373,6 +376,7 @@ headList.clear(); calibrationList.clear(); headTableList.clear(); + chList.clear(); //calibrationList =BaseCommonApi::Search_CalibrationTable(deviceId,&headList); caliDataList = BaseCommonApi::Search_CalibrationTableClass(deviceId,&headTableList); if(caliDataList.count()<1){ @@ -413,11 +417,16 @@ int idx= getIndexByHeader(sLabel,"检定项目"); int idx2= getIndexByHeader(sLabel,"标准值"); int idx3= getIndexByHeader(sLabel,"单位"); + int chname= getIndexByHeader(sLabel,"通道"); if(idx==-1){idx=1;};if(idx2==-1){idx2=5;};if(idx3==-1){idx3=4;}; ui->tableWidget_Point->setItem(row, 0, new QTableWidgetItem(dataRes[i][idx])); ui->tableWidget_Point->setItem(row, 1, new QTableWidgetItem(dataRes[i][idx2]+"("+dataRes[i][idx3]+")")); ui->tableWidget_Point->setItem(row, 2, new QTableWidgetItem("1")); row++; + if(!chList.contains(dataRes[i][chname])) + { + chList.append(dataRes[i][chname]); + } } // ======================================================================================== // 按钮设置显示 @@ -981,7 +990,6 @@ if(idx!=-1){ if(devicetype) { - NewUnit = TranTypeUnit(data[idx]); //转换 Ω->OHM sNewCmd = sNewCmd.replace(key,NewUnit); continue; @@ -996,18 +1004,22 @@ } return sNewCmd; } - +//_text void CheckWindow::on_pushButton_start_clicked() { if(headTableList.keys().count()==0) return; BaseCommonApi::SaveLogInfo(1,QString("-----------------------------------")); + if(iEquipType==13) + { + this->Oscilloscopetextflow(); + return; + } connectDevice(); for(int i=0;i dataRes = caliDataList.value(sLabel); @@ -1074,7 +1086,7 @@ void CheckWindow::autoAdujstData(QString sLabel,int i,double dStdValue,QList& dataRes){ double dError; QString newdStdValue,newdError; - if(iEquipType==1){ + if(iEquipType==1 || iEquipType==13){ if(qIsFinite(dStdValue)){ bool bOk = false; dStdValue = QInputDialog::getDouble(this,"手动测试","请输入被检示值",0,-100000, 100000,5,&bOk); @@ -1087,17 +1099,47 @@ } newdStdValue= TranDecimals(sLabel,dataRes[i],dStdValue); int idx= getIndexByHeader(sLabel,"示值"); - dataRes[i][idx] = newdStdValue; - ui->tableWidgetCheck->setItem(i,idx,new QTableWidgetItem(newdStdValue)); //示值 - idx= getIndexByHeader(sLabel,"标准值"); - double dTmp = dataRes[i][idx].toDouble(); - dError = dStdValue-dTmp; - newdError=TranDecimals(sLabel,dataRes[i],dError); + if(idx!=-1) + { + dataRes[i][idx] = newdStdValue; + ui->tableWidgetCheck->setItem(i,idx,new QTableWidgetItem(newdStdValue)); //示值 + } idx= getIndexByHeader(sLabel,"绝对误差"); - dataRes[i][idx] = newdError; - ui->tableWidgetCheck->setItem(i,idx,new QTableWidgetItem(newdError)); //示值 - BaseCommonApi::SaveLogInfo(1,QString("转换前 示值: %1 绝对误差 %2").arg(dStdValue).arg(dError)); - BaseCommonApi::SaveLogInfo(1,QString("转换后 示值: %1 绝对误差 %2").arg(newdStdValue).arg(newdError)); + if(idx!=-1) + { + int idx2= getIndexByHeader(sLabel,"标准值"); + double dTmp = dataRes[i][idx2].toDouble(); + dError = dStdValue-dTmp; + newdError=TranDecimals(sLabel,dataRes[i],dError); + dataRes[i][idx] = newdError; + ui->tableWidgetCheck->setItem(i,idx,new QTableWidgetItem(newdError)); + } + idx= getIndexByHeader(sLabel,"测量值"); + if(idx!=-1) + { + dataRes[i][idx] = newdStdValue; + ui->tableWidgetCheck->setItem(i,idx,new QTableWidgetItem(newdStdValue)); //测量值 + } + idx= getIndexByHeader(sLabel,"相对误差"); + if(idx!=-1) + { + int idx2=getIndexByHeader(sLabel,"标准值"); + double dTmp = dataRes[i][idx2].toDouble(); + dError = (dStdValue-dTmp); + newdError=TranDecimals(sLabel,dataRes[i],dError); + dataRes[i][idx] = newdError; + ui->tableWidgetCheck->setItem(i,idx,new QTableWidgetItem(newdError)); + } + idx= getIndexByHeader(sLabel,"结论"); + if(idx!=-1) + { + dataRes[i][idx] = "符合指标"; + ui->tableWidgetCheck->setItem(i,idx,new QTableWidgetItem("符合指标")); //测量值 + } + + BaseCommonApi::SaveLogInfo(1,QString("转换前 测试值 %1").arg(dStdValue)); + BaseCommonApi::SaveLogInfo(1,QString("转换后 测试值 %1").arg(newdStdValue)); + //Delay_MSec(2000); } else if(iEquipType==4){ @@ -1134,9 +1176,85 @@ } } } + }else if(iEquipType==13) + { } } +void CheckWindow::Oscilloscopetextflow() +{ + for (int _ch=0;_ch dataRes = caliDataList.value(sLabel); + BaseCommonApi::SaveLogInfo(1,QString("开始 %1 %2 测试").arg(_ch).arg(sLabel)); + QString sParam; + for (int i = 0; i < dataRes.count(); ++i) { + int _dex= getIndexByHeader(sLabel,"通道"); + if(_dex==-1){sParam=_ch;}else{sParam=dataRes[i][_dex];} + if(sParam!=chList[_ch]){continue;}; + QString sRet=""; + QString newCmd; + double dStdValue=FP_INFINITE; + QString newdStdValue; + //标准器输出 + BaseCommonApi::SaveLogInfo(1,QString("标准器输出")); + QString sParam; + int idx= getIndexByHeader(sLabel,"检定项目"); + if(idx!=-1) + sParam = dataRes[i][idx]; + if(standardEngine.getState() || 1==1){ + InstructionLib *instrcutLib = getCmdByCheckName(1,sParam); + if(instrcutLib!=nullptr){ + QStringList sList = instrcutLib->instruct_config.split(";"); + if(sList.length()>0){ + for (QString& sCmd : sList){ + newCmd = transCmd(sCmd,sLabel,dataRes[i]); + if(newCmd!=""){ + standardEngine.sendData(newCmd); + qDebug() << "standard cmds:" << newCmd; + } + } + } + } + } + //被检设备读数 + BaseCommonApi::SaveLogInfo(1,QString("被检设备输出")); + if(deviceEngine.getState() || 1==1){ + InstructionLib *instrcutLib = getCmdByCheckName(0,sParam); + if(instrcutLib!=nullptr){ + QStringList sList = instrcutLib->instruct_config.split(";"); + if(sList.length()>0){ + for (QString& sCmd : sList){ + newCmd = transCmd(sCmd,sLabel,dataRes[i]); + if(newCmd!=""){ + deviceEngine.sendData(newCmd); + qDebug() << "config cmds:" << newCmd; + } + } + } + newCmd = transCmd(instrcutLib->instruct_read,sLabel,dataRes[i]); + if(newCmd!=""){ + qDebug() << "query cmds:" << newCmd; + sRet = deviceEngine.queryData(newCmd); + idx= getIndexByHeader(sLabel,"单位"); + dStdValue = transUnit(sRet,dataRes[i][idx]); + } + } + } + autoAdujstData(sLabel,i,dStdValue,dataRes); + Delay_MSec(2000); + } + + caliDataList.insert(sLabel,dataRes); + + } + } +} void CheckWindow::Delay_MSec(unsigned int msec) { QTime _Timer = QTime::currentTime().addMSecs(msec); diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 804d39d..8efbe12 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -910,7 +910,7 @@ break; case 13: //示波器标准装置 = 13 - //DataList=BaseCommonApi::getDeviceOscilloscopeCalibration(deviceCatoryName,CliTable[0].id,HeadList); + DataList=BaseCommonApi::getDeviceOscilloscopeCalibration(deviceCatoryName,CliTable[0].id,HeadList); break; } @@ -3191,37 +3191,37 @@ QMap> BaseCommonApi::GetDataReturnItemListByPistonGaugeResult(QString itemCatoryName,QList ResultData,QMap> DataMapList,QMap *HeadMapList) { QList IndicationErrorList; - if(itemCatoryName.contains("一般压力表")){ - for(const QStringList &row : ResultData) - { - QString VerificationItem=NULL; - if (!row.isEmpty()) { - VerificationItem = "项目"; - //添加列头 - QStringList head; - head <<"项目-量程上限90%以下"<<"项目-量程上限90%以上"<<"示值误差允许值"<<"示值误差最大值"<<"轻敲位移允许值"<<"轻敲位移最大值" - <<"回程误差允许值"<<"回程误差最大值"<<"结果"<<"输出备注"; - HeadMapList->insert(VerificationItem,head); - //添加数据 - QStringList Data; - Data.append(row[24]); //量程上限90%以下 - Data.append(row[25]); //量程上限90%及以上 - Data.append(row[5]);//示值误差允许值 - Data.append("");//示值误差最大值 - Data.append(row[4]);//轻敲位移允许值 - Data.append("");//轻敲位移最大值 - Data.append(row[3]);//回程误差允许值 - Data.append("");//回程误差最大值 - Data.append("");//结果 - Data.append("");//输出备注 - IndicationErrorList.append(Data); + if(itemCatoryName.contains("一般压力表")){ + for(const QStringList &row : ResultData) + { + QString VerificationItem=NULL; + if (!row.isEmpty()) { + VerificationItem = "项目"; + //添加列头 + QStringList head; + head <<"项目-量程上限90%以下"<<"项目-量程上限90%以上"<<"示值误差允许值"<<"示值误差最大值"<<"轻敲位移允许值"<<"轻敲位移最大值" + <<"回程误差允许值"<<"回程误差最大值"<<"结果"<<"输出备注"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[24]); //量程上限90%以下 + Data.append(row[25]); //量程上限90%及以上 + Data.append(row[5]);//示值误差允许值 + Data.append("");//示值误差最大值 + Data.append(row[4]);//轻敲位移允许值 + Data.append("");//轻敲位移最大值 + Data.append(row[3]);//回程误差允许值 + Data.append("");//回程误差最大值 + Data.append("");//结果 + Data.append("");//输出备注 + IndicationErrorList.append(Data); + } } } - } - if(IndicationErrorList.count()!=0){ - DataMapList.insert("项目",IndicationErrorList); - }; - return DataMapList; + if(IndicationErrorList.count()!=0){ + DataMapList.insert("项目",IndicationErrorList); + }; + return DataMapList; } @@ -3879,6 +3879,7 @@ result.append(query.value("signal_frequency").toString());//信号频率 result.append(query.value("nominal_value").toString());//标称值 result.append(query.value("nominal_value_unit").toString());//标称值单位 + result.append(query.value("data_type").toString());// result.append(query.value("create_time").toString()); result.append(query.value("update_time").toString()); resultData.append(result); @@ -3893,37 +3894,198 @@ }; QMap> BaseCommonApi::GetDataReturnItemListByOscilloscope(QString itemCatoryName,QList ResultData,QMap> DataMapList,QMap *HeadMapList) { - QList IndicationErrorList; - if(itemCatoryName.contains("数字示波器")){ - for(const QStringList &row : ResultData) - { - QString VerificationItem=NULL; - if (!row.isEmpty() && row[2] =="1") { - VerificationItem = "示值误差"; - //添加列头 - QStringList head; - head <<"序号"<<"检定项目"<<"轻敲前示值-正"<<"轻敲前示值-反"<<"轻敲后示值-正" - <<"轻敲后示值-反"<<"轻敲前后变动量-正"<<"轻敲前后变动量-反" ; - HeadMapList->insert(VerificationItem,head); - //添加数据 - QStringList Data; + QList time_baseList; + QList Current_gainList; + QList Current_biasList; + QList band_widthList; + QList trigger_sensitivity; + QList rise_timeList; + QList input_resistanceList; + QList calibrating_signalList; + if(itemCatoryName.contains("数字示波器")){ + for(const QStringList &row : ResultData) + { + QString VerificationItem=NULL; + QString CHNAME="CH1"; + if (!row.isEmpty() && row[2]=="1" && row[30] =="1") { + VerificationItem = "时基"; + QStringList head; - Data.append(row[0]); //ID - Data.append(row[2]); //标准器示值 + head <<"序号"<<"检定项目"<<"周期时标信号"<<"时基绝对误差△T/ns"<<"时基相对误差△δ" + <<"技术指标"<<"结论"; - Data.append(row[2]);//轻敲前示值-正 - Data.append(row[2]);//"轻敲前示值-反" - Data.append(row[2]);//轻敲后示值-正 - Data.append(row[2]);//轻敲后示值-反 - Data.append("0");//轻敲前后变动量-正 - Data.append("0");//轻敲前后变动量-反 - IndicationErrorList.append(Data); - } + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; - } - } - if(IndicationErrorList.count()!=0){ - DataMapList.insert("示值误差",IndicationErrorList); - }; - return DataMapList; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[11]+row[12]); //周期时标信号 + Data.append("");//时基绝对误差△T/ns + Data.append("");//时基相对误差△δ + Data.append("");//技术指标 + Data.append("");//结论 + time_baseList.append(Data); + } + if (!row.isEmpty() && row[3]=="1" && row[30] =="2") { + VerificationItem = "直流增益"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"阻抗" <<"幅度/DIV" <<"标准值" + <<"单位" + <<"测量值"<<"相对误差"<<"技术指标" <<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[16]+row[17]);//阻抗 + Data.append(row[17]);//垂直偏转系数(/div) + Data.append(row[28]);//标准值 + Data.append(row[29]);//标准值单位 + Data.append("");//测量值 + Data.append("");//相对误差 + Data.append(row[13]);//技术指标 + Data.append("");//结论 + Current_gainList.append(Data); + } + if (!row.isEmpty()&& row[4]=="1" && row[30] =="3") { + VerificationItem = "直流偏置"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"阻抗"<<"垂直偏转系数(/div)"<<"标准值" + <<"测量值"<<"误差"<<"相对误差"<<"技术指标" <<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[16]+row[17]);//阻抗 + Data.append(row[17]);//垂直偏转系数(/div) + Data.append(row[19]);//标准值 + Data.append("");//测量值 + Data.append("");//误差 + Data.append("");//相对误差 + Data.append(row[13]);//技术指标 + Data.append("");//结论 + Current_biasList.append(Data); + } + if (!row.isEmpty() && row[5]=="1" && row[30] =="4") { + VerificationItem = "频带宽度"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"阻抗"<<"垂直偏转系数(/div)" + << "频带宽度" <<"参考幅度" <<"参考幅度单位" <<"测量幅度" <<"测量幅度单位" + <<"分贝数(dB)" <<"技术指标" << "结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[16]+row[17]);//阻抗 + Data.append(row[17]);//垂直偏转系数(/div) + Data.append(row[22]);//频带宽度 + Data.append("");//参考幅度 + Data.append("");//参考幅度单位 + Data.append("");//测量幅度 + Data.append("");//测量幅度单位 + Data.append("");//分贝数(dB) + Data.append(row[13]);//技术指标 + Data.append("");//结论 + band_widthList.append(Data); + } + if (!row.isEmpty() && row[6]=="1" && row[30] =="5") { + VerificationItem = "触发灵敏度"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"触发类型"<<"信号频率" + << "标称值" <<"测量值" <<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[26]);//触发类型 + Data.append(row[27]);//信号频率 + Data.append(row[28]);//标称值 + Data.append("");//测量值 + trigger_sensitivity.append(Data); + } + if (!row.isEmpty() && row[7]=="1" && row[30] =="6") { + VerificationItem = "上升时间"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"阻抗"<<"垂直偏转系数(/div)" + <<"测量值"<<"测量值单位"<<"技术指标" <<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[16]+row[17]);//阻抗 + Data.append(row[17]);//垂直偏转系数(/div) + Data.append("");//测量值 + Data.append("");//测量值单位 + Data.append(row[13]);//技术指标 + Data.append("");//结论 + rise_timeList.append(Data); + } + if (!row.isEmpty() && row[8]=="1" && row[30] =="7") { + VerificationItem = "输入电阻"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"通道"<<"标称值"<<"垂直偏转系数(/div)" + <<"测量值"<<"测量值单位"<<"技术指标" <<"结论"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[15]);//通道 + Data.append(row[28]+row[29]);//标称值 + Data.append(row[17]);//垂直偏转系数(/div) + Data.append("");//测量值 + Data.append("");//测量值单位 + Data.append(row[13]);//技术指标 + Data.append("");//结论 + input_resistanceList.append(Data); + } + if (!row.isEmpty() && row[9]=="1" && row[30] =="8") { + VerificationItem = "校准信号"; + QStringList head; + //添加列头 + head <<"序号"<<"检定项目"<<"项目"<<"标称值"<<"顶部测量值"<<"底部测量值" + <<"测量值"<<"测量值单位"<<"相对误差"; + HeadMapList->insert(VerificationItem,head); + //添加数据 + QStringList Data; + Data.append(row[0]); //ID + Data.append(VerificationItem); //检定项目 + Data.append(row[30]);//项目 + Data.append(row[28]+row[29]);//标称值 + Data.append("");//顶部测量值 + Data.append("");//底部测量值 + Data.append("");//测量值 + Data.append("");//测量值单位 + Data.append(row[13]);//技术指标 + Data.append("");//相对误差 + calibrating_signalList.append(Data); + } + + } + if(time_baseList.count()!=0){DataMapList.insert("时基",time_baseList);} + if(Current_gainList.count()!=0){DataMapList.insert("直流增益",Current_gainList);} + if(Current_biasList.count()!=0){DataMapList.insert("直流偏置",Current_biasList);} + if(band_widthList.count()!=0){DataMapList.insert("频带宽度",band_widthList);} + if(trigger_sensitivity.count()!=0){DataMapList.insert("触发灵敏度",trigger_sensitivity);} + if(rise_timeList.count()!=0){DataMapList.insert("上升时间",rise_timeList);} + if(input_resistanceList.count()!=0){DataMapList.insert("输入电阻",input_resistanceList);} + if(calibrating_signalList.count()!=0){DataMapList.insert("校准信号",calibrating_signalList);} + } + return DataMapList; }; diff --git a/softwareDirectory/AutoVerScheme/checkwindow.cpp b/softwareDirectory/AutoVerScheme/checkwindow.cpp index e1acddc..4ae7da2 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.cpp +++ b/softwareDirectory/AutoVerScheme/checkwindow.cpp @@ -70,6 +70,9 @@ cmdPlaceHolderList.insert("{FREQ}","频率"); cmdPlaceHolderList.insert("{UNIT}","单位"); cmdPlaceHolderList.insert("{FUNIT}","频率单位"); + cmdPlaceHolderList.insert("{OHM}","阻抗"); + //示波器 + cmdPlaceHolderList.insert("{OHM}","阻抗"); //转换 unitTypeTransList.insert("Ω","OHM"); unitTypeTransList.insert("KΩ","KOHM"); @@ -373,6 +376,7 @@ headList.clear(); calibrationList.clear(); headTableList.clear(); + chList.clear(); //calibrationList =BaseCommonApi::Search_CalibrationTable(deviceId,&headList); caliDataList = BaseCommonApi::Search_CalibrationTableClass(deviceId,&headTableList); if(caliDataList.count()<1){ @@ -413,11 +417,16 @@ int idx= getIndexByHeader(sLabel,"检定项目"); int idx2= getIndexByHeader(sLabel,"标准值"); int idx3= getIndexByHeader(sLabel,"单位"); + int chname= getIndexByHeader(sLabel,"通道"); if(idx==-1){idx=1;};if(idx2==-1){idx2=5;};if(idx3==-1){idx3=4;}; ui->tableWidget_Point->setItem(row, 0, new QTableWidgetItem(dataRes[i][idx])); ui->tableWidget_Point->setItem(row, 1, new QTableWidgetItem(dataRes[i][idx2]+"("+dataRes[i][idx3]+")")); ui->tableWidget_Point->setItem(row, 2, new QTableWidgetItem("1")); row++; + if(!chList.contains(dataRes[i][chname])) + { + chList.append(dataRes[i][chname]); + } } // ======================================================================================== // 按钮设置显示 @@ -981,7 +990,6 @@ if(idx!=-1){ if(devicetype) { - NewUnit = TranTypeUnit(data[idx]); //转换 Ω->OHM sNewCmd = sNewCmd.replace(key,NewUnit); continue; @@ -996,18 +1004,22 @@ } return sNewCmd; } - +//_text void CheckWindow::on_pushButton_start_clicked() { if(headTableList.keys().count()==0) return; BaseCommonApi::SaveLogInfo(1,QString("-----------------------------------")); + if(iEquipType==13) + { + this->Oscilloscopetextflow(); + return; + } connectDevice(); for(int i=0;i dataRes = caliDataList.value(sLabel); @@ -1074,7 +1086,7 @@ void CheckWindow::autoAdujstData(QString sLabel,int i,double dStdValue,QList& dataRes){ double dError; QString newdStdValue,newdError; - if(iEquipType==1){ + if(iEquipType==1 || iEquipType==13){ if(qIsFinite(dStdValue)){ bool bOk = false; dStdValue = QInputDialog::getDouble(this,"手动测试","请输入被检示值",0,-100000, 100000,5,&bOk); @@ -1087,17 +1099,47 @@ } newdStdValue= TranDecimals(sLabel,dataRes[i],dStdValue); int idx= getIndexByHeader(sLabel,"示值"); - dataRes[i][idx] = newdStdValue; - ui->tableWidgetCheck->setItem(i,idx,new QTableWidgetItem(newdStdValue)); //示值 - idx= getIndexByHeader(sLabel,"标准值"); - double dTmp = dataRes[i][idx].toDouble(); - dError = dStdValue-dTmp; - newdError=TranDecimals(sLabel,dataRes[i],dError); + if(idx!=-1) + { + dataRes[i][idx] = newdStdValue; + ui->tableWidgetCheck->setItem(i,idx,new QTableWidgetItem(newdStdValue)); //示值 + } idx= getIndexByHeader(sLabel,"绝对误差"); - dataRes[i][idx] = newdError; - ui->tableWidgetCheck->setItem(i,idx,new QTableWidgetItem(newdError)); //示值 - BaseCommonApi::SaveLogInfo(1,QString("转换前 示值: %1 绝对误差 %2").arg(dStdValue).arg(dError)); - BaseCommonApi::SaveLogInfo(1,QString("转换后 示值: %1 绝对误差 %2").arg(newdStdValue).arg(newdError)); + if(idx!=-1) + { + int idx2= getIndexByHeader(sLabel,"标准值"); + double dTmp = dataRes[i][idx2].toDouble(); + dError = dStdValue-dTmp; + newdError=TranDecimals(sLabel,dataRes[i],dError); + dataRes[i][idx] = newdError; + ui->tableWidgetCheck->setItem(i,idx,new QTableWidgetItem(newdError)); + } + idx= getIndexByHeader(sLabel,"测量值"); + if(idx!=-1) + { + dataRes[i][idx] = newdStdValue; + ui->tableWidgetCheck->setItem(i,idx,new QTableWidgetItem(newdStdValue)); //测量值 + } + idx= getIndexByHeader(sLabel,"相对误差"); + if(idx!=-1) + { + int idx2=getIndexByHeader(sLabel,"标准值"); + double dTmp = dataRes[i][idx2].toDouble(); + dError = (dStdValue-dTmp); + newdError=TranDecimals(sLabel,dataRes[i],dError); + dataRes[i][idx] = newdError; + ui->tableWidgetCheck->setItem(i,idx,new QTableWidgetItem(newdError)); + } + idx= getIndexByHeader(sLabel,"结论"); + if(idx!=-1) + { + dataRes[i][idx] = "符合指标"; + ui->tableWidgetCheck->setItem(i,idx,new QTableWidgetItem("符合指标")); //测量值 + } + + BaseCommonApi::SaveLogInfo(1,QString("转换前 测试值 %1").arg(dStdValue)); + BaseCommonApi::SaveLogInfo(1,QString("转换后 测试值 %1").arg(newdStdValue)); + //Delay_MSec(2000); } else if(iEquipType==4){ @@ -1134,9 +1176,85 @@ } } } + }else if(iEquipType==13) + { } } +void CheckWindow::Oscilloscopetextflow() +{ + for (int _ch=0;_ch dataRes = caliDataList.value(sLabel); + BaseCommonApi::SaveLogInfo(1,QString("开始 %1 %2 测试").arg(_ch).arg(sLabel)); + QString sParam; + for (int i = 0; i < dataRes.count(); ++i) { + int _dex= getIndexByHeader(sLabel,"通道"); + if(_dex==-1){sParam=_ch;}else{sParam=dataRes[i][_dex];} + if(sParam!=chList[_ch]){continue;}; + QString sRet=""; + QString newCmd; + double dStdValue=FP_INFINITE; + QString newdStdValue; + //标准器输出 + BaseCommonApi::SaveLogInfo(1,QString("标准器输出")); + QString sParam; + int idx= getIndexByHeader(sLabel,"检定项目"); + if(idx!=-1) + sParam = dataRes[i][idx]; + if(standardEngine.getState() || 1==1){ + InstructionLib *instrcutLib = getCmdByCheckName(1,sParam); + if(instrcutLib!=nullptr){ + QStringList sList = instrcutLib->instruct_config.split(";"); + if(sList.length()>0){ + for (QString& sCmd : sList){ + newCmd = transCmd(sCmd,sLabel,dataRes[i]); + if(newCmd!=""){ + standardEngine.sendData(newCmd); + qDebug() << "standard cmds:" << newCmd; + } + } + } + } + } + //被检设备读数 + BaseCommonApi::SaveLogInfo(1,QString("被检设备输出")); + if(deviceEngine.getState() || 1==1){ + InstructionLib *instrcutLib = getCmdByCheckName(0,sParam); + if(instrcutLib!=nullptr){ + QStringList sList = instrcutLib->instruct_config.split(";"); + if(sList.length()>0){ + for (QString& sCmd : sList){ + newCmd = transCmd(sCmd,sLabel,dataRes[i]); + if(newCmd!=""){ + deviceEngine.sendData(newCmd); + qDebug() << "config cmds:" << newCmd; + } + } + } + newCmd = transCmd(instrcutLib->instruct_read,sLabel,dataRes[i]); + if(newCmd!=""){ + qDebug() << "query cmds:" << newCmd; + sRet = deviceEngine.queryData(newCmd); + idx= getIndexByHeader(sLabel,"单位"); + dStdValue = transUnit(sRet,dataRes[i][idx]); + } + } + } + autoAdujstData(sLabel,i,dStdValue,dataRes); + Delay_MSec(2000); + } + + caliDataList.insert(sLabel,dataRes); + + } + } +} void CheckWindow::Delay_MSec(unsigned int msec) { QTime _Timer = QTime::currentTime().addMSecs(msec); diff --git a/softwareDirectory/AutoVerScheme/checkwindow.h b/softwareDirectory/AutoVerScheme/checkwindow.h index eefc17c..b3601f9 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.h +++ b/softwareDirectory/AutoVerScheme/checkwindow.h @@ -89,8 +89,8 @@ QString TranDecimals(QString sLabel,QStringList data,double TestValue); void autoAdujstData(QString sLabel,int i,double dStdValue,QList& dataRes); QString TranTypeUnit(QString sUnit); + void Oscilloscopetextflow(); void closeDevice(); - private: Ui::CheckWindow *ui; QList programList; @@ -118,6 +118,7 @@ QString standardId; int currConnectIdx; QList pageButtons; + QList chList; }; #endif // CHECKWINDOW_H