You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1041 lines
40 KiB
C++

#include "StdAfx.h"
#include "Laser.h"
#include "Propertie.h"
#include "PropertieMgr.h"
#include "AuthorityMgr.h"
#include "MsgBox.h"
#include "ExceptionMsg.h"
#include "WorkCmdContainer.h"
#include "DrawSimpleShape.h"
#include "GlobalDrawMgr.h"
#include "PenParMgr.h"
#include "CStringFuc.h"
#include "WorkCmdInvoker.h"
#include "ObjFillMgr.h"
#include "AllThreadMgr.h"
#include "ProgramLaserTuiHuo.h"
#include "RecipeMgr.h"
#include "CStringFuc.h"
#include "WarningMgr.h"
#include "FileMgr.h"
#include "LaserPowCheckMgr.h"
#define EDI_PARA_FILE _T("\\CommPar\\EnergyDensityPara.bin")
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
UINT LaserSleepThread(LPVOID pParam)
{
CLaser *p = (CLaser *)pParam;
p->LaserSleepTimeExt();
return 0;
}
CLaser *gLaser = new CLaser;
CLaser::CLaser(void)
{
m_bAdaptThickness = false;
m_bInited = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ɹ<EFBFBD>
m_BaseThickness = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>Ļ<EFBFBD>׼<EFBFBD><D7BC>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>mm
m_WorkThickness = 0;//<2F><>ǰ<EFBFBD>ӹ<EFBFBD><D3B9>IJ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>mm
m_MaxThickness = 1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>mm
m_MinThickness = 1;//<2F><>С<EFBFBD><D0A1>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>mm
m_LaserSwitch = false;//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
m_bScanByDirX = true;//X<><58><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8>
m_LaserType = 3;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_OpenLaserDelay = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱms
m_OpenLaserDelayShort = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱms (<28><><EFBFBD><EFBFBD>ʱ)
m_bSetGateFre = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD>բ<EFBFBD><D5A2>Ƶ<EFBFBD><C6B5><><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>)
m_ScanOverlapRatio = 30;//ɨ<><C9A8><EFBFBD>ص<EFBFBD><D8B5><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(0~100%)
m_GateOpDelay = 100;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>բ<EFBFBD><D5A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱms(<28><>Ϊ<EFBFBD><CEAA>բƫת<C6AB><D7AA>Ҫʱ<D2AA><CAB1>)
m_GateFre = 30;//<2F><>բ<EFBFBD><D5A2>Ƶ<EFBFBD><C6B5>
m_FocusZMoveUpVal = 20;//<2F><><EFBFBD><EFBFBD>Z <20>ļ<EFBFBD><C4BC><EFBFBD><E2BDB9>λ<EFBFBD><CEBB>(<28><><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>ֵ)
m_bAutoCalCurr = false;//<2F><><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>ֵ)
m_bCloseAppCloseLaser = true;
m_SpotSize.w = m_SpotSize.h = 1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵijߴ<C4B3>(<28><><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><CBBB><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ε<EFBFBD>).h = 1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵijߴ<C4B3>(<28><><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><CBBB><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ε<EFBFBD>)
m_bLaserGateOpen = false;
m_bRedLaserGateOpen = false;//<2F><><EFBFBD><EFBFBD>2 gate <20>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
m_bMachineGateOpen = true;//<2F><>բ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
m_bAutoCalSpeedX = true;//<2F><><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD>ٶ<EFBFBD>
m_bCtrLaserDimmerRev = false;//<2F><>բ<EFBFBD><D5A2><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>
m_CurWorkFoucsZcoord = 0;//<2F><>ǰ<EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD>ԲZ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
m_EnergyParChangeScal = 1;//<2F><><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶȲ<DCB6><C8B2><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD>%(<28><><EFBFBD><EFBFBD>ֵ)
m_RedLaserDelayAdjust = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ֵ(<28><><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E5B7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ)
m_RedLaserPowCheckPluseW = 100;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʹ<CAB1>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>us
m_bPowRecordWriteCalPow = false;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>¼ʱ<C2BC><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B9A6>P = Po+K*I;
m_LaserCurrDigitsCnt = 1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
}
CLaser::~CLaser(void)
{
}
CMFCPropertyGridProperty *CLaser::CreatGridProperty()
{
CPropertieMgr *pPropertieMgr = &gDevicePropertieMgr;
CString PropertyName;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CString Description;//<2F><><EFBFBD><EFBFBD>
CString Path = _T("Laser");//<2F>洢·<E6B4A2><C2B7>
CString Name;
CString GroupName;
CString ModuleName;
//-------------------------------------------------------------------------------//
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
ModuleName = PropertyName;
CMFCPropertyGridProperty* pGroup = new CMFCPropertyGridProperty(PropertyName);
//-------------------------------------------------------------------------------//
if(gAuthorityMgr->CheckAuthority(_Authority_Factory))
{
{
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_LaserSwitch");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_LaserSwitch);
pPropertie->SetType(_PROP_TYPE_BOOL);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ˿<EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
pPropertie->SetModuleName(ModuleName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_LaserSwitch, Description);
pGroup->AddSubItem(p);
pPropertieMgr->Insert(p, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_LaserCurrDigitsCnt");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_LaserCurrDigitsCnt);
pPropertie->SetType(_PROP_TYPE_INT);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>");
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>(1 or 2)");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_LaserCurrDigitsCnt, Description);
pGroup->AddSubItem(p);
pPropertieMgr->Insert(p, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_OpenLaserDelay");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_OpenLaserDelay);
pPropertie->SetType(_PROP_TYPE_INT);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ(<28><>)");
Description = _T("<EFBFBD>򿪼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>)(ms)");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_OpenLaserDelay, Description);
pGroup->AddSubItem(p);
pPropertieMgr->Insert(p, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_OpenLaserDelayShort");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_OpenLaserDelayShort);
pPropertie->SetType(_PROP_TYPE_INT);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ(<28><>)");
Description = _T("<EFBFBD>򿪼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<EFBFBD><EFBFBD>(ms)");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_OpenLaserDelayShort, Description);
pGroup->AddSubItem(p);
pPropertieMgr->Insert(p, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_GateOpDelay");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_GateOpDelay);
pPropertie->SetType(_PROP_TYPE_INT);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD><EFBFBD>բ<EFBFBD><EFBFBD>ʱ");
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>բ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱms(<28><>Ϊ<EFBFBD><CEAA>բƫת<C6AB><D7AA>Ҫʱ<D2AA><CAB1>)");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_GateOpDelay, Description);
pGroup->AddSubItem(p);
pPropertieMgr->Insert(p, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_bCloseAppCloseLaser");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_bCloseAppCloseLaser);
pPropertie->SetType(_PROP_TYPE_BOOL);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>ʱ<EFBFBD><EFBFBD>Ҫ<EFBFBD>ر<EFBFBD>LD");
Description = _T("<EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Ҫ<EFBFBD>رռ<EFBFBD><EFBFBD><EFBFBD>LD");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_bCloseAppCloseLaser, Description);
pGroup->AddSubItem(p);
pPropertieMgr->Insert(p, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_GateFre");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_GateFre);
pPropertie->SetType(_PROP_TYPE_INT);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD><EFBFBD>բƵ<EFBFBD><EFBFBD>");
Description = _T("<EFBFBD><EFBFBD><EFBFBD>ƹ<EFBFBD>բƫת<EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>(ֵȴСԽ<D0A1><D4BD>)");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_GateFre, Description);
pGroup->AddSubItem(p);
pPropertieMgr->Insert(p, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_LaserType");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_LaserType);
pPropertie->SetType(_PROP_TYPE_INT);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("Type");
Description = _T("Type");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_LaserType, Description);
pGroup->AddSubItem(p);
pPropertieMgr->Insert(p, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_FocusZMoveUpVal");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_FocusZMoveUpVal);
pPropertie->SetType(_PROP_TYPE_DOUBLE);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
Description = _T("Z<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><EFBFBD><EFBFBD>mm");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)m_FocusZMoveUpVal, Description);
p1->AllowEdit(FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
pGroup->AddSubItem(p1);
pPropertieMgr->Insert(p1, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_bScanByDirX");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_bScanByDirX);
pPropertie->SetType(_PROP_TYPE_BOOL);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("X<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD>");
Description = _T("true: X<><58><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8>,false: Y<><59><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8>");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_bScanByDirX, Description);
pGroup->AddSubItem(p);
pPropertieMgr->Insert(p, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_bAutoCalSpeedX");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_bAutoCalSpeedX);
pPropertie->SetType(_PROP_TYPE_BOOL);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>");
Description = _T("<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)m_bAutoCalSpeedX, Description);
pGroup->AddSubItem(p1);
pPropertieMgr->Insert(p1, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_bAutoCalCurr");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_bAutoCalCurr);
pPropertie->SetType(_PROP_TYPE_BOOL);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
Description = _T("<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)m_bAutoCalCurr, Description);
pGroup->AddSubItem(p1);
pPropertieMgr->Insert(p1, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_bPowRecordWriteCalPow");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_bPowRecordWriteCalPow);
pPropertie->SetType(_PROP_TYPE_BOOL);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϲ<EFBFBD><EFBFBD><EFBFBD>");
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_bPowRecordWriteCalPow, Description);
pGroup->AddSubItem(p);
pPropertieMgr->Insert(p, pPropertie);
}
}
{
GroupName = ("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(GroupName);
{
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_SpotSize_w");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_SpotSize.w);
pPropertie->SetType(_PROP_TYPE_DOUBLE);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD>߳ߴ<EFBFBD>X(mm)");
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X <20><><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>(mm)");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)m_SpotSize.w, Description);
pGroup1->AddSubItem(p1);
pPropertieMgr->Insert(p1, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_SpotSize_h");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_SpotSize.h);
pPropertie->SetType(_PROP_TYPE_DOUBLE);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD>߳ߴ<EFBFBD>Y(mm)");
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y <20><><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>(mm)");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)m_SpotSize.h, Description);
pGroup1->AddSubItem(p1);
pPropertieMgr->Insert(p1, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_EnergyParChangeScal");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_EnergyParChangeScal);
pPropertie->SetType(_PROP_TYPE_DOUBLE);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%");
Description = _T("<EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD>K<EFBFBD><EFBFBD>Po <20>͵<EFBFBD>ǰֵ<C7B0>ı<C4B1><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><E1B1A8>");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)m_EnergyParChangeScal, Description);
pGroup1->AddSubItem(p1);
pPropertieMgr->Insert(p1, pPropertie);
}
pGroup->AddSubItem(pGroup1);
}
}
{
GroupName = ("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(GroupName);
{
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_RedSpotSize_w");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_RedSpotSize.w);
pPropertie->SetType(_PROP_TYPE_DOUBLE);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD>߳ߴ<EFBFBD>X(mm)");
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X <20><><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>(mm)");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)m_RedSpotSize.w, Description);
pGroup1->AddSubItem(p1);
pPropertieMgr->Insert(p1, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_RedSpotSize_h");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_RedSpotSize.h);
pPropertie->SetType(_PROP_TYPE_DOUBLE);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD>߳ߴ<EFBFBD>Y(mm)");
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y <20><><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>(mm)");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)m_RedSpotSize.h, Description);
pGroup1->AddSubItem(p1);
pPropertieMgr->Insert(p1, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_RedLaserDelayAdjust");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_RedLaserDelayAdjust);
pPropertie->SetType(_PROP_TYPE_INT);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(us)");
Description = _T("<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̹<EFBFBD><EFBFBD>ͺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ(us)");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)m_RedLaserDelayAdjust, Description);
pGroup1->AddSubItem(p1);
pPropertieMgr->Insert(p1, pPropertie);
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
Name = _T("m_RedLaserPowCheckPluseW");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_RedLaserPowCheckPluseW);
pPropertie->SetType(_PROP_TYPE_INT);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(us)");
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʹ<EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>us");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)m_RedLaserPowCheckPluseW, Description);
pGroup1->AddSubItem(p1);
pPropertieMgr->Insert(p1, pPropertie);
}
pGroup->AddSubItem(pGroup1);
}
}
}
//-------------------------------------------------------------------------------//
return pGroup;
}
void CLaser::Draw(CDC* pDC)
{
}
#if 1
void CLaser::OnAppInitialize()
{
//<2F><><EFBFBD>ļ<EFBFBD><C4BC>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ܶȵIJ<C8B5><C4B2><EFBFBD>
ReadEnergyDensityParFile();
}
void CLaser::OnExitApp()
{
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ϊ
void CLaser::WriteWorkFileExt(vector<CLab> &LabVec)
{
LabVec.push_back(CLab(LAB_NULL,m_WorkThickness));//<2F><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>
}
void CLaser::ReadWorkFile(CLabVecRang &LabVecRang)
{
int idx = LabVecRang.GetStart()+1;
m_WorkThickness = LabVecRang.GetDouble(idx++);
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
int CLaser::GetOpenLaserDelay()
{
if(m_bLaserGateOpen)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ö<EFBFBD><C3B6><EFBFBD>ʱ
return m_OpenLaserDelayShort;
return m_OpenLaserDelay;
}
int CLaser::GetShortOpenLaserDelay()
{
return m_OpenLaserDelayShort;
}
//<2F><><EFBFBD>ù<EFBFBD>բ<EFBFBD><D5A2>Ƶ<EFBFBD><C6B5>
void CLaser::SetGateFre()
{
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><E2BDB9>(<28><><EFBFBD><EFBFBD>ֵ<EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD>ǵĻ<C7B5>׼Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>ֵ)
double CLaser::GetFocusZMoveUpVal()
{
return m_FocusZMoveUpVal;
}
//<2F><><EFBFBD>ؼ<EFBFBD><D8BC>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD>DZ<EFBFBD>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>ֵ(<28><>ʾ<EFBFBD><CABE>)
double CLaser::GetLaserFocusDis()
{
return m_FocusZMoveUpVal;
}
void CLaser::ResetCurWorkFoucsZcoord()
{
m_CurWorkFoucsZcoord = 0;
gLogMgr->WriteDebugLog("Func---->ResetCurWorkFoucsZcoord");
}
//<2F><><EFBFBD>õ<EFBFBD>ǰwafer <20>Ľ<EFBFBD><C4BD><EFBFBD>Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(FindFoucsCoordZ <20>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ֵ))
void CLaser::SetCurWorkFoucsZcoord(double FindFoucsCoordZ)
{
//<2F><><EFBFBD><EFBFBD>= <20><><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD>Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϲ̶<CFB9><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD><C7B5>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>)
m_CurWorkFoucsZcoord = FindFoucsCoordZ+m_FocusZMoveUpVal;
CString s;
s.Format("FindFoucsCoordZ=%.f,FocusZMoveUpVal=%.f,WorkFoucsZcoord=%.f",FindFoucsCoordZ,m_FocusZMoveUpVal,m_CurWorkFoucsZcoord);
gLogMgr->WriteDebugLog(s);
}
#endif
#if 1//ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><><CDA8>I <20><><EFBFBD><EFBFBD>/F Ƶ<><C6B5>)
void CLaser::CalEnergyDensity(eLaserDeviceType LaserDeviceType,double F,double I,double &Edi)
{
double EnergyDensityPo = 0;
double EnergyDensityK = 0;
GetEnergyDensityPar(LaserDeviceType,F,EnergyDensityK,EnergyDensityPo);
Edi = CalEnergyDensityExt(LaserDeviceType,F,I,EnergyDensityK,EnergyDensityPo);
}
double CLaser::CalEnergyDensityExt(eLaserDeviceType LaserDeviceType,double F,double I,double K,double Po)
{
if(F==0 || I==0)
return 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱȡƵ<C8A1><C6B5>= 1
if(LaserDeviceType == _LaserDeviceType_RedLaser)
F = 1;
DbSize SpotSize = GetSpotSize(LaserDeviceType);
double Pi = Po + K*I;//<2F><><EFBFBD>Ϲ<EFBFBD><CFB9><EFBFBD>ֵ
double Ei = Pi/F;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double Edi = 0.1*Ei/(SpotSize.w*SpotSize.h);
if(LaserDeviceType != _LaserDeviceType_RedLaser)
Edi *= 1000;
CString s;
s.Format("%.3f",Edi);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λС<CEBB><D0A1>
Edi = CStringToDouble(s);
return Edi;
}
//ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><E3B9A6><EFBFBD>ܶ<EFBFBD>
double CLaser::CalEnergyDensityByPow(eLaserDeviceType LaserDeviceType,double F,double P)
{
if(F==0)
return 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD>̹<EFBFBD><CCB9>ҹ<EFBFBD>բû<D5A2>д򿪵<D0B4>ʱ<EFBFBD><CAB1>
if(LaserDeviceType != _LaserDeviceType_RedLaser && !IsMachineGateOpen())
return 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>gateû<65>д򿪵<D0B4>ʱ<EFBFBD><CAB1>
if(LaserDeviceType == _LaserDeviceType_RedLaser && !IsbRedLaserGateOpen())
return 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱȡƵ<C8A1><C6B5>= 1
if(LaserDeviceType == _LaserDeviceType_RedLaser)
F = 1;
DbSize SpotSize = GetSpotSize(LaserDeviceType);
double Ei = P/F;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double Edi = 0.1*Ei/(SpotSize.w*SpotSize.h);
if(LaserDeviceType != _LaserDeviceType_RedLaser)
Edi *= 1000;
CString s;
s.Format("%.3f",Edi);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λС<CEBB><D0A1>
Edi = CStringToDouble(s);
return Edi;
}
//<2F><><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD><EFBFBD>ܶȺ<DCB6>Ƶ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
void CLaser::CalCurrByEdi(eLaserDeviceType LaserDeviceType,double F,double &I,double Edi)
{
double EnergyDensityPo = 0;
double EnergyDensityK = 0;
GetEnergyDensityPar(LaserDeviceType,F,EnergyDensityK,EnergyDensityPo);
I = CalCurrByEdiExt(LaserDeviceType,F,Edi,EnergyDensityK,EnergyDensityPo);
}
//FƵ<46><C6B5>Edi<64><69><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>P0<50>ؾ<EFBFBD>Kб<4B><D0B1>
double CLaser::CalCurrByEdiExt(eLaserDeviceType LaserDeviceType,double F,double Edi,double K,double Po)
{
if(F==0 || Edi==0)
return 0;
//<2F><><EFBFBD>߳ߴ<DFB3>
DbSize SpotSize = GetSpotSize(LaserDeviceType);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱȡƵ<C8A1><C6B5>= 1
if(LaserDeviceType == _LaserDeviceType_RedLaser)
F = 1;
if(LaserDeviceType != _LaserDeviceType_RedLaser)
Edi /= 1000;
double Ei = Edi*(SpotSize.w*SpotSize.h)/0.1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double Pi = Ei*F;//<2F><><EFBFBD>Ϲ<EFBFBD><CFB9><EFBFBD>ֵ
double I = (Pi-Po)/K;
CString s;
if(m_LaserCurrDigitsCnt>=2)
s.Format("%.2f",I);//<2F><><EFBFBD><EFBFBD>2 λС<CEBB><D0A1>
else
s.Format("%.1f",I);//<2F><><EFBFBD><EFBFBD>1 λС<CEBB><D0A1>
I = CStringToDouble(s);
s.Format("Po=[%.3f] K=[%.3f] I=[%.3f] F=[%.3f] L=[%.3f] W=[%.3f]Pi=[%.3f] Ei=[%.3f] Edi=[%.3f]",Po,K,I,F,SpotSize.w,SpotSize.h,Pi,Ei,Edi);
//gLogMgr->WriteDebugLog(s);
return I;
}
//<2F><><EFBFBD><EFBFBD>recipe <20>ж<EFBFBD>Ӧ<EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ֵ(P = P0 + K*I)
double CLaser::CalPowerByRecipePar(eLaserDeviceType LaserDeviceType,double Fre,double I)
{
double P = 0;
//<2F>ҵ<EFBFBD>Ƶ<EFBFBD><C6B5>Fre <20><>Ӧ<EFBFBD><D3A6>K<EFBFBD><4B>Po
double Po = 0;
double K = 0;
if(GetEnergyDensityPar(LaserDeviceType,Fre,K,Po))
{
P = CalPowerByDensityPar(Po,K,I);
}
return P;
}
double CLaser::CalPowerByDensityPar(double Po,double K,double I)
{
double P = 0;
P = Po + K*I;
if(P<0)
P=0;
return P;
}
#endif
#if 1
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>߳ߴ<DFB3>
DbSize CLaser::GetSpotSize(eLaserDeviceType LaserDeviceType)
{
DbSize SpotSize = m_SpotSize;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱȡƵ<C8A1><C6B5>= 1
if(LaserDeviceType == _LaserDeviceType_RedLaser)
{
SpotSize = m_RedSpotSize;
}
return SpotSize;
}
CString CLaser::GetLaserDeviceName(eLaserDeviceType LaserDeviceType)
{
CString s;
if(LaserDeviceType == _LaserDeviceType_MainLaser1)
s = ("<EFBFBD>̹<EFBFBD>1");
if(LaserDeviceType == _LaserDeviceType_MainLaser2)
s = ("<EFBFBD>̹<EFBFBD>2");
if(LaserDeviceType == _LaserDeviceType_RedLaser)
s = ("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
return s;
}
//<2F><><EFBFBD><EFBFBD><E9B9A6><EFBFBD>ܶȲ<DCB6><C8B2><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>޶<EFBFBD><DEB6><EFBFBD>Χ<EFBFBD><CEA7>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򷢳<EFBFBD>WarningMsg)
bool CLaser::CheckEnergyDensityPar(eLaserDeviceType LaserDeviceType,double Fre,double K,double Po)
{
gLogMgr->WriteDebugLog("Func---->CheckEnergyDensityPar");
double CurK,CurPo;//<2F><>ǰֵ
GetEnergyDensityPar(LaserDeviceType,Fre,CurK,CurPo);
CString Log = GetLaserDeviceName(LaserDeviceType);
Log += "\n";
CString s;
s.Format("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵK[%lf] Po[%lf]",CurK,CurPo);
Log += s;
Log += "\n";
s.Format("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵK[%lf] Po[%lf]",K,Po);
Log += s;
Log += "\n";
gLogMgr->WriteDebugLog(Log);
//<2F><><EFBFBD><EFBFBD><E2B1A8>
if(CurK==0 || CurPo==0)
return false;
bool Ret = true;
double ChangeScal = (fabs(K-CurK)/CurK)*100;
if(ChangeScal >(m_EnergyParChangeScal))
{
s.Format("K <20><EFBFBD><E4BBAF><EFBFBD><EFBFBD>%lf%% <20><><EFBFBD><EFBFBD><EFBFBD>޶<EFBFBD><DEB6><EFBFBD>Χ",ChangeScal);
Log += s;
Log += "\n";
Ret = false;
}
ChangeScal = (fabs(Po-CurPo)/CurPo)*100;
if(ChangeScal >(m_EnergyParChangeScal))
{
s.Format("Po <20><EFBFBD><E4BBAF><EFBFBD><EFBFBD>%lf%% <20><><EFBFBD><EFBFBD><EFBFBD>޶<EFBFBD><DEB6><EFBFBD>Χ",ChangeScal);
Log += s;
Log += "\n";
Ret = false;
}
if(Ret)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
Log += "<EFBFBD><EFBFBD><EFBFBD>޶<EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>";
}
else//<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>,<2C><><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD><EFBFBD>Ϣ
{
CString AddInfo;
AddInfo = Log;
if(LaserDeviceType == _LaserDeviceType_MainLaser1)
gWarningMgr->SendWarningMsg(_Warning_Code_41,AddInfo);
if(LaserDeviceType == _LaserDeviceType_MainLaser2)
gWarningMgr->SendWarningMsg(_Warning_Code_42,AddInfo);
if(LaserDeviceType == _LaserDeviceType_RedLaser)
gWarningMgr->SendWarningMsg(_Warning_Code_43,AddInfo);
}
return Ret;
}
//ͨ<><CDA8><EFBFBD>ص<EFBFBD><D8B5>ʺ͹<CABA><CDB9><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mm (bhorizontal <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>)
double CLaser::GetScanIntervals(double ScanOverlapRatio,bool bhorizontal)
{
double ScanIntervals = 1;
double SpotSize;
if(gLaser->IsbScanByDirX())
SpotSize = m_SpotSize.h;
else
SpotSize = m_SpotSize.w;
if(ScanOverlapRatio>0&&ScanOverlapRatio<100)
{
ScanIntervals = SpotSize-(SpotSize*ScanOverlapRatio)/100;
}
return ScanIntervals;
}
#endif
#if 1
void CLaser::IniEdiParList(CListCtrl &list)
{
//<2F><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>
list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int idx = 0;
list.InsertColumn(idx,"Idx",LVCFMT_LEFT,35,-1);
idx++;
list.InsertColumn(idx,"Laser",LVCFMT_LEFT,55,-1);
idx++;
list.InsertColumn(idx,"Fre",LVCFMT_LEFT,55,-1);
idx++;
list.InsertColumn(idx,"K",LVCFMT_LEFT,70,-1);
idx++;
list.InsertColumn(idx,"Po",LVCFMT_LEFT,70,-1);
idx++;
}
void CLaser::UpdateEdiParList(CListCtrl &List)
{
List.DeleteAllItems();
int size = m_EnergyDensityParVec.size();
for(int k=0;k<size;k++)
{
CEnergyDensityPar &Par = m_EnergyDensityParVec[k];
int idx = 0;
List.InsertItem(k," ");//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
List.SetItemText(k,idx++,Int2CString(k+1));//<2F><><EFBFBD><EFBFBD>
List.SetItemText(k,idx++,GetLaserDeviceName((eLaserDeviceType)Par.m_LaserDeviceType));
List.SetItemText(k,idx++,Db2CString(Par.m_LaserFre,1));
List.SetItemText(k,idx++,Db2CString(Par.m_EdiK,4));
List.SetItemText(k,idx++,Db2CString(Par.m_EdiPo,4));
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶȲ<DCB6><C8B2><EFBFBD>д<EFBFBD><EFBFBD>ļ<EFBFBD>
void CLaser::WriteEnergyDensityParFile()
{
gLogMgr->WriteDebugLog("Func--->WriteEnergyDensityParFile");
CFileMgr FileMgr;
CString FilePath;
FileMgr.GetFullFilePath(FilePath,EDI_PARA_FILE);
ofstream fileStream;
fileStream.open(FilePath);//<2F><><EFBFBD>ǵķ<C7B5>ʽ
int size = m_EnergyDensityParVec.size();
for(int k=0;k<size;k++)
{
CEnergyDensityPar &Par = m_EnergyDensityParVec[k];
fileStream<<Par.m_LaserDeviceType<<",";
fileStream<<Par.m_LaserFre<<",";
fileStream<<Par.m_EdiK<<",";
fileStream<<Par.m_EdiPo<<endl;
}
}
//<2F><><EFBFBD>ļ<EFBFBD><C4BC>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ܶȵIJ<C8B5><C4B2><EFBFBD>
void CLaser::ReadEnergyDensityParFile()
{
gLogMgr->WriteDebugLog("Func--->ReadEnergyDensityParFile");
CFileMgr FileMgr;
CString FilePath;
FileMgr.GetFullFilePath(FilePath,EDI_PARA_FILE);
vector<vector<CString>> StrVec;
FileMgr.ReadFileToStrVec(FilePath,StrVec);
m_EnergyDensityParVec.clear();
int size = StrVec.size();
for(int k=0;k<size;k++)
{
if(StrVec[k].size() == 4)
{
CEnergyDensityPar Par;
Par.m_LaserDeviceType = CStringToInt(StrVec[k][0]);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Par.m_LaserFre = CStringToDouble(StrVec[k][1]);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
Par.m_EdiK = CStringToDouble(StrVec[k][2]);//<2F><><EFBFBD><EFBFBD><EFBFBD>ܶȵ<DCB6>б<EFBFBD><D0B1>
Par.m_EdiPo = CStringToDouble(StrVec[k][3]);//<2F><><EFBFBD><EFBFBD><EFBFBD>ܶȵĽؾ<C4BD>
m_EnergyDensityParVec.push_back(Par);
CString log;
log.Format(" F : [%.1f] K : [%lf] Po : [%lf]",Par.m_LaserFre,Par.m_EdiK,Par.m_EdiPo);
log = GetLaserDeviceName((eLaserDeviceType)Par.m_LaserDeviceType) + log;
gLogMgr->WriteDebugLog(log);
}
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ(<28>ֶ<EFBFBD>)
void CLaser::SetEnergyDensityPar(eLaserDeviceType LaserDeviceType,double Fre,double K,double Po)
{
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ܶȵIJ<C8B5><C4B2><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>)
bool CLaser::GetEnergyDensityPar(eLaserDeviceType LaserDeviceType,double Fre,double &K,double &Po)
{
int LaserType = (int)LaserDeviceType;
int size = m_EnergyDensityParVec.size();
for(int k=0;k<size;k++)
{
CEnergyDensityPar &Par = m_EnergyDensityParVec[k];
if(Par.m_LaserDeviceType == LaserType && IsTwoDbEqual(Fre,Par.m_LaserFre))
{
K = Par.m_EdiK;
Po = Par.m_EdiPo;
return true;
}
}
K =0;
Po = 0;
return false;
}
#endif
#if 1//<2F><><EFBFBD><EFBFBD>˥<EFBFBD><CBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˥<EFBFBD><CBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><CAA7>ʱ<EFBFBD>׳<EFBFBD><D7B3>쳣)
void CLaser::IOSwitchLaserDimmer(bool bOpen)
{
}
//ͨ<><CDA8>XY <20>ƶ<EFBFBD><C6B6><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TargetCoord <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˥<EFBFBD><CBA5><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>׳<EFBFBD><D7B3>쳣)
void CLaser::IOSwitchLaserDimmerByTargetCoord(Dbxy TargetCoord)
{
}
#endif
#if 1//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD><DFBF><EFBFBD>
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ
void CLaser::StartLaserSleepTime()
{
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ
void CLaser::StopLaserSleepTime()
{
m_bStopLaserSleepTime = true;
gLogMgr->WriteDebugLog("Func---->StopSleepLaserTime");
}
//<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3>ʱ<EFBFBD><CAB1>
CString CLaser::GetCurSleepLeftTimes()
{
CString LeftTimes;
if(m_bStopLaserSleepTime)
LeftTimes = "00:00:00";
else
LeftTimes = m_LaserSleepTime.GetLeftTimes();
return LeftTimes;
}
void CLaser::LaserSleepTimeExt()
{
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void CLaser::LaserSleepImmediately()
{
gLogMgr->WriteDebugLog("Func---->Laser Sleep Immediately");
m_bStopLaserSleepTime = false;
m_LaserSleepTime.StopRecordTime();
}
#endif
#if 1
//<2F><><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>
void CLaser::UpdateLaserProp()
{
gLogMgr->WriteDebugLog("Func---->UpdateLaserProp");
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
CString Path = "Laser";
CString Name = _T("m_SpotSize_w");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie Propertie;
Propertie.SetpVal((void*)&m_SpotSize.w);
Propertie.SetType(_PROP_TYPE_DOUBLE);
Propertie.SetPath(Path);
Propertie.SetName(Name);
Propertie.WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
}
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
CString Path = "Laser";
CString Name = _T("m_SpotSize_h");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie Propertie;
Propertie.SetpVal((void*)&m_SpotSize.h);
Propertie.SetType(_PROP_TYPE_DOUBLE);
Propertie.SetPath(Path);
Propertie.SetName(Name);
Propertie.WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
}
CString log;
log.Format("SpotSize.w=%f,SpotSize.h=%f",m_SpotSize.w,m_SpotSize.h);
gLogMgr->WriteDebugLog(log);
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>õĵ<C3B5><C4B5><EFBFBD>ֵ
double CLaser::ReadCurSetLddCurrent(eLaserDeviceType LaserDeviceType)
{
bool bTwoLaserLddMode = false;
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
CString Path = "PhotonicsLaserMgr";
CString Name = _T("m_bTwoLaserLddMode");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie Propertie;
Propertie.SetpVal((void*)&bTwoLaserLddMode);
Propertie.SetType(_PROP_TYPE_BOOL);
Propertie.SetPath(Path);
Propertie.SetName(Name);
Propertie.WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
}
if(LaserDeviceType==_LaserDeviceType_MainLaser2 && !bTwoLaserLddMode)
return 0;
double Laser1LddOpenCurr = 0;
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
CString Path = "AnnealMonitoringMgr";
CString Name = _T("m_Laser1LddOpenCurr");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPropertie Propertie;
Propertie.SetpVal((void*)&Laser1LddOpenCurr);
Propertie.SetType(_PROP_TYPE_DOUBLE);
Propertie.SetPath(Path);
Propertie.SetName(Name);
Propertie.WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
}
return Laser1LddOpenCurr;
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>FixCurr <20><>Ӧ<EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>FixPow
void CLaser::GetLaserFixedCurrentPow(eLaserDeviceType LaserDeviceType,double Fre,double FixCurr,double &FixPow)
{
//<2F>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD>趨ֵ(<28><><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>)
//FixCurr = ReadCurSetLddCurrent(LaserDeviceType);
vector<CPowCheckPt> PowCheckPtPowCheckPVec;
gLaserPowCheckMgr->ReadLaserFixedCurrentPowFile(PowCheckPtPowCheckPVec);
int size = PowCheckPtPowCheckPVec.size();
for(int k=0;k<size;k++)
{
CPowCheckPt &PowCheckPt = PowCheckPtPowCheckPVec[k];
if(PowCheckPt.m_LaserType==LaserDeviceType && IsTwoDbEqual(PowCheckPt.m_LaserFre,Fre)&& IsTwoDbEqual(PowCheckPt.m_SetCurr,FixCurr))
{
FixPow = PowCheckPt.m_SurfacePow;
break;
}
}
}
#endif