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.
83 lines
3.2 KiB
C++
83 lines
3.2 KiB
C++
#pragma once
|
|
#include "module.h"
|
|
|
|
//特殊位置
|
|
enum ESpecialPosType
|
|
{
|
|
_ESpecialPosType_WaferCenter = 0, //晶圆中心点
|
|
_ESpecialPosType_LaserCenter, //激光中心点
|
|
_ESpecialPosType_UnloadPt,//取料点
|
|
_ESpecialPosType_Distance_Meter,//激光测距仪
|
|
_ESpecialPosType_LaserSpotAnalysisMeter,//光束分析仪
|
|
_ESpecialPosType_SufacePower,//功率计
|
|
_ESpecialPosType_Customer,//用户自定义位置(用来测功率等)
|
|
};
|
|
|
|
|
|
//当前平台的位置类型
|
|
enum ECurPlatXyPos
|
|
{
|
|
_PlatXyPos_NULL = 0,
|
|
_PlatXyPos_WaferCenter,//晶圆中心
|
|
_PlatXyPos_DisMeter,//激光测距仪
|
|
_PlatXyPos_SpotAnalys,//光束分析仪
|
|
_PlatXyPos_ProductSurfacePow,//产品面激光功率计
|
|
_PlatXyPos_ProductUnload,//取料位置
|
|
_PlatXyPos_WaferPlate,//晶圆载盘范围
|
|
_PlatXyPos_Customer,//用户自定义位置(用来测功率等)
|
|
};
|
|
|
|
class CSpecialPos
|
|
{
|
|
public:
|
|
CSpecialPos(void)
|
|
{
|
|
m_PosZ = 0;//位置的Z 坐标
|
|
};
|
|
public:
|
|
ESpecialPosType m_PosType;//位置的类型
|
|
CString m_PosName;//位置的名称
|
|
Dbxy m_PosXY;//位置的XY 坐标
|
|
Dbxy m_FeedbackXY;//光栅反馈值(用于光栅补偿)
|
|
double m_PosZ;//位置的Z 坐标
|
|
};
|
|
|
|
|
|
class CPlatSpecialPosMgr :public CModule
|
|
{
|
|
friend class CSemiSecsCommMgr;
|
|
public:
|
|
CPlatSpecialPosMgr(void);
|
|
~CPlatSpecialPosMgr(void);
|
|
virtual CMFCPropertyGridProperty *CreatGridProperty();
|
|
virtual MODULE GetModuleType(){return _SPECIAL_POS_PORP;};
|
|
virtual CString GetParDirName(){return "PlatSpecialPosMgr";};
|
|
virtual void OnAppInitialize();//软件打开时
|
|
|
|
Dbxy GetSpecialPosXY(ESpecialPosType PosType);
|
|
double GetSpecialPosZ(ESpecialPosType PosType);
|
|
Dbxy GetSpecialPosFeedBackXYExt(ESpecialPosType PosType);
|
|
Dbxy GetSpecialPosXYExt(ESpecialPosType PosType);
|
|
ECurPlatXyPos GetCurPlatXyPos(Dbxy PlatformCoord);
|
|
bool IsbUseSafeCoordZ(){return m_bUseSafeCoordZ;};
|
|
double GetMotorZSafeCoord(){return m_MotorZSafeCoord;};
|
|
private:
|
|
void InitSpecialPosVec();
|
|
CSpecialPos *GetSpecialPos(ESpecialPosType PosType);
|
|
CMFCPropertyGridProperty* CreatPosGridProperty(CSpecialPos &SpecialPos,CString ParName,CString ValName);
|
|
private:
|
|
CSpecialPos m_SpecialPosWaferCenter;//晶圆中心点
|
|
CSpecialPos m_SpecialPosLaserCenter;//激光中心点
|
|
CSpecialPos m_SpecialPosTypeUnloadPt;//取料点
|
|
CSpecialPos m_SpecialPosTypeDistance_Meter;//激光测距仪
|
|
CSpecialPos m_SpecialPosTypeLaserSpotAnalysisMeter;//光束分析仪
|
|
CSpecialPos m_SpecialPosTypeSufacePower;//功率计
|
|
CSpecialPos m_SpecialPosTypeCustomer;//用户自定义位置(用来测功率等)
|
|
|
|
|
|
bool m_bUseSafeCoordZ;//是否使用Z 轴安全坐标
|
|
double m_MotorZSafeCoord;//电机Z 的安全坐标(用来避免测距仪撞到挡光环)(这个值要小于Z 焦距,否则会有问题)
|
|
};
|
|
|
|
extern CPlatSpecialPosMgr *gPlatSpecialPosMgr;
|