#pragma once #include "GlobalDefine.h" #include "module.h" class CCamera:public CModule { public: CCamera(void); virtual ~CCamera(void); virtual CMFCPropertyGridProperty *CreatGridProperty(); virtual void ExportPar(ofstream *pFile); virtual void Draw(CDC* pDC); virtual bool CatchPoint(Dbxy &pt){return false;}; virtual Dbxy GetCoord(){return m_Coord;}; virtual Dbxy CCDpt2Platcoord(Dbxy CCDpt); virtual Dbxy GetCenterPt(); void SetCoord(Dbxy pt); Dbxy CCDcoord2Platformcoord(Dbxy CCDpt); bool CatchPtToPlatformcoord(Dbxy &pt); double GetOnePixDis(){return m_OnePixDis;}; double GetAngle(){return m_Angle;}; int GetCatchFrontDelay(){return m_CatchFrontDelay;}; protected: bool m_bUse;//是否使用 bool m_bIni;//是否初始化成功 double m_OnePixDis;//一个像素对应的实际尺寸(mm/pix) ,通常需要定标得到这个值,不是所有的CCD 都会使用这个值,像基恩士的就是在其内部处理的 bool m_bLeftTop;//基准点是否为左上角(false 为左下角) bool m_bPixCoord;//相机抓取的是否为像素坐标(基恩士返回的是mm 单位的值) Dbxy m_Coord;//CCD 视场基准点相对于平台原点的坐标值(一般是左上角,或者左下角) DbSize m_Size;//CCD 视场范围的实际尺寸(用来计算抓取定位的坐标值) bool m_bRotatoPtByAngle;//是否根据相机的安装角度修正抓取结果 double m_Angle;//安装角度,相对于电机的X 轴(360 度角) bool m_bCatch;//实际抓取 int m_CatchFrontDelay;//抓取前延时ms int m_CatchWaitDelay;//抓取等待延时ms };