|
|
|
|
|
#include "MarkCtrl.h"
|
|
|
|
|
|
#include "LaipuVbDllMgr.h"
|
|
|
|
|
|
|
|
|
|
|
|
//#include "WorkDataMgr.h"
|
|
|
|
|
|
//#include "LogMgr.h"
|
|
|
|
|
|
//#include "MarkParMgr.h"
|
|
|
|
|
|
//#include "GlobalFunction.h"
|
|
|
|
|
|
//#include "Mirror.h"
|
|
|
|
|
|
//#include "ProductMgr.h"
|
|
|
|
|
|
//#include "PciCh365Mgr.h"
|
|
|
|
|
|
//#include "WorkCmdContainer.h"
|
|
|
|
|
|
//#include "WorkCmdMarkArea.h"
|
|
|
|
|
|
//#include "WorkCmdInvoker.h"
|
|
|
|
|
|
//#include "MarkArea.h"
|
|
|
|
|
|
//#include "WorkTime.h"
|
|
|
|
|
|
//#include "ExceptionMsg.h"
|
|
|
|
|
|
//#include "CommonFlowMgr.h"
|
|
|
|
|
|
//#include "Program9SuoXzzMgr.h"
|
|
|
|
|
|
//#include "ProgramCspMarkMgr.h"
|
|
|
|
|
|
CMarkCtrl::CMarkCtrl(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_bMarkPciThreadRunning = false;//mark <20>߳<EFBFBD><DFB3>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
|
|
|
|
|
|
pData = NULL;
|
|
|
|
|
|
}
|
|
|
|
|
|
CMarkCtrl::~CMarkCtrl(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CMarkCtrl::StartMarkPci(vector<vector<Dbxy2>> &DataVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
Pci365CardMgr::GetInstance()->InitPci365Card();
|
|
|
|
|
|
|
|
|
|
|
|
m_bMarkPciThreadRunning = true;
|
|
|
|
|
|
pData = &DataVec;
|
|
|
|
|
|
|
|
|
|
|
|
m_markThread = std::thread(&CMarkCtrl::MarkPciThreadExt, this);
|
|
|
|
|
|
m_markThread.join();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CMarkCtrl::StartMarkSemiVb(vector<vector<Dbxy2>> &DataVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
Pci365CardMgr::GetInstance()->InitPci365Card();
|
|
|
|
|
|
|
|
|
|
|
|
m_bMarkPciThreadRunning = true;
|
|
|
|
|
|
pData = &DataVec;
|
|
|
|
|
|
|
|
|
|
|
|
m_markThread = std::thread(&CMarkCtrl::MarkPciSemiThread, this);
|
|
|
|
|
|
m_markThread.join();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ñ<EFBFBD><C3B1>̲<EFBFBD><CCB2><EFBFBD>
|
|
|
|
|
|
void CMarkCtrl::SetMarkParam(CLaipuVbDllMgr &LaipuVbDll)
|
|
|
|
|
|
{
|
|
|
|
|
|
//<2F><EFBFBD><F1BEB5B2><EFBFBD>--------------------------------------------------------------
|
|
|
|
|
|
//double su = 2.170;//<2F><EFBFBD><F1BEB5B2><EFBFBD>um
|
|
|
|
|
|
//float ms = 100;//<2F><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>mm/s
|
|
|
|
|
|
//float mms = 500;//<2F><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>mm/s
|
|
|
|
|
|
//long tcf = 20;//<2F>ؼ<EFBFBD><D8BC><EFBFBD>ǰ<EFBFBD><C7B0>ʱus
|
|
|
|
|
|
//long tch = 70;//<2F>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱus
|
|
|
|
|
|
//long tof = 100;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>ʱus
|
|
|
|
|
|
//long toh = 80;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱus
|
|
|
|
|
|
//long dr_time = 30;//<2F>յ<EFBFBD><D5B5><EFBFBD>ʱ us
|
|
|
|
|
|
//float laserfre =30;//<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>khz
|
|
|
|
|
|
//float laserpower = 10;//<2F><><EFBFBD><EFBFBD><E2B9A6>
|
|
|
|
|
|
//float maxlaserpower = 100;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
m_su = 1.3673;
|
|
|
|
|
|
LaipuVbDll.GetCom()->Marking_para(&m_ms,
|
|
|
|
|
|
&m_mms,&m_tcf,&m_tch,&m_tof,&m_toh,&m_su,&m_laserpower,&m_laserfre,&m_maxlaserpower,&m_dr_time);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CMarkCtrl::MarkPciThreadExt()
|
|
|
|
|
|
{
|
|
|
|
|
|
long low = 0;
|
|
|
|
|
|
long high = 0;
|
|
|
|
|
|
auto m_laipuVbDLLPtr = std::make_shared<CLaipuVbDllMgr>();
|
|
|
|
|
|
m_laipuVbDLLPtr->VbIniCard(low,high);//<2F><>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
SetMarkParam(*(m_laipuVbDLLPtr.get()));//<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
|
|
|
|
|
Sleep(100);
|
|
|
|
|
|
m_laipuVbDLLPtr->MarkingStart();//<><D7BC>
|
|
|
|
|
|
|
|
|
|
|
|
for(int i=0;i<m_markTimes;i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
//std::vector<std::vector<Dbxy>> m_testVec;
|
|
|
|
|
|
//Dbxy point1 = { -5, 0 };
|
|
|
|
|
|
//Dbxy point2 = { 5, 0 };
|
|
|
|
|
|
//std::vector<Dbxy> line1 = { point1, point2 };
|
|
|
|
|
|
//Dbxy point3 = { 0, 5 };
|
|
|
|
|
|
//Dbxy point4 = { 0, -5 };
|
|
|
|
|
|
//std::vector<Dbxy> line2 = { point3, point4 };
|
|
|
|
|
|
//m_testVec = { line1, line2 };
|
|
|
|
|
|
|
|
|
|
|
|
//double x = 1.0;
|
|
|
|
|
|
//double y = 1.0;
|
|
|
|
|
|
//for (int i = 0; i < 9; i++) {
|
|
|
|
|
|
// std::vector<Dbxy> line2 = { Dbxy(-x, y), Dbxy(x, y), Dbxy(x, -y), Dbxy(-x, -y), Dbxy(-x, y) };
|
|
|
|
|
|
// x += 1;
|
|
|
|
|
|
// y += 1;
|
|
|
|
|
|
|
|
|
|
|
|
// m_testVec.push_back(line2);
|
|
|
|
|
|
// //m_laipuVbDLLPtr->CallMarkingData(m_testVec);
|
|
|
|
|
|
//}
|
|
|
|
|
|
//m_laipuVbDLLPtr->CallMarkingData(m_testVec);
|
|
|
|
|
|
m_laipuVbDLLPtr->CallMarkingData(*pData);//<2F>ӹ<EFBFBD>
|
|
|
|
|
|
}
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>---------------------------------------------------------------------
|
|
|
|
|
|
long fileno = -1;
|
|
|
|
|
|
long fileAll = 1;
|
|
|
|
|
|
long MarkM = 8;//<2F><><EFBFBD><EFBFBD>ģʽ(<28><>ģ<EFBFBD>壬<EFBFBD><E5A3AC>dλ<64><CEBB>)
|
|
|
|
|
|
long m_sel = 1;//<2F>ļ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
|
long head = 0;
|
|
|
|
|
|
//ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>ż<EFBFBD>λ<EFBFBD><CEBB>ƫ<EFBFBD><C6AB>
|
|
|
|
|
|
m_laipuVbDLLPtr->CallMarkingEnd(fileno,fileAll,MarkM,m_sel,head,NULL);//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
m_bMarkPciThreadRunning = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CMarkCtrl::MarkPciSemiThread()
|
|
|
|
|
|
{
|
|
|
|
|
|
long low = 0;
|
|
|
|
|
|
long high = 0;
|
|
|
|
|
|
auto m_laipuVbDLLPtr = std::make_shared<CLaipuVbDllMgr>();
|
|
|
|
|
|
|
|
|
|
|
|
m_laipuVbDLLPtr->m_pauseDelay = m_pauseDelay;
|
|
|
|
|
|
m_laipuVbDLLPtr->m_pauseFirstDelay = m_pauseFirstDelay;
|
|
|
|
|
|
|
|
|
|
|
|
m_laipuVbDLLPtr->VbIniCard(low, high);//<2F><>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
SetMarkParam(*(m_laipuVbDLLPtr.get()));//<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
|
|
|
|
|
Sleep(100);
|
|
|
|
|
|
m_laipuVbDLLPtr->MarkingStart();//<><D7BC>
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < m_markTimes; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_laipuVbDLLPtr->CallMarkingDataInSemi(*pData);//<2F>ӹ<EFBFBD>
|
|
|
|
|
|
}
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>---------------------------------------------------------------------
|
|
|
|
|
|
long fileno = -1;
|
|
|
|
|
|
long fileAll = 1;
|
|
|
|
|
|
long MarkM = 8;//<2F><><EFBFBD><EFBFBD>ģʽ(<28><>ģ<EFBFBD>壬<EFBFBD><E5A3AC>dλ<64><CEBB>)
|
|
|
|
|
|
long m_sel = 1;//<2F>ļ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
|
long head = 0;
|
|
|
|
|
|
//ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>ż<EFBFBD>λ<EFBFBD><CEBB>ƫ<EFBFBD><C6AB>
|
|
|
|
|
|
m_laipuVbDLLPtr->CallMarkingEnd(fileno, fileAll, MarkM, m_sel, head, NULL);//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
m_bMarkPciThreadRunning = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CMarkCtrl::SetConfigMarkParam(
|
|
|
|
|
|
double su,
|
|
|
|
|
|
float ms,
|
|
|
|
|
|
float mms,
|
|
|
|
|
|
long tcf,
|
|
|
|
|
|
long tch,
|
|
|
|
|
|
long tof,
|
|
|
|
|
|
long toh,
|
|
|
|
|
|
long dr_time,
|
|
|
|
|
|
float laserfre,
|
|
|
|
|
|
float laserpower,
|
|
|
|
|
|
float maxlaserpower)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_su = su;//<2F><EFBFBD><F1BEB5B2><EFBFBD>um
|
|
|
|
|
|
m_ms = ms;//<2F><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>mm/s
|
|
|
|
|
|
m_mms = mms;//<2F><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>mm/s
|
|
|
|
|
|
m_tcf = tcf;//<2F>ؼ<EFBFBD><D8BC><EFBFBD>ǰ<EFBFBD><C7B0>ʱus
|
|
|
|
|
|
m_tch = tch;//<2F>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱus
|
|
|
|
|
|
m_tof = tof;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>ʱus
|
|
|
|
|
|
m_toh = toh;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱus
|
|
|
|
|
|
m_dr_time = dr_time;//<2F>յ<EFBFBD><D5B5><EFBFBD>ʱ us
|
|
|
|
|
|
m_laserfre = laserfre;//<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>khz
|
|
|
|
|
|
m_laserpower = laserpower;//<2F><><EFBFBD><EFBFBD><E2B9A6>
|
|
|
|
|
|
m_maxlaserpower = maxlaserpower;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CMarkCtrl::OpenLaser(bool isOpen)
|
|
|
|
|
|
{
|
|
|
|
|
|
Pci365CardMgr::GetInstance()->InitPci365Card();
|
|
|
|
|
|
Pci365CardMgr::GetInstance()->CtrlLaserGate(isOpen);
|
|
|
|
|
|
}
|
|
|
|
|
|
|