|
|
|
|
#include "StdAfx.h"
|
|
|
|
|
#include "LaserDeviceMgr.h"
|
|
|
|
|
#include "Propertie.h"
|
|
|
|
|
#include "PropertieMgr.h"
|
|
|
|
|
#include "AuthorityMgr.h"
|
|
|
|
|
#include "CStringFuc.h"
|
|
|
|
|
#include "ExceptionMsg.h"
|
|
|
|
|
#include "LogMgr.h"
|
|
|
|
|
#include "GlobalFunction.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define MAX_CUR 7.8 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
#define DelayTime 200
|
|
|
|
|
|
|
|
|
|
CLaserDeviceMgr *gCLaserDeviceMgr = new CLaserDeviceMgr;
|
|
|
|
|
CLaserDeviceMgr::CLaserDeviceMgr(void)
|
|
|
|
|
{
|
|
|
|
|
m_bUse = true;
|
|
|
|
|
m_ComPort = 11;//ͨ<><CDA8><EFBFBD><EFBFBD>com <20>ڱ<EFBFBD><DAB1><EFBFBD>
|
|
|
|
|
m_ComBaudrate = 9600;//ͨ<>Ų<EFBFBD><C5B2><EFBFBD><EFBFBD><EFBFBD>(innolase 19200)(SpectraPhysics 9600)
|
|
|
|
|
m_Power = 7;//<2F><><EFBFBD><EFBFBD> <20>ٷֱ<D9B7>%
|
|
|
|
|
m_Fre = 50000;//<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
|
|
|
|
|
//m_DeviceType = _LASER_INNOLASE;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_DeviceType = _LASER_SPECTRA_PHYSICS;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_LaserSleepTimeMinutes = 30;//<2F>̹⼤<CCB9><E2BCA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ(<28><><EFBFBD><EFBFBD>)
|
|
|
|
|
m_CurLeftTimes = "00:00:00";
|
|
|
|
|
m_bExitAppCloseLaser = true;//<2F>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
CLaserDeviceMgr::~CLaserDeviceMgr(void)
|
|
|
|
|
{
|
|
|
|
|
//TurnOffEmission();
|
|
|
|
|
}
|
|
|
|
|
void CLaserDeviceMgr::Ini()
|
|
|
|
|
{
|
|
|
|
|
if(m_DeviceType==_LASER_INNOLASE)
|
|
|
|
|
{
|
|
|
|
|
//<2F><EFBFBD><F2BFAAB4><EFBFBD>
|
|
|
|
|
if(m_ComMgr.Open(m_ComPort,m_ComBaudrate))
|
|
|
|
|
{
|
|
|
|
|
//StartReadInfo();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
gLogMgr->WriteDebugLog("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if 1//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CMFCPropertyGridProperty *CLaserDeviceMgr::CreatGridProperty()
|
|
|
|
|
{
|
|
|
|
|
CString PropertyName;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CString Description;//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
CString Path = _T("SpectraPhysicsLaser");//<2F>洢·<E6B4A2><C2B7>
|
|
|
|
|
CString Name;
|
|
|
|
|
//-------------------------------------------------------------------------------//
|
|
|
|
|
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
CMFCPropertyGridProperty* pGroup = new CMFCPropertyGridProperty(PropertyName);
|
|
|
|
|
//-------------------------------------------------------------------------------//
|
|
|
|
|
if(gAuthorityMgr->CheckAuthority(_FACTORY))
|
|
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_bUse");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_bUse);
|
|
|
|
|
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>");
|
|
|
|
|
Description = _T("<EFBFBD>Ƿ<EFBFBD>ʹ<EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_bUse, Description);
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
|
|
|
|
|
gDevicePropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_bExitAppCloseLaser");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_bExitAppCloseLaser);
|
|
|
|
|
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>");
|
|
|
|
|
Description = _T("<EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>Զ<EFBFBD><EFBFBD>رռ<EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_bExitAppCloseLaser, Description);
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
|
|
|
|
|
gDevicePropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_Com");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_ComPort);
|
|
|
|
|
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>PC ͨ<><CDA8>ʹ<EFBFBD>õĴ<C3B5><C4B4>ڱ<EFBFBD><DAB1><EFBFBD>");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_ComPort, Description);
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
|
|
|
|
|
gDevicePropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_ComBaudrate");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_ComBaudrate);
|
|
|
|
|
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>");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD>Ų<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_ComBaudrate, Description);
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
|
|
|
|
|
gDevicePropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_Diode");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_Power);
|
|
|
|
|
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("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_Power, Description);
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
|
|
|
|
|
gDevicePropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_Fre");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_Fre);
|
|
|
|
|
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>");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>(hz)");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_Fre, Description);
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
|
|
|
|
|
gDevicePropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_LaserSleepTimeMinutes");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_LaserSleepTimeMinutes);
|
|
|
|
|
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><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬(<28><><EFBFBD><EFBFBD>)");
|
|
|
|
|
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_LaserSleepTimeMinutes, Description);
|
|
|
|
|
pGroup->AddSubItem(p1);
|
|
|
|
|
gDevicePropertieMgr.Insert(p1, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//-------------------------------------------------------------------------------//
|
|
|
|
|
return pGroup;
|
|
|
|
|
}
|
|
|
|
|
void CLaserDeviceMgr::ExportPar(ofstream *pFile)
|
|
|
|
|
{
|
|
|
|
|
(*pFile)<<"[ģ<><C4A3>] [CLaserDeviceMgr]------------------------------------------------"<<endl;
|
|
|
|
|
(*pFile)<<"[<5B>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>]"<<m_bUse<<endl;
|
|
|
|
|
(*pFile)<<"[<5B><><EFBFBD>ں<EFBFBD>]"<<m_ComPort<<endl;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
#if 1
|
|
|
|
|
void CLaserDeviceMgr::WriteWorkFileExt(vector<CLab> &LabVec)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
void CLaserDeviceMgr::ReadWorkFile(CLabVecRang &LabVecRang)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
#if 1
|
|
|
|
|
//<2F><>ʼ<EFBFBD>ӹ<EFBFBD>֮ǰ<D6AE>IJ<EFBFBD><C4B2><EFBFBD>
|
|
|
|
|
void CLaserDeviceMgr::OnWorkStart()
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ
|
|
|
|
|
//StopLaserSleepTime();
|
|
|
|
|
|
|
|
|
|
SetParToLaserDevice(true);
|
|
|
|
|
}
|
|
|
|
|
//<2F>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
|
|
|
|
|
void CLaserDeviceMgr::OnWorkEnd()
|
|
|
|
|
{
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ
|
|
|
|
|
//StartLaserSleepTime();
|
|
|
|
|
}
|
|
|
|
|
void CLaserDeviceMgr::SetParToLaserDevice(bool bException)
|
|
|
|
|
{
|
|
|
|
|
if(m_bUse)
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
|
|
|
|
if(m_DeviceType==_LASER_SPECTRA_PHYSICS)
|
|
|
|
|
{
|
|
|
|
|
SetParToLaserSpectraPhysics();
|
|
|
|
|
}
|
|
|
|
|
else if(m_DeviceType==_LASER_INNOLASE)
|
|
|
|
|
{
|
|
|
|
|
SetParToLaserInnolase(bException);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
#if 1//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>---<2D><><EFBFBD><EFBFBD>
|
|
|
|
|
void CLaserDeviceMgr::SetParToLaserSpectraPhysics()
|
|
|
|
|
{
|
|
|
|
|
gLogMgr->WriteDebugLog("func ; CLaserDeviceMgr---->SetParToLaserSpectraPhysics");
|
|
|
|
|
|
|
|
|
|
CCommPortMgr com;
|
|
|
|
|
if(com.Open(m_ComPort))
|
|
|
|
|
{
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD>emission
|
|
|
|
|
CString str1 = _T("ON");
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
com.Write(str);
|
|
|
|
|
Sleep(DelayTime);
|
|
|
|
|
}
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD>emission
|
|
|
|
|
CString str1 = _T("?D");
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
com.Write(str);
|
|
|
|
|
Sleep(DelayTime);
|
|
|
|
|
CString ret = com.ReadStr();
|
|
|
|
|
if(ret == "0")
|
|
|
|
|
{
|
|
|
|
|
CString str = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>emission <20><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>");
|
|
|
|
|
CExceptionMsg Msg;
|
|
|
|
|
Msg.SetMsg(str);
|
|
|
|
|
throw Msg;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
CString str1 = Db2CString(m_Power*MAX_CUR*0.01);
|
|
|
|
|
CString str = "C:"+ str1+char(13)+char(10);
|
|
|
|
|
com.Write(str);
|
|
|
|
|
Sleep(DelayTime);
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
|
|
|
|
|
{
|
|
|
|
|
CString str1 = Int2CString(m_Fre*1000);
|
|
|
|
|
CString str = "Q:"+ str1+char(13)+char(10);
|
|
|
|
|
com.Write(str);
|
|
|
|
|
Sleep(DelayTime);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
CString str = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
|
|
|
|
gLogMgr->WriteDebugLog(str);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ״̬
|
|
|
|
|
CString CLaserDeviceMgr::GetLaserState()
|
|
|
|
|
{
|
|
|
|
|
CString State;
|
|
|
|
|
CCommPortMgr com;
|
|
|
|
|
//<2F><EFBFBD><F2BFAAB4><EFBFBD>
|
|
|
|
|
if(com.Open(m_ComPort))
|
|
|
|
|
{
|
|
|
|
|
CString str1 = _T("?F");
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
com.Write(str);
|
|
|
|
|
Sleep(DelayTime);
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|
|
|
|
State = com.ReadStr();
|
|
|
|
|
com.Close();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
State = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
|
|
|
|
}
|
|
|
|
|
return State;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD>Ȼ<EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
CString CLaserDeviceMgr::GetWarmTime()
|
|
|
|
|
{
|
|
|
|
|
CString time = _T("0");
|
|
|
|
|
CCommPortMgr com;
|
|
|
|
|
//<2F><EFBFBD><F2BFAAB4><EFBFBD>
|
|
|
|
|
if(com.Open(m_ComPort))
|
|
|
|
|
{
|
|
|
|
|
CString str1 = _T("WARMUPTIME?");
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
com.Write(str);
|
|
|
|
|
Sleep(DelayTime);
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|
|
|
|
time = com.ReadStr();
|
|
|
|
|
com.Close();
|
|
|
|
|
}
|
|
|
|
|
return time;
|
|
|
|
|
}
|
|
|
|
|
void CLaserDeviceMgr::TurnOnEmission()
|
|
|
|
|
{
|
|
|
|
|
gLogMgr->WriteDebugLog("func ; CLaserDeviceMgr---->TurnOnEmission");
|
|
|
|
|
|
|
|
|
|
CCommPortMgr com;
|
|
|
|
|
//<2F><EFBFBD><F2BFAAB4><EFBFBD>
|
|
|
|
|
if(com.Open(m_ComPort)==false)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>emission
|
|
|
|
|
{
|
|
|
|
|
CString str1 = _T("ON");
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
com.Write(str);
|
|
|
|
|
Sleep(DelayTime);
|
|
|
|
|
}
|
|
|
|
|
com.Close();
|
|
|
|
|
}
|
|
|
|
|
void CLaserDeviceMgr::TurnOffEmission()
|
|
|
|
|
{
|
|
|
|
|
CCommPortMgr com;
|
|
|
|
|
//<2F><EFBFBD><F2BFAAB4><EFBFBD>
|
|
|
|
|
if(com.Open(m_ComPort)==false)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>emission
|
|
|
|
|
{
|
|
|
|
|
CString str1 = _T("OFF");
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
com.Write(str);
|
|
|
|
|
Sleep(DelayTime);
|
|
|
|
|
}
|
|
|
|
|
com.Close();
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
#if 1//<2F>¹<EFBFBD>innolase <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(bException <20><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7>׳<EFBFBD><D7B3>쳣)
|
|
|
|
|
void CLaserDeviceMgr::SetParToLaserInnolase(bool bException)
|
|
|
|
|
{
|
|
|
|
|
gLogMgr->WriteDebugLog("func ; CLaserDeviceMgr---->SetParToLaserInnolase");
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>û<EFBFBD>б仯ʱ<E4BBAF><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if(IsTwoDbEqual(m_CurLaserCurr,m_Power) && IsTwoDbEqual(m_CurLaserFre,m_Fre))
|
|
|
|
|
{
|
|
|
|
|
gLogMgr->WriteDebugLog("par not change");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
SendMsgToDevice(_INNOLAS_CURRENT,true,m_Power,bException);
|
|
|
|
|
SendMsgToDevice(_INNOLAS_FRE,true,m_Fre,bException);//m_Fre <20><>λ<EFBFBD><CEBB>khz
|
|
|
|
|
Sleep(100);//<2F>ٷ<EFBFBD>һ<EFBFBD><D2BB>
|
|
|
|
|
SendMsgToDevice(_INNOLAS_CURRENT,true,m_Power,bException);
|
|
|
|
|
SendMsgToDevice(_INNOLAS_FRE,true,m_Fre,bException);
|
|
|
|
|
|
|
|
|
|
//<2F><>¼<EFBFBD><C2BC>ǰֵ
|
|
|
|
|
m_CurLaserCurr = m_Power;
|
|
|
|
|
m_CurLaserFre = m_Fre;
|
|
|
|
|
|
|
|
|
|
//Sleep(1000);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>Innolase <20>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>óɹ<C3B3>
|
|
|
|
|
//CheckInnolaseLaserPar(m_Power,m_Fre,bException);
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>Innolase <20>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>óɹ<C3B3>
|
|
|
|
|
void CLaserDeviceMgr::CheckInnolaseLaserPar(double Power,double Fre,bool bException)
|
|
|
|
|
{
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʵIJ<CAB5><C4B2><EFBFBD>ֵ
|
|
|
|
|
ReadLaserPar();
|
|
|
|
|
//<2F>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ
|
|
|
|
|
double GetPower = GetCurLaserCurr();
|
|
|
|
|
double GetFre = GetCurLaserFre();
|
|
|
|
|
CString str;
|
|
|
|
|
gLogMgr->WriteDebugLog("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>532 <20>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>óɹ<C3B3>");
|
|
|
|
|
str.Format("GetPower = %lf,SetPower = %lf",GetPower,Power);
|
|
|
|
|
gLogMgr->WriteDebugLog(str);
|
|
|
|
|
str.Format("GetFre = %lf,SetFre = %lf",GetFre,Fre);
|
|
|
|
|
gLogMgr->WriteDebugLog(str);
|
|
|
|
|
double eps = 0.1;
|
|
|
|
|
if(bException)
|
|
|
|
|
{
|
|
|
|
|
if(!IsTwoDbEqual(GetPower,Power,eps) || !IsTwoDbEqual(GetFre,Fre,eps))
|
|
|
|
|
{
|
|
|
|
|
CExceptionMsg Msg;
|
|
|
|
|
CString str("532 <20>̹⼤<CCB9><E2BCA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>趨ʧ<E8B6A8><CAA7>!");
|
|
|
|
|
Msg.SetMsg(str);
|
|
|
|
|
throw Msg;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>(bException ʧ<><CAA7>ʱ<EFBFBD>׳<EFBFBD><D7B3>쳣)
|
|
|
|
|
double CLaserDeviceMgr::SendMsgToDevice(INNOLAS_LASER_OP_TYPE type,bool bSet,double val,bool bException)
|
|
|
|
|
{
|
|
|
|
|
double GetVal = 0;//<2F><>ȡֵ
|
|
|
|
|
|
|
|
|
|
bool ret = true;
|
|
|
|
|
CString str;
|
|
|
|
|
|
|
|
|
|
//<2F><EFBFBD><F2BFAAB4><EFBFBD>
|
|
|
|
|
if(m_ComMgr.IsOpen())
|
|
|
|
|
{
|
|
|
|
|
CInnolasOpPar OpPar;
|
|
|
|
|
OpPar.bSet = bSet;
|
|
|
|
|
OpPar.SetVal = val;
|
|
|
|
|
OpPar.Type = type;
|
|
|
|
|
SendMsgToDeviceExt(m_ComMgr,OpPar);
|
|
|
|
|
|
|
|
|
|
if(!bSet)//<2F><>ȡ
|
|
|
|
|
{
|
|
|
|
|
Sleep(100);
|
|
|
|
|
char ReadBuf[256];
|
|
|
|
|
memset(ReadBuf,0,256);
|
|
|
|
|
m_ComMgr.ReadBuf(ReadBuf,256);
|
|
|
|
|
|
|
|
|
|
int ValIdx1 = 8;//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>λ<EFBFBD><CEBB>
|
|
|
|
|
int ValIdx2 = 9;
|
|
|
|
|
|
|
|
|
|
unsigned char ValChar1 = ReadBuf[ValIdx1];
|
|
|
|
|
unsigned char ValChar2 = ReadBuf[ValIdx2];
|
|
|
|
|
|
|
|
|
|
unsigned int Val1 = ValChar1;
|
|
|
|
|
unsigned int Val2 = ValChar2;
|
|
|
|
|
GetVal = HexByte2Int(Val1,Val2);
|
|
|
|
|
|
|
|
|
|
GetVal /=GetLaserUnit(OpPar.Type);//ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ret = false;
|
|
|
|
|
//str = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣!";
|
|
|
|
|
}
|
|
|
|
|
if(bException && !ret && !gExitApp)
|
|
|
|
|
{
|
|
|
|
|
CExceptionMsg Msg;
|
|
|
|
|
Msg.SetMsg(str);
|
|
|
|
|
throw Msg;
|
|
|
|
|
}
|
|
|
|
|
return GetVal;
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>豸
|
|
|
|
|
void CLaserDeviceMgr::SendMsgToDeviceExt(CCommPortMgr&Comm,CInnolasOpPar &OpPar)
|
|
|
|
|
{
|
|
|
|
|
unsigned char buf[256];
|
|
|
|
|
memset(buf,0,256);
|
|
|
|
|
int idx = 0;
|
|
|
|
|
//Startbyte 2 byte ,Value is 0xFF00
|
|
|
|
|
buf[idx++] = 0xff;
|
|
|
|
|
buf[idx++] = 0x00;
|
|
|
|
|
//Length of command ,1 byte <20>ֽ<EFBFBD><D6BD><EFBFBD>
|
|
|
|
|
buf[idx++] = GetLenOfCmd(OpPar.Type);
|
|
|
|
|
//Message ID 2 byte, <20><>Χ0 ~ 0x7FFF
|
|
|
|
|
buf[idx++] = 0x00;
|
|
|
|
|
buf[idx++] = GetMsgID(OpPar.Type);
|
|
|
|
|
|
|
|
|
|
//Command type,1 byte,0x57 command (set) 0x47 query (get)
|
|
|
|
|
buf[idx++] = GetOpType(OpPar.bSet);
|
|
|
|
|
//Opcode 2 byte
|
|
|
|
|
buf[idx++] = GetOpCode1(OpPar.Type);
|
|
|
|
|
buf[idx++] = GetOpCode2(OpPar.Type);
|
|
|
|
|
//Parameter ,0...245 byte
|
|
|
|
|
//if(OpPar.bSet)
|
|
|
|
|
{
|
|
|
|
|
int IntVal = OpPar.SetVal * GetLaserUnit(OpPar.Type);
|
|
|
|
|
char HexVal[128];
|
|
|
|
|
memset(HexVal,0,128);
|
|
|
|
|
IntTo2ByteHex(IntVal,HexVal);
|
|
|
|
|
if(OpPar.Type == _INNOLAS_SYS_ENABLE)
|
|
|
|
|
{
|
|
|
|
|
buf[idx++] = 0x01;//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
buf[idx++] = HexVal[0];
|
|
|
|
|
buf[idx++] = HexVal[1];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//Checksum,1 byte,Addition mod 256 (У<><D0A3><EFBFBD><EFBFBD>)
|
|
|
|
|
int Checksum = 0;
|
|
|
|
|
for(int k=0;k<idx;k++)
|
|
|
|
|
{
|
|
|
|
|
Checksum += (int)buf[k];
|
|
|
|
|
}
|
|
|
|
|
Checksum %= 256;
|
|
|
|
|
buf[idx++] = (char)Checksum;
|
|
|
|
|
|
|
|
|
|
//Endbyte ,1 byte
|
|
|
|
|
buf[idx++] = char(13);//<CR>
|
|
|
|
|
Comm.WriteBuf(buf,idx);
|
|
|
|
|
}
|
|
|
|
|
//<2F><>ȡָ<C8A1><D6B8><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
|
|
|
|
unsigned char CLaserDeviceMgr::GetLenOfCmd(INNOLAS_LASER_OP_TYPE Type)
|
|
|
|
|
{
|
|
|
|
|
unsigned c = 0x09;
|
|
|
|
|
if(Type == _INNOLAS_SYS_ENABLE)
|
|
|
|
|
{
|
|
|
|
|
c = 0x08;
|
|
|
|
|
}
|
|
|
|
|
return c;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><>ȡMSG ID
|
|
|
|
|
unsigned char CLaserDeviceMgr::GetMsgID(INNOLAS_LASER_OP_TYPE Type)
|
|
|
|
|
{
|
|
|
|
|
int id = (int)Type;
|
|
|
|
|
unsigned char c = (unsigned char)id;
|
|
|
|
|
return c;
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned char CLaserDeviceMgr::GetOpType(bool bSet)
|
|
|
|
|
{
|
|
|
|
|
return (bSet)?0x57:0x47;
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>code <20>ĵ<EFBFBD>1 <20><><EFBFBD>ֽ<EFBFBD>
|
|
|
|
|
unsigned char CLaserDeviceMgr::GetOpCode1(INNOLAS_LASER_OP_TYPE Type)
|
|
|
|
|
{
|
|
|
|
|
unsigned char c = 0x00;
|
|
|
|
|
|
|
|
|
|
return c;
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>code <20>ĵ<EFBFBD>2 <20><><EFBFBD>ֽ<EFBFBD>
|
|
|
|
|
unsigned char CLaserDeviceMgr::GetOpCode2(INNOLAS_LASER_OP_TYPE Type)
|
|
|
|
|
{
|
|
|
|
|
unsigned char c = 0x00;
|
|
|
|
|
if(Type == _INNOLAS_FRE)
|
|
|
|
|
{
|
|
|
|
|
c = 0x81;
|
|
|
|
|
}
|
|
|
|
|
else if(Type == _INNOLAS_SYS_ENABLE)
|
|
|
|
|
{
|
|
|
|
|
c = 0xc1;
|
|
|
|
|
}
|
|
|
|
|
else if(Type == _INNOLAS_CURRENT)
|
|
|
|
|
{
|
|
|
|
|
c = 0x70;
|
|
|
|
|
}
|
|
|
|
|
else if(Type == _INNOLAS_SYS_STATE)
|
|
|
|
|
{
|
|
|
|
|
c = 0xa4;
|
|
|
|
|
}
|
|
|
|
|
return c;
|
|
|
|
|
}
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
|
|
|
|
double CLaserDeviceMgr::GetLaserUnit(INNOLAS_LASER_OP_TYPE Type)
|
|
|
|
|
{
|
|
|
|
|
double n = 1;
|
|
|
|
|
if(Type == _INNOLAS_FRE)
|
|
|
|
|
{
|
|
|
|
|
n = 10;
|
|
|
|
|
}
|
|
|
|
|
else if(Type == _INNOLAS_CURRENT)
|
|
|
|
|
{
|
|
|
|
|
n = 100;
|
|
|
|
|
}
|
|
|
|
|
return n;
|
|
|
|
|
}
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʵIJ<CAB5><C4B2><EFBFBD>ֵ
|
|
|
|
|
void CLaserDeviceMgr::ReadLaserPar()
|
|
|
|
|
{
|
|
|
|
|
if(gExitApp)
|
|
|
|
|
return;
|
|
|
|
|
m_CurLaserCurr = SendMsgToDevice(_INNOLAS_CURRENT,false,0,false);//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
m_CurLaserFre= SendMsgToDevice(_INNOLAS_FRE,false,0,false);//Ƶ<><C6B5>
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
#if 1//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD><DFBF><EFBFBD>
|
|
|
|
|
UINT LaserSleepThread(LPVOID pParam)
|
|
|
|
|
{
|
|
|
|
|
CLaserDeviceMgr *p = (CLaserDeviceMgr *)pParam;
|
|
|
|
|
p->LaserSleepTimeExt();
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ
|
|
|
|
|
void CLaserDeviceMgr::StartLaserSleepTime()
|
|
|
|
|
{
|
|
|
|
|
m_LaserSleepTime.StartBackTime(m_LaserSleepTimeMinutes*60);
|
|
|
|
|
m_bStopLaserSleepTime = false;//<2F><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>߳<EFBFBD>
|
|
|
|
|
AfxBeginThread(LaserSleepThread,this);
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ
|
|
|
|
|
void CLaserDeviceMgr::StopLaserSleepTime()
|
|
|
|
|
{
|
|
|
|
|
m_bStopLaserSleepTime = true;//<2F><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>߳<EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
void CLaserDeviceMgr::LaserSleepTimeExt()
|
|
|
|
|
{
|
|
|
|
|
while(1)
|
|
|
|
|
{
|
|
|
|
|
Sleep(600);
|
|
|
|
|
if(gExitApp)
|
|
|
|
|
return;
|
|
|
|
|
if(m_bStopLaserSleepTime)
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
if(m_LaserSleepTime.IsBackTimeEnd())//<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0
|
|
|
|
|
if(m_DeviceType==_LASER_INNOLASE)
|
|
|
|
|
{
|
|
|
|
|
SendMsgToDevice(_INNOLAS_CURRENT,true,0,false);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
m_CurLeftTimes = m_LaserSleepTime.GetLeftTimes();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void CLaserDeviceMgr::OnExitApp()
|
|
|
|
|
{
|
|
|
|
|
if(m_bExitAppCloseLaser)
|
|
|
|
|
{
|
|
|
|
|
//<2F>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0
|
|
|
|
|
if(m_DeviceType==_LASER_INNOLASE)
|
|
|
|
|
{
|
|
|
|
|
SendMsgToDevice(_INNOLAS_CURRENT,true,0,true);
|
|
|
|
|
}
|
|
|
|
|
if(m_DeviceType==_LASER_SPECTRA_PHYSICS)
|
|
|
|
|
{
|
|
|
|
|
TurnOffEmission();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
#if 1//<2F><>ȡ<EFBFBD>豸״̬
|
|
|
|
|
UINT ReadInfoThread(LPVOID pParam)
|
|
|
|
|
{
|
|
|
|
|
CLaserDeviceMgr *p = (CLaserDeviceMgr *)pParam;
|
|
|
|
|
p->ReadInfoExt();
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
void CLaserDeviceMgr::StartReadInfo()
|
|
|
|
|
{
|
|
|
|
|
AfxBeginThread(ReadInfoThread,this);
|
|
|
|
|
}
|
|
|
|
|
void CLaserDeviceMgr::ReadInfoExt()
|
|
|
|
|
{
|
|
|
|
|
while(1)
|
|
|
|
|
{
|
|
|
|
|
Sleep(200);
|
|
|
|
|
if(gExitApp)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ReadLaserPar();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|