|
|
|
|
#include "StdAfx.h"
|
|
|
|
|
#include "OptoWaveLaserMgr.h"
|
|
|
|
|
#include "Propertie.h"
|
|
|
|
|
#include "PropertieMgr.h"
|
|
|
|
|
#include "AuthorityMgr.h"
|
|
|
|
|
|
|
|
|
|
#include "CStringFuc.h"
|
|
|
|
|
#include "ExceptionMsg.h"
|
|
|
|
|
#include "LogMgr.h"
|
|
|
|
|
#include "MsgBox.h"
|
|
|
|
|
#include "GlobalFunction.h"
|
|
|
|
|
#include "FileMgr.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB9>ʵ<EFBFBD>У<D0A3>ļ<EFBFBD>
|
|
|
|
|
#define LASER_POWER_FILE _T("\\Parameter\\OptoWaveLaserMgr\\OptoWavePower.txt")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
COptoWaveLaserMgr *gOptoWaveLaserMgr = new COptoWaveLaserMgr;
|
|
|
|
|
COptoWaveLaserMgr::COptoWaveLaserMgr(void)
|
|
|
|
|
{
|
|
|
|
|
m_Com = 2;//ͨ<><CDA8><EFBFBD><EFBFBD>com <20>ڱ<EFBFBD><DAB1><EFBFBD>
|
|
|
|
|
m_PowerCurr = 20;//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
m_Fre = 30;//<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>khz
|
|
|
|
|
m_SendDelay = 200;//ָ<><EFBFBD><EEB7A2><EFBFBD><EFBFBD>ʱ
|
|
|
|
|
m_CurrUpTime = 5;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1>(<28><>)
|
|
|
|
|
}
|
|
|
|
|
COptoWaveLaserMgr::~COptoWaveLaserMgr(void)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
#if 1//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CMFCPropertyGridProperty *COptoWaveLaserMgr::CreatGridProperty()
|
|
|
|
|
{
|
|
|
|
|
CString PropertyName;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CString Description;//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
CString Path = _T("OptoWaveLaserMgr");//<2F>洢·<E6B4A2><C2B7>
|
|
|
|
|
CString Name;
|
|
|
|
|
//-------------------------------------------------------------------------------//
|
|
|
|
|
PropertyName = _T("OptoWave <20><><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_Com");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_Com);
|
|
|
|
|
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_Com, Description);
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
|
|
|
|
|
gDevicePropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_PowerCurr");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_PowerCurr);
|
|
|
|
|
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>");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ(<28><>λ:A)");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_PowerCurr, 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>");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>(<28><>λ:kHz)");
|
|
|
|
|
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_SendDelay");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_SendDelay);
|
|
|
|
|
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>ʱ(<28><>λ:ms)");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_SendDelay, Description);
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
|
|
|
|
|
gDevicePropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_CurrUpTime");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_CurrUpTime);
|
|
|
|
|
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><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><EFBFBD>(<28><>)");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_CurrUpTime, Description);
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
|
|
|
|
|
gDevicePropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//-------------------------------------------------------------------------------//
|
|
|
|
|
return pGroup;
|
|
|
|
|
}
|
|
|
|
|
void COptoWaveLaserMgr::ExportPar(ofstream *pFile)
|
|
|
|
|
{
|
|
|
|
|
(*pFile)<<"[ģ<><C4A3>] [CLaserDeviceMgr]------------------------------------------------"<<endl;
|
|
|
|
|
(*pFile)<<"[<5B><><EFBFBD>ں<EFBFBD>]"<<m_Com<<endl;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
void COptoWaveLaserMgr::Ini()
|
|
|
|
|
{
|
|
|
|
|
//ֻ<>ڿ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><F2BFAAB4><EFBFBD>
|
|
|
|
|
m_ComMgr.Open(m_Com);
|
|
|
|
|
}
|
|
|
|
|
#if 1
|
|
|
|
|
void COptoWaveLaserMgr::WriteWorkFileExt(vector<CLab> &LabVec)
|
|
|
|
|
{
|
|
|
|
|
//<2F><>ȡҲҪ<D2B2><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
|
|
|
|
LabVec.push_back(CLab(LAB_NULL,m_PowerCurr));//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
LabVec.push_back(CLab(LAB_NULL,m_Fre));//Ƶ<><C6B5>
|
|
|
|
|
}
|
|
|
|
|
void COptoWaveLaserMgr::ReadWorkFile(CLabVecRang &LabVecRang)
|
|
|
|
|
{
|
|
|
|
|
int idx = LabVecRang.GetStart()+1;
|
|
|
|
|
m_PowerCurr = LabVecRang.GetDouble(idx++);
|
|
|
|
|
m_Fre = LabVecRang.GetInt(idx++);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
#if 1
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
|
|
|
CString COptoWaveLaserMgr::GetDeviceStateStr(OPTO_LASER_STATE state)
|
|
|
|
|
{
|
|
|
|
|
CString str;
|
|
|
|
|
switch(state)
|
|
|
|
|
{
|
|
|
|
|
case _STATE_COM_ERR:
|
|
|
|
|
str = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
break;
|
|
|
|
|
case _STATE_NOT_CONNECT:
|
|
|
|
|
str = _T("δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
break;
|
|
|
|
|
case _STATE_NOT_INI:
|
|
|
|
|
str = _T("δ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>");
|
|
|
|
|
break;
|
|
|
|
|
case _STATE_WAITING:
|
|
|
|
|
str = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
break;
|
|
|
|
|
case _STATE_STARTING:
|
|
|
|
|
str = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
break;
|
|
|
|
|
case _STATE_WORK:
|
|
|
|
|
str = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return str;
|
|
|
|
|
}
|
|
|
|
|
COLORREF COptoWaveLaserMgr::GetColor(OPTO_LASER_STATE state)
|
|
|
|
|
{
|
|
|
|
|
COLORREF c;
|
|
|
|
|
switch(state)
|
|
|
|
|
{
|
|
|
|
|
case _STATE_COM_ERR:
|
|
|
|
|
c = RGB_RED;
|
|
|
|
|
break;
|
|
|
|
|
case _STATE_NOT_CONNECT:
|
|
|
|
|
c = RGB_RED;
|
|
|
|
|
break;
|
|
|
|
|
case _STATE_NOT_INI:
|
|
|
|
|
c = RGB_YELLOW;
|
|
|
|
|
break;
|
|
|
|
|
case _STATE_WAITING:
|
|
|
|
|
c = RGB_YELLOW;
|
|
|
|
|
break;
|
|
|
|
|
case _STATE_STARTING:
|
|
|
|
|
c = RGB_YELLOW;
|
|
|
|
|
break;
|
|
|
|
|
case _STATE_WORK:
|
|
|
|
|
c = RGB_GREEN;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return c;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬0:δ<><CEB4>ʼ<EFBFBD><CABC>1:<3A><><EFBFBD><EFBFBD>2:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
OPTO_LASER_STATE COptoWaveLaserMgr::ReadDeviceState()
|
|
|
|
|
{
|
|
|
|
|
//<2F><EFBFBD><F2BFAAB4><EFBFBD>-----------------------------
|
|
|
|
|
if(!m_ComMgr.IsOpen())
|
|
|
|
|
{
|
|
|
|
|
return _STATE_COM_ERR;
|
|
|
|
|
}
|
|
|
|
|
//ʵ<>ʵ<EFBFBD><CAB5><EFBFBD>ֵ
|
|
|
|
|
float IDI = 0;
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD>Ͳ<EFBFBD>ѯ
|
|
|
|
|
CString str1 = "?IDI";
|
|
|
|
|
CString strSend = str1+char(13)+char(10);
|
|
|
|
|
m_ComMgr.Write(strSend);
|
|
|
|
|
Sleep(m_SendDelay);
|
|
|
|
|
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|
|
|
|
CString str2 = m_ComMgr.ReadStr();
|
|
|
|
|
if(str2 == "")
|
|
|
|
|
{
|
|
|
|
|
return _STATE_NOT_CONNECT;
|
|
|
|
|
}
|
|
|
|
|
if(str2[0]=='L' && str2[1]=='O'&&str2[2]=='C')
|
|
|
|
|
{
|
|
|
|
|
return _STATE_NOT_INI;
|
|
|
|
|
}
|
|
|
|
|
IDI = atof(str2)/10;
|
|
|
|
|
|
|
|
|
|
if(IsDbEqualZero(IDI))
|
|
|
|
|
{
|
|
|
|
|
return _STATE_WAITING;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>ֵ
|
|
|
|
|
float IDS = 0;
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD>Ͳ<EFBFBD>ѯ
|
|
|
|
|
CString str1 = "?IDS";
|
|
|
|
|
CString strSend = str1+char(13)+char(10);
|
|
|
|
|
m_ComMgr.Write(strSend);
|
|
|
|
|
Sleep(m_SendDelay);
|
|
|
|
|
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|
|
|
|
CString str2 = m_ComMgr.ReadStr();
|
|
|
|
|
IDS = atof(str2)/10;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(abs(IDS-IDI)<2)
|
|
|
|
|
{
|
|
|
|
|
return _STATE_WORK;
|
|
|
|
|
}
|
|
|
|
|
return _STATE_STARTING;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
bool COptoWaveLaserMgr::IniLaserDevice()
|
|
|
|
|
{
|
|
|
|
|
gLogMgr->WriteDebugLog("532 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>Start");
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>״̬<D7B4><EFBFBD>
|
|
|
|
|
CtrlIni();
|
|
|
|
|
|
|
|
|
|
OPTO_LASER_STATE state = ReadDeviceState();
|
|
|
|
|
if(state==_STATE_COM_ERR)
|
|
|
|
|
{
|
|
|
|
|
CMsgBox MsgBox;
|
|
|
|
|
MsgBox.Show(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>!"));
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else if(state==_STATE_NOT_CONNECT)
|
|
|
|
|
{
|
|
|
|
|
CMsgBox MsgBox;
|
|
|
|
|
MsgBox.Show(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>!"));
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
//δ<><CEB4>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>״̬
|
|
|
|
|
else if(state==_STATE_NOT_INI || state==_STATE_WAITING)
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD>ù<EFBFBD><C3B9>ʺ<EFBFBD>Ƶ<EFBFBD><C6B5>
|
|
|
|
|
SetFrequencyCurrent();
|
|
|
|
|
//<2F><EFBFBD><F2BFAAB6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
SwitchDiode(true);
|
|
|
|
|
//<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
Sleep(m_CurrUpTime*1000);
|
|
|
|
|
}
|
|
|
|
|
else//_STATE_STARTING <20><>_STATE_WORK <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>Ƶ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD>ù<EFBFBD><C3B9>ʺ<EFBFBD>Ƶ<EFBFBD><C6B5>
|
|
|
|
|
SetFrequencyCurrent();
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
//<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void COptoWaveLaserMgr::CloseLaserDevice()
|
|
|
|
|
{
|
|
|
|
|
gLogMgr->WriteDebugLog("532 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>");
|
|
|
|
|
if(!m_ComMgr.IsOpen())
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>--------------
|
|
|
|
|
{
|
|
|
|
|
CString str1 = "MCH";
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
m_ComMgr.Write(str);
|
|
|
|
|
Sleep(m_SendDelay);
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>QSW
|
|
|
|
|
{
|
|
|
|
|
CString str1 = "QSW=0";
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
m_ComMgr.Write(str);
|
|
|
|
|
Sleep(m_SendDelay);
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>SHT
|
|
|
|
|
{
|
|
|
|
|
CString str1 = "SHT=0";
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
m_ComMgr.Write(str);
|
|
|
|
|
Sleep(m_SendDelay);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
CString str1 = "DIO=0";
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
m_ComMgr.Write(str);
|
|
|
|
|
Sleep(m_SendDelay);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD>Ƴ<EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
void COptoWaveLaserMgr::CtrlIni()
|
|
|
|
|
{
|
|
|
|
|
if(!m_ComMgr.IsOpen())
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>--------------
|
|
|
|
|
{
|
|
|
|
|
CString str1 = "MCH";
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
m_ComMgr.Write(str);
|
|
|
|
|
Sleep(m_SendDelay);
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>QSW
|
|
|
|
|
{
|
|
|
|
|
CString str1 = "QSW=1";
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
m_ComMgr.Write(str);
|
|
|
|
|
Sleep(m_SendDelay);
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>SHT
|
|
|
|
|
{
|
|
|
|
|
CString str1 = "SHT=1";
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
m_ComMgr.Write(str);
|
|
|
|
|
Sleep(m_SendDelay);
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD>ع<EFBFBD>դ<EFBFBD><D5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>©<EFBFBD><C2A9>
|
|
|
|
|
{
|
|
|
|
|
CString str1 = "EXT=1";
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
m_ComMgr.Write(str);
|
|
|
|
|
Sleep(m_SendDelay);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
CString str1 = "EXT=0";
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
m_ComMgr.Write(str);
|
|
|
|
|
Sleep(m_SendDelay);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD>ʺ͵<CABA><CDB5><EFBFBD>f <20><>λkhz
|
|
|
|
|
void COptoWaveLaserMgr::SetFrequencyCurrent()
|
|
|
|
|
{
|
|
|
|
|
int f = m_Fre;
|
|
|
|
|
double c = m_PowerCurr;
|
|
|
|
|
|
|
|
|
|
//<2F><EFBFBD><F2BFAAB4><EFBFBD>-----------------------------
|
|
|
|
|
if(!m_ComMgr.IsOpen())
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
CString str1 = "PRF=";//<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD>ʣ<EFBFBD>kHZ
|
|
|
|
|
CString str2;
|
|
|
|
|
str2.Format("%ld",(f*1000));
|
|
|
|
|
CString str = str1+str2+char(13)+char(10);
|
|
|
|
|
m_ComMgr.Write(str);
|
|
|
|
|
Sleep(m_SendDelay);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
CString str1 = "IDI=";//<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>,A
|
|
|
|
|
long Current = c*10;
|
|
|
|
|
CString str2;
|
|
|
|
|
str2.Format("%ld",Current);
|
|
|
|
|
CString str = str1+str2+char(13)+char(10);
|
|
|
|
|
m_ComMgr.Write(str);
|
|
|
|
|
Sleep(m_SendDelay);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F>رն<D8B1><D5B6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void COptoWaveLaserMgr::SwitchDiode(bool b)
|
|
|
|
|
{
|
|
|
|
|
//<2F><EFBFBD><F2BFAAB4><EFBFBD>-----------------------------
|
|
|
|
|
if(!m_ComMgr.IsOpen())
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if(b)
|
|
|
|
|
{
|
|
|
|
|
CString str1 = "DIO=1";
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
m_ComMgr.Write(str);
|
|
|
|
|
Sleep(m_SendDelay);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
CString str1 = "DIO=0";
|
|
|
|
|
CString str = str1+char(13)+char(10);
|
|
|
|
|
m_ComMgr.Write(str);
|
|
|
|
|
Sleep(m_SendDelay);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>)
|
|
|
|
|
double COptoWaveLaserMgr::GetLaserPower()
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><CDB9>ʵĶ<CAB5><C4B6>ձ<EFBFBD><D5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ֵ
|
|
|
|
|
CFileMgr FileMgr;
|
|
|
|
|
CString FullPath;//<2F><><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
|
|
|
|
FileMgr.GetFullFilePath(FullPath,LASER_POWER_FILE);
|
|
|
|
|
//<2F><>ȡУ<D0A3><D7BC><EFBFBD><EFBFBD>
|
|
|
|
|
vector<vector<double>> Vec;//<2F><><EFBFBD><EFBFBD>,Ƶ<><C6B5>,<2C><><EFBFBD><EFBFBD>
|
|
|
|
|
FileMgr.ReadFileToDoubleVec(FullPath,Vec);
|
|
|
|
|
double p = 1;
|
|
|
|
|
//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>
|
|
|
|
|
double MinDiff = 0;//<2F><>С<EFBFBD><D0A1>
|
|
|
|
|
double FindVal = m_PowerCurr;//<2F><>ѯֵ
|
|
|
|
|
vector<vector<double>>::iterator iter = Vec.begin();
|
|
|
|
|
vector<vector<double>>::iterator iter_end = Vec.end();
|
|
|
|
|
for(;iter!=iter_end;iter++)
|
|
|
|
|
{
|
|
|
|
|
vector<double> &Arr = (*iter);
|
|
|
|
|
if(Arr.size()==3)
|
|
|
|
|
{
|
|
|
|
|
double CurVal = Arr[0];//<2F><>ǰֵ
|
|
|
|
|
double Diff = FindVal-CurVal;
|
|
|
|
|
if(iter == Vec.begin())
|
|
|
|
|
{
|
|
|
|
|
MinDiff = Diff;
|
|
|
|
|
p = Arr[2];
|
|
|
|
|
}
|
|
|
|
|
else if(abs(Diff)<abs(MinDiff))
|
|
|
|
|
{
|
|
|
|
|
MinDiff = Diff;
|
|
|
|
|
p = Arr[2];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return p;
|
|
|
|
|
}
|
|
|
|
|
#endif
|