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++
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
|