#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>& 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>& 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>& 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; }