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.

766 lines
28 KiB
C++

#include "StdAfx.h"
#include "CommonFlowMgr.h"
#include "MsgBox.h"
#include "WorkCmdInvoker.h"
#include "Propertie.h"
#include "PropertieMgr.h"
#include "AuthorityMgr.h"
#include "LogMgr.h"
#include "CStringFuc.h"
#include "Laser.h"
#include "MarkAreaMgr.h"
#include "ObjComponentMgr.h"
#include "MeasureMgr.h"
#include "ExceptionMsg.h"
#include "FileMgr.h"
#include "DrawSimpleShape.h"
#include "LaiPuLaserView.h"
#include "Layer.h"
#include "ObjContainer.h"
#include "WorkRecord.h"
#include "EncryptionMgr.h"
#include "WorkFileMgr.h"
#include "ProgramLaserTuiHuo.h"
#include "ProgressMgr.h"
#include "WorkCmdTimingProgress.h"
#include "TimingProgressMgr.h"
#include "WaferRecipeDataMgr.h"
#include "CommomText.h"
#include "RecipeMgr.h"
#include "WaferRecipeDataMgr.h"
#include "LaserPowCheckMgr.h"
#include "WorkAreaMgr.h"
#include "ModuleDeviceMgr.h"
#include "CriticalSection.h"
UINT AutomationWorkFlowStartThread(LPVOID pParam)
{
CCommonFlowMgr *p = (CCommonFlowMgr *)pParam;
p->StartAutomationWorkFlow();
return 0;
}
#define MAX_AREA_SIZE 10000 //单个area 的范围最大值
#define NOT_MOVE_Z_COORD 99999
#define ORG_POS_MAX_ADJUST_VAL 10//原点位置单次最大调整量
#define SPOT_METER_LASER_FRE 1000 //测量光斑时的固定激光频率
#define SPOT_METER_LASER_PULSE_DELAY 0 //测量光斑时的固定激光双脉冲延时
CCommonFlowMgr *gCommonFlowMgr = new CCommonFlowMgr;
CCommonFlowMgr::CCommonFlowMgr(void)
{
m_bIniPlatfrom = true;//是否初始化电机平台
m_bIniConfirmMsgBox = true;//是否弹出初始化确认对话框
m_bIniMotorZ = false;//是否初始化电机Z
m_bInitedToProductPt = false;//初始化完成后是否返回上料点
m_bSetLightState = true;//是否设置警示灯状态
m_bConnectObj = true;//是否连接多个obj 数据
m_bNeedInit = false;//是否需要初始化才能进行操作
m_bShowErrMsg = true;//运行时出错后对话框提示
m_bStopWorkMsg = true;//点了停止按钮后是否提示对话框
m_bShowStartMsg = true;//在开始加工时是否对话框提示
m_MotorZSafeCoord = 10;//Z 轴的安全坐标位置
m_DrawLineGapCnt = 1;//每间隔几条线绘制一次
m_OneLineScanSpeed = 150;//单条扫描线的速度
m_TransferTestDelay = 10000;//传片测试延时ms
m_OneLineAnnealTimeAdjsut = 150;//单条线段退火时间的调整量
m_MoveTestDelay = 300;//移动测试延时ms
m_bXyMoveTesting = false;
m_bLaserSpotMarkMode = false;//当前是否为打光斑模式
m_LightAlamTime = 10;//蜂鸣器时间
m_bKeepJobN2Air = false;//在job 运行时一直保持吹气
m_bCtrlN2Air = true;//是否控制氮气开关(调试时可以关闭)
m_bAutomationWorking = false;
m_bStopAutomationWork = false;
}
CCommonFlowMgr::~CCommonFlowMgr(void)
{
}
CString CCommonFlowMgr::GetParDirName()
{
CString DirName = _T("CommonFlowMgr");
return DirName;
}
CMFCPropertyGridProperty * CCommonFlowMgr::CreatGridProperty()
{
CString PropertyName;//属性名称
CString Description;//描述
CString Path = GetParDirName();
CString Name;
CString GroupName;
CString ModuleName;
//-------------------------------------------------------------------------------//
PropertyName = _T("常用流程");
ModuleName = PropertyName;
CMFCPropertyGridProperty* pGroup = new CMFCPropertyGridProperty(PropertyName);
{
{
GroupName = ("共通设定");
CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(GroupName);
if(gAuthorityMgr->CheckAuthority(_Authority_Factory))
{
{
//添加属性变量映射
Name = _T("m_bNeedInit");//变量名字
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_bNeedInit);
pPropertie->SetType(_PROP_TYPE_BOOL);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//读取保存的属性
//添加属性显示
PropertyName = _T("需要初始化");
Description = _T("是否需要初始化才能进行操作");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
pPropertie->SetModuleName(ModuleName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_bNeedInit, Description);
pGroup1->AddSubItem(p);
gDevicePropertieMgr.Insert(p, pPropertie);
}
{
//添加属性变量映射
Name = _T("m_DrawLineGapCnt");//变量名字
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_DrawLineGapCnt);
pPropertie->SetType(_PROP_TYPE_INT);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//读取保存的属性
//添加属性显示
PropertyName = _T("绘制间隔");
Description = _T("每间隔几条线绘制一次,避免有些线段没有显示");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_DrawLineGapCnt, Description);
pGroup1->AddSubItem(p);
gDevicePropertieMgr.Insert(p, pPropertie);
}
{
//添加属性变量映射
Name = _T("m_OneLineAnnealTimeAdjsut");//变量名字
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_OneLineAnnealTimeAdjsut);
pPropertie->SetType(_PROP_TYPE_INT);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//读取保存的属性
//添加属性显示
PropertyName = _T("加减速时间");
Description = _T("单条线段退火时间的调整量ms");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_OneLineAnnealTimeAdjsut, Description);
pGroup1->AddSubItem(p);
gDevicePropertieMgr.Insert(p, pPropertie);
}
{
//添加属性变量映射
Name = _T("m_bShowStartMsg");//变量名字
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_bShowStartMsg);
pPropertie->SetType(_PROP_TYPE_BOOL);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//读取保存的属性
//添加属性显示
PropertyName = _T("加工前提示");
Description = _T("在开始加工时是否对话框提示");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_bShowStartMsg, Description);
pGroup1->AddSubItem(p);
gDevicePropertieMgr.Insert(p, pPropertie);
}
{
//添加属性变量映射
Name = _T("m_bShowErrMsg");//变量名字
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_bShowErrMsg);
pPropertie->SetType(_PROP_TYPE_BOOL);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//读取保存的属性
//添加属性显示
PropertyName = _T("运行时错误");
Description = _T("运行过程中发生错误时弹出对话框提示");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_bShowErrMsg, Description);
pGroup1->AddSubItem(p);
gDevicePropertieMgr.Insert(p, pPropertie);
}
{
//添加属性变量映射
Name = _T("m_bStopWorkMsg");//变量名字
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_bStopWorkMsg);
pPropertie->SetType(_PROP_TYPE_BOOL);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//读取保存的属性
//添加属性显示
PropertyName = _T("停止提示");
Description = _T("运行过程中点停止是否弹出对话框提示");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_bStopWorkMsg, Description);
pGroup1->AddSubItem(p);
gDevicePropertieMgr.Insert(p, pPropertie);
}
{
//添加属性变量映射
Name = _T("m_LightAlamTime");//变量名字
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_LightAlamTime);
pPropertie->SetType(_PROP_TYPE_INT);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//读取保存的属性
//添加属性显示
PropertyName = _T("蜂鸣器时间");
Description = _T("蜂鸣器时间");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_LightAlamTime, Description);
pGroup1->AddSubItem(p);
gDevicePropertieMgr.Insert(p, pPropertie);
}
{
//添加属性变量映射
Name = _T("m_MotorZSafeCoord");//变量名字
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_MotorZSafeCoord);
pPropertie->SetType(_PROP_TYPE_DOUBLE);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//读取保存的属性
//添加属性显示
PropertyName = _T("Z轴安全坐标");
Description = _T("Z轴安全坐标(危险)");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_MotorZSafeCoord, Description);
pGroup1->AddSubItem(p);
gDevicePropertieMgr.Insert(p, pPropertie);
}
{
//添加属性变量映射
Name = _T("m_TransferTestDelay");//变量名字
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_TransferTestDelay);
pPropertie->SetType(_PROP_TYPE_INT);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//读取保存的属性
//添加属性显示
PropertyName = _T("传片测试延时");
Description = _T("传片测试每片的延时时间ms");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_TransferTestDelay, Description);
pGroup1->AddSubItem(p1);
gDevicePropertieMgr.Insert(p1, pPropertie);
}
{
//添加属性变量映射
Name = _T("m_MoveTestDelay");//变量名字
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_MoveTestDelay);
pPropertie->SetType(_PROP_TYPE_INT);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//读取保存的属性
//添加属性显示
PropertyName = _T("移动测试延时");
Description = _T("移动测试延时ms");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_MoveTestDelay, Description);
pGroup1->AddSubItem(p1);
gDevicePropertieMgr.Insert(p1, pPropertie);
}
{
//添加属性变量映射
Name = _T("m_bKeepJobN2Air");//变量名字
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_bKeepJobN2Air);
pPropertie->SetType(_PROP_TYPE_BOOL);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//读取保存的属性
//添加属性显示
PropertyName = _T("Job 持续氮气");
Description = _T("在job 运行时一直保持吹氮气");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_bKeepJobN2Air, Description);
pGroup1->AddSubItem(p);
gDevicePropertieMgr.Insert(p, pPropertie);
}
{
//添加属性变量映射
Name = _T("m_bCtrlN2Air");//变量名字
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_bCtrlN2Air);
pPropertie->SetType(_PROP_TYPE_BOOL);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//读取保存的属性
//添加属性显示
PropertyName = _T("氮气控制");
Description = _T("是否控制氮气开关(调试时可以关闭)");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_bCtrlN2Air, Description);
pGroup1->AddSubItem(p);
gDevicePropertieMgr.Insert(p, pPropertie);
}
pGroup->AddSubItem(pGroup1);
}
}
{
GroupName = ("设备初始化");
CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(_T("设备初始化"));
if(gAuthorityMgr->CheckAuthority(_Authority_Factory))
{
{
//添加属性变量映射
Name = _T("m_bIniConfirmMsgBox");//变量名字
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_bIniConfirmMsgBox);
pPropertie->SetType(_PROP_TYPE_BOOL);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//读取保存的属性
//添加属性显示
PropertyName = _T("初始化msgbox");
Description = _T("是否弹出对话框确认");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_bIniConfirmMsgBox, Description);
pGroup1->AddSubItem(p1);
gDevicePropertieMgr.Insert(p1, pPropertie);
}
{
//添加属性变量映射
Name = _T("m_bIniPlatfrom");//变量名字
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_bIniPlatfrom);
pPropertie->SetType(_PROP_TYPE_BOOL);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//读取保存的属性
//添加属性显示
PropertyName = _T("初始化平台");
Description = _T("是否初始化XY 电机平台");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_bIniPlatfrom, Description);
pGroup1->AddSubItem(p1);
gDevicePropertieMgr.Insert(p1, pPropertie);
}
{
//添加属性变量映射
Name = _T("m_bIniMotorZ");//变量名字
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_bIniMotorZ);
pPropertie->SetType(_PROP_TYPE_BOOL);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//读取保存的属性
//添加属性显示
PropertyName = _T("初始化电机Z");
Description = _T("是否初始化电机Z");
pPropertie->SetGroupName(GroupName);
pPropertie->SetShowName(PropertyName);
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_bIniMotorZ, Description);
pGroup1->AddSubItem(p1);
gDevicePropertieMgr.Insert(p1, pPropertie);
}
pGroup->AddSubItem(pGroup1);
}
}
}
return pGroup;
}
void CCommonFlowMgr::OnAppInitialize()
{
}
void CCommonFlowMgr::Draw(CDC* pDC)
{
//绘制光斑mark 点
DrawLaserSpotPt(pDC);
DrawTestLineVec(pDC);
}
void CCommonFlowMgr::DrawTestLineVec(CDC* pDC)
{
int size = m_CTestLineVec.size();
for(int k=0;k<size;k++)
{
CTestLine &TestLine = m_CTestLineVec[k];
if(k==0)
DrawLine(pDC,gDraw->GetCatchNodePen(),TestLine.m_pt1,TestLine.m_pt2);
else
DrawLine(pDC,gDraw->GetScanLine(),TestLine.m_pt1,TestLine.m_pt2);
}
}
//绘制光斑mark 点
void CCommonFlowMgr::DrawLaserSpotPt(CDC* pDC)
{
if(!m_bLaserSpotMarkMode)
return;
int CenterIdx = 0;
int size = m_LaserSpotPtVec.size();
for(int k=0;k<size;k++)
{
CLaserSpotPt SpotPt = m_LaserSpotPtVec[k];
double w = 0.5;
double h = 4;
DbSize Size;
if(gLaser->IsbScanByDirX())
Size = DbSize(w,h);
else
Size = DbSize(h,w);
DbRect rect(SpotPt.m_Coord,DbSize(h,w));
COLORREF color;
if(SpotPt.m_AdjustZVal==0)
{
color = RGB_RED;
CenterIdx = k;
}
else
{
color = RGB_YELLOW;
}
DrawSolidRect(pDC,color,rect);
//把每个点的Z 轴调整量显示出来
CString str;
str.Format(_T("%.2f"),SpotPt.m_AdjustZVal);
if(gLaser->IsbScanByDirX())
{
SpotPt.m_Coord.x -= 0.5;
SpotPt.m_Coord.y += 3;
}
else
{
SpotPt.m_Coord.x += 3;
}
gDraw->DrawTxt(pDC,str,SpotPt.m_Coord);
int Idx = k+1;
if(CenterIdx>0 && color == RGB_YELLOW)
{
//Idx = (size-k)+(k-CenterIdx);
}
str.Format(_T("%d"),Idx);
if(gLaser->IsbScanByDirX())
SpotPt.m_Coord.y -= 6;
else
SpotPt.m_Coord.x -= 6;
gDraw->DrawTxt(pDC,str,SpotPt.m_Coord);
}
}
#if 1
//检查设备初始化状态
bool CCommonFlowMgr::CheckDeviceInitState()
{
return true;
}
//初始化设备(平台,Z 轴)
bool CCommonFlowMgr::InitDeviceFlow(bool bConfirmMsgBox)
{
return true;
}
#endif
#if 1
//开始加工前的统一工作
bool CCommonFlowMgr::CommWorkStart()
{
//恢复扫描线的颜色
gWaferRecipeDataMgr->SetbScanEnd(false);
//检查是否初始化设备
if(!CheckDeviceInitState())
return false;
//加工记录开始
gWorkRecordMgr->StartRecord();
m_pView->RefreshView();
return true;
}
//结束加工后的统一工作
void CCommonFlowMgr::CommWorkEnd()
{
//结束记录
gWorkRecordMgr->EndRecord();
}
#endif
#if 1
//移动到指定的位置(MotorZCoord 是移动后Z 轴坐标)
bool CCommonFlowMgr::MoveToPos(Dbxy MovePt,Dbxy TargetPt,double MotorZCoord)
{
return true;
}
//当前是否在激光安全位置
bool CCommonFlowMgr::AtLaserSafePlace(Dbxy PlatformCoord)
{
return false;
}
#endif
#if 1
//收集多点移动数据(返回退火所需要的时间)
//ABCDEF点参照笔记里面的原理图
int CCommonFlowMgr::CollectMultiMovePoint()
{
return 1;
}
#endif
#if 1
//关闭激光器的流程
void CCommonFlowMgr::CloseLaserLddFlow()
{
}
#endif
#if 1
//手动步进移动平台
void CCommonFlowMgr::ManualMoveAsixXY(double MoveDis,DIRECTION MoveDir)
{
}
//手动移动Z轴
void CCommonFlowMgr::ManualMoveAsixZ(double dis)
{
}
//载盘上手动取放wafer 的流程(顶针/真空/破空)
void CCommonFlowMgr::ManualCtrlPlatWaferFlow(bool bWaferOn)
{
}
#endif
#if 1
//利用测距仪平面度测量流程
void CCommonFlowMgr::PlanenessMeasureFlow()
{
}
//XY 运动测试流程
void CCommonFlowMgr::XyMoveTestFlow()
{
}
//打开运动测试对象
void CCommonFlowMgr::OpenMoveTestObj()
{
}
//记录坐标
void CCommonFlowMgr::XYMoveSaveCoord()
{
}
//打印运动测试结果
void CCommonFlowMgr::CalXYMoveTestResult(int MeasurePtCnt)
{
}
//初始化结果列表
void CCommonFlowMgr::InitMoveRetList(CListCtrl &List)
{
}
//测量结果插入列表
void CCommonFlowMgr::InsertMoveRetList(CListCtrl &List)
{
}
void CCommonFlowMgr::InsertMoveRetListExt(CListCtrl &List,int Line,int Idx,CMovePtData &MovePtData,X_OR_Y Xy)
{
}
#endif
#if 1
//创建点检准备cmd
void CCommonFlowMgr::CreatPowCheckPrepareCmd(CWorkCmdInvoker &WorkCmdInvoker)
{
}
//激光功率点检流程(不操作激光LDD,双绿光的时候只把另外一路设置为0)
bool CCommonFlowMgr::LaserPowCheckFlow()
{
return true;
}
#endif
#if 1
//创建自动校准的指令流程(bToLaserFocus表示完成后是否回到焦距位置)
void CCommonFlowMgr::CreatAutoFindFocusInvokerCmd(CWorkCmdInvoker &WorkCmdInvoker,bool bToLaserFocus)
{
}
//自动查找Z 轴焦点
void CCommonFlowMgr::AutoFindFocusFlow()
{
}
#endif
#if 1//打光斑功能
void CCommonFlowMgr::SetbLaserSpotMarkMode(bool b)
{
}
//创建光斑数据点
void CCommonFlowMgr::CreatLaserSpotMarkPt()
{
}
//检查数据安全性
bool CCommonFlowMgr::CheckLaserSpotData()
{
return true;
}
//打光斑流程
void CCommonFlowMgr::LaserSpotMarkFlow()
{
}
#endif
#if 1
//单条线段扫描test(用来看光斑找焦距)
void CCommonFlowMgr::OneLineLaserTest()
{
}
//扫描单条线段
void CCommonFlowMgr::OneLineLaserTestExt(Dbxy Pt1,Dbxy Pt2)
{
}
#endif
#if 1
//测试用
void CCommonFlowMgr::CollectMultiPointVecToFile()
{
}
#endif
#if 1
//检测光束质量的流程
bool CCommonFlowMgr::CheckLaserBeamFlow()
{
return true;
}
//移动到功率测量位置的流程(只是移动XYZ)
bool CCommonFlowMgr::MoveToPowMeasureFlow()
{
return true;
}
//通过测功率来判断当前功率密度和recipe 是否匹配
//如果打开自动调整的话,只调整Laser1Curr 的电流值
bool CCommonFlowMgr::CheckRecipeEnergyDensityFlow(double Laser1Curr)
{
return true;
}
#endif
#if 1//新的执行流程
//指令简易的流程
bool CCommonFlowMgr::ExcuteSimpleFlowType(eExcuteFlowType FlowType)
{
return true;
}
#endif
#if 1//job 相关流程
void CCommonFlowMgr::JobQueueCtrlFlow()
{
}
//暂停job cmd 流程
void CCommonFlowMgr::PauseJobQueueCtrlFlow()
{
}
//停止job cmd 流程
void CCommonFlowMgr::StopJobQueueCtrlFlow()
{
}
#endif
#if 1
//手动传输Wafer
bool CCommonFlowMgr::ManualTransferWaferFlow()
{
return true;
}
void CCommonFlowMgr::StartAutomationWorkFlowThread()
{
}
//启动自动生产流程
void CCommonFlowMgr::StartAutomationWorkFlow()
{
}
//停止自动生产流程
void CCommonFlowMgr::StopAutomationWorkFlow()
{
}
#endif