diff --git a/LaiPuLaser/LaiPuLaser/LaserPowCheckMgr.cpp b/LaiPuLaser/LaiPuLaser/LaserPowCheckMgr.cpp index 95e04a0..b7111ad 100644 --- a/LaiPuLaser/LaiPuLaser/LaserPowCheckMgr.cpp +++ b/LaiPuLaser/LaiPuLaser/LaserPowCheckMgr.cpp @@ -210,6 +210,9 @@ void CLaserPowCheckMgr::UpdatePowCheckDataList() PowCheckValSum.m_LaserPathPow += PowCheckVal.m_LaserPathPow; PowCheckValSum.m_SurfacePow += PowCheckVal.m_SurfacePow; PowCheckValSum.m_PulseWidth += PowCheckVal.m_PulseWidth; + PowCheckValSum.m_Pk2pk += PowCheckVal.m_Pk2pk; + PowCheckValSum.m_Mean += PowCheckVal.m_Mean; + PowCheckValSum.m_Amplitude += PowCheckVal.m_Amplitude; } } if(ValidValCnt>0) @@ -221,6 +224,9 @@ void CLaserPowCheckMgr::UpdatePowCheckDataList() PowCheckValAvg.m_LaserPathPow = PowCheckValSum.m_LaserPathPow/ValidValCnt; PowCheckValAvg.m_SurfacePow = PowCheckValSum.m_SurfacePow/ValidValCnt; PowCheckValAvg.m_PulseWidth = PowCheckValSum.m_PulseWidth/ValidValCnt; + PowCheckValAvg.m_Pk2pk = PowCheckValSum.m_Pk2pk / ValidValCnt; + PowCheckValAvg.m_Mean = PowCheckValSum.m_Mean / ValidValCnt; + PowCheckValAvg.m_Amplitude = PowCheckValSum.m_Amplitude / ValidValCnt; } } @@ -264,8 +270,8 @@ void CLaserPowCheckMgr::UpdatePowCheckDataListExtExt(CListCtrl &List,bool bInser //数据显示平均值 List.SetItemText(i,idx++,Db2CString(PowCheckValAvg.m_SurfacePow,2)); List.SetItemText(i,idx++,Db2CString(PowCheckValAvg.m_LaserPathPow,2)); - List.SetItemText(i,idx++,Db2CString(PowCheckValAvg.m_LaserSourcePow2,2)); List.SetItemText(i,idx++,Db2CString(PowCheckValAvg.m_LaserSourcePow1,2)); + List.SetItemText(i,idx++,Db2CString(PowCheckValAvg.m_LaserSourcePow2,2)); List.SetItemText(i,idx++,Db2CString(PowCheckValAvg.m_PulseWidth,2)); } } @@ -512,6 +518,8 @@ bool CLaserPowCheckMgr::SaveCurPowCheckData(bool bRotatoDimmerMode) FileMgr.CreatDir(FilePath);//创建年文件夹 CPowCheckData &CurPowCheckData = m_CurPowCheckData; + CurPowCheckData.m_bCheckDataValid = true; + CurPowCheckData.m_DateTime = WorkTime.GetCurMonth();//记录时间 CurPowCheckData.m_DateTime += "_"; CurPowCheckData.m_DateTime += WorkTime.GetCurDay(); @@ -538,11 +546,11 @@ bool CLaserPowCheckMgr::SaveCurPowCheckData(bool bRotatoDimmerMode) CheckPt.m_LaserFre = CurPowCheckData.m_LaserFre; CheckPt.m_LaserType = CurPowCheckData.m_CheckType; } + //保存到LaipuLaserData\\LaserPowerCheckData + SavePowCheckDataFlie(FilePath, CurPowCheckData, true); //衰减器点检模式不要记录普通的点检数据 if(!bRotatoDimmerMode) - { - //保存到LaipuLaserData\\LaserPowerCheckData - SavePowCheckDataFlie(FilePath,CurPowCheckData,true); + { //保存激光功率对应表(衰减器用) SaveLaserFixedCurrentPowFile(); //记录最近一次的信息 @@ -553,8 +561,8 @@ bool CLaserPowCheckMgr::SaveCurPowCheckData(bool bRotatoDimmerMode) if(CurPowCheckData.m_CheckType == _LaserDeviceType_MainLaser2) m_LastPow2CheckData = CurPowCheckData; } - //记录Fre 对应的K和P0 - gLaser->SetEnergyDensityPar(CurPowCheckData.m_CheckType,CurPowCheckData.m_LaserFre,CurPowCheckData.m_EnergyDensityK,CurPowCheckData.m_EnergyDensityPo); + //将当前的点检结果用作recipe 计算依据 + gLaserPowCheckMgr->SaveCurPowCheckDataForRecipe(); } //详细数据保存到LaipuLaserData\\MonitoringData\\CheckData SaveMonitoringCheckData(CurPowCheckData,bRotatoDimmerMode); @@ -571,19 +579,55 @@ void CLaserPowCheckMgr::SaveMonitoringCheckData(CPowCheckData &PowCheckData,bool CString DataPath = gAnnealMonitoringMgr->CreatCurCheckDataPath(); CFileMgr FileMgr; //输出一个总的结果 - if(!bRotatoDimmerMode) { CCsvData CsvData; CsvData.AddData("点检类型",false); CsvData.AddData(CheckType,true); CsvData.AddData("时间",false); CsvData.AddData(PowCheckData.m_DateTime,true); - CsvData.AddData("斜率K",false); - CsvData.AddData(Db2CString(PowCheckData.m_EnergyDensityK),true); - CsvData.AddData("截距Po",false); - CsvData.AddData(Db2CString(PowCheckData.m_EnergyDensityPo),true); CsvData.AddData("脉冲频率Hz",false); CsvData.AddData(Db2CString(PowCheckData.m_LaserFre),true); + if(!bRotatoDimmerMode) + { + CsvData.AddData("斜率K",false); + CsvData.AddData(Db2CString(PowCheckData.m_EnergyDensityK),true); + CsvData.AddData("截距Po",false); + CsvData.AddData(Db2CString(PowCheckData.m_EnergyDensityPo),true); + } + //输出所有平均数据 + { + CsvData.AddData("电流A",false); + CsvData.AddData("衰减角度",false); + CsvData.AddData("出光口功率计1W",false); + CsvData.AddData("出光口功率计2W",false); + CsvData.AddData("光路功率计W",false); + CsvData.AddData("平台功率值W",false); + CsvData.AddData("脉冲宽度ns",false); + CsvData.AddData("脉冲峰峰值",false); + CsvData.AddData("脉冲平均值",false); + CsvData.AddData("脉冲幅度值",true); + + vector &PowCheckPtVec = PowCheckData.m_PowCheckPtVec; + int PtCnt = PowCheckPtVec.size(); + for(int k=0;k PowCheckPtPowCheckPVec; ReadLaserFixedCurrentPowFile(PowCheckPtPowCheckPVec); @@ -683,6 +728,12 @@ void CLaserPowCheckMgr::SaveCurPowCheckDataForRecipe() } } +#endif + if (MsgBox.ConfirmOkCancel("是否应用当前的点检记录K和Po作为recipe计算依据?")) + { + //记录Fre 对应的K和P0 (Edi-->Current用) + gLaser->SetEnergyDensityPar(m_CurPowCheckData.m_CheckType, m_CurPowCheckData.m_LaserFre, m_CurPowCheckData.m_EnergyDensityK, m_CurPowCheckData.m_EnergyDensityPo); + } } //读取固定电流功率对应表 void CLaserPowCheckMgr::ReadLaserFixedCurrentPowFile(vector &PowCheckPtPowCheckPVec) @@ -867,16 +918,21 @@ void CLaserPowCheckMgr::ReadPowCheckDataFlie(CString Path,CPowCheckData &PowChec for(int k=1;k StrLine = StrVec[k]; - if(StrLine.size()==6) + int Idx = 0; + if(StrLine.size()>=6) { CPowCheckPt CheckPt; CPowCheckVal &PowCheckValAvg = CheckPt.m_PowCheckValAvg; - CheckPt.m_SetCurr = CStringToDouble(StrLine[0]); - PowCheckValAvg.m_LaserSourcePow1 = CStringToDouble(StrLine[1]); - PowCheckValAvg.m_LaserSourcePow2 = CStringToDouble(StrLine[2]); - PowCheckValAvg.m_LaserPathPow = CStringToDouble(StrLine[3]); - PowCheckValAvg.m_SurfacePow = CStringToDouble(StrLine[4]); - PowCheckValAvg.m_PulseWidth = CStringToDouble(StrLine[5]); + CheckPt.m_SetCurr = CStringToDouble(StrLine[Idx++]); + + if(StrLine.size()>= 7) + CheckPt.m_RotatoDimmerAng = CStringToDouble(StrLine[Idx++]); + + PowCheckValAvg.m_LaserSourcePow1 = CStringToDouble(StrLine[Idx++]); + PowCheckValAvg.m_LaserSourcePow2 = CStringToDouble(StrLine[Idx++]); + PowCheckValAvg.m_LaserPathPow = CStringToDouble(StrLine[Idx++]); + PowCheckValAvg.m_SurfacePow = CStringToDouble(StrLine[Idx++]); + PowCheckValAvg.m_PulseWidth = CStringToDouble(StrLine[Idx++]); PowCheckData.m_PowCheckPtVec.push_back(CheckPt); } } @@ -898,6 +954,7 @@ void CLaserPowCheckMgr::SavePowCheckDataFlie(CString Path,CPowCheckData &PowChec CPowCheckPt &CheckPt = PowCheckPtVec[k]; CPowCheckVal &PowCheckValAvg = CheckPt.m_PowCheckValAvg; FileStream << CheckPt.m_SetCurr<<","; + FileStream << CheckPt.m_RotatoDimmerAng << ","; FileStream<CalPowerByDensityPar(Po,K,CheckPt.m_SetCurr); ar<