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

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