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.

116 lines
2.8 KiB
C++

#include "LayserManager.h"
LayserManager::LayserManager()
{
}
LayserManager::~LayserManager()
{
}
void LayserManager::SetMarkParam(float ms, float mms, long tcf, long tch, long tof, long toh, long dr_time, float laserfre, float laserpower)
{
m_ms = ms;
m_mms = mms;
m_tcf = tcf;
m_tch = tch;
m_tof = tof;
m_toh = toh;
m_dr_time = dr_time;
m_laserfre = laserfre;
m_laserpower = laserpower;
}
void LayserManager::StartMark(std::vector<std::vector<Dbxy2>>& MarkCoord)
{
CMarkCtrl markCtrlObj;
markCtrlObj.SetConfigMarkParam(m_su, m_ms, m_mms, m_tcf, m_tch, m_tof, m_toh, m_dr_time, m_laserfre, m_laserpower, m_maxlaserpower);
markCtrlObj.StartMarkPci(MarkCoord);
}
void LayserManager::StartMarkSemi(std::vector<std::vector<Dbxy2>>& MarkCoord)
{
CMarkCtrl markCtrlObj;
markCtrlObj.SetConfigMarkParam(m_su, m_ms, m_mms, m_tcf, m_tch, m_tof, m_toh, m_dr_time, m_laserfre, m_laserpower, m_maxlaserpower);
markCtrlObj.StartMarkSemiVb(MarkCoord);
}
void LayserManager::OpenLaser(bool isOpen)
{
CMarkCtrl markCtrlObj;
markCtrlObj.OpenLaser(isOpen);
}
void LayserManager::SetQFreq(double qFreq)
{
std::string strOrder = "Q:" + std::to_string(qFreq) + "\r";
SendCommand(strOrder);
}
void LayserManager::SetEFreq(double qFreq)
{
std::string strOrder = "EPRF:" + std::to_string(qFreq) + "\r";
SendCommand(strOrder);
}
void LayserManager::TestMarkSemi(std::vector<std::vector<Dbxy2>>& MarkCoord, int pauseDelay, int pauseFirstDelay)
{
CMarkCtrl markCtrlObj;
markCtrlObj.m_pauseDelay = pauseDelay;
markCtrlObj.m_pauseFirstDelay = pauseFirstDelay;
markCtrlObj.SetConfigMarkParam(m_su, m_ms, m_mms, m_tcf, m_tch, m_tof, m_toh, m_dr_time, m_laserfre, m_laserpower, m_maxlaserpower);
markCtrlObj.StartMarkSemiVb(MarkCoord);
}
void LayserManager::InitLaser()
{
Pci365CardMgr::GetInstance()->CtrlLaserGate(false);
SendCommand(std::string("GEXT:1"));
SendCommand(std::string("G:1"));
SendCommand(std::string("BEI:1"));
SendCommand(std::string("ON"));
//¹Ø±Õ¼¤¹â
OpenLaser(false);
}
void LayserManager::UnInitLaser()
{
SendCommand(std::string("G:0"));
SendCommand(std::string("GEXT:0"));
SendCommand(std::string("OFF"));
Pci365CardMgr::GetInstance()->CtrlLaserGate(false);
}
bool LayserManager::SendCommand(std::string& order)
{
order.append("\r");
m_ComMgr.SetWorkMode(FALSE, 500);
std::string strCom = std::to_string(m_nComBaduRate) + ",N,8,1";
bool bComOpen = m_ComMgr.Open(m_Com, (char*)strCom.c_str());
//order.append("\r");
m_ComMgr.Write(order.c_str());
Sleep(500);
//¶ÁÈ¡·´À¡Öµ
std::string strRet = m_ComMgr.ReadStr();
m_ComMgr.Close();
return CheckResponse(strRet);
}
bool LayserManager::CheckResponse(std::string& returnStr)
{
if (returnStr.size() <= 0)
{
return false;
}
int findIndex = 0;
findIndex = returnStr.find("\n");
if (findIndex < 0)
{
return false;
}
return true;
}