#pragma once #define C_PR_STRATEGY_EXPORTS #include "CPrStrategy.h" #include "CModule.h" #include "CCameraBase.h" #include "CXYCalib.h" #include "CRCalib.h" #include "CLookUpCalib.h" #include "CNozzleTable.h" #include "CBondMatrix.h" #include "CForceControl.h" #include "CBondHead.h" using namespace ns_db; /* 1、固晶头:有高倍相机、低倍相机、上视相机 2、包括固晶、点胶、超声 3、注意所有位置为相机位置,需转换为绑头位置 4、执行动作函数,外面调用判断返回值是"停止",要自行调用回初始位 */ class __declspec(dllexport) CEutecticHead : public CBondHead { public: CEutecticHead(MODULE_LIST eModuleType); ~CEutecticHead(); virtual void SetHighCamera(CCameraBase* camera)override { m_pHighCamera = camera; } CXYCalib* GetHighCameraCalib() { return m_pHighXYCalib; } CCTDCalib* GetHighCTDCalib() { return m_pHighCTDCalib; } LONG CreateTemplate_HighCamera(SEARCH_OUT eResultSelect, UINT & iTemplateId); LONG CreateTemplate_LowCamera(SEARCH_OUT eResultSelect, UINT& iTemplateId); virtual void SetDataChangFunction() override; virtual LONG SetParam() override; virtual LONG GetParam() override; virtual LONG ToHome() override; virtual LONG ToSafePosition() override; virtual LONG InitResource() override; virtual void DataChangNotice(string strDbName, string strTableName) override; virtual void SetPickHTestIndex(int index) override; virtual void SetBondHTestIndex(int index) override; virtual LONG PickHighTest() override;//调用之前先SetIndex virtual LONG AllBondHighTest() override; virtual LONG BongHighTest() override; virtual LONG VacuumOn(long lDelay) override; //真空开 virtual LONG VacuumOff(long lDelay) override; //真空关,吹汽延时,ms virtual LONG StrongOn() override; //强吹开 virtual LONG StrongOff() override; //强吹关 //更换吸嘴 //virtual LONG ChangeNozzle(int nozzleIndex)override; //virtual LONG UnLoadNozzle()override; //virtual LONG LoadNozzle(int nozzleIndex)override; //virtual LONG CheckDieExistStatus(bool& bExist)override; LONG CameraCTDCalib(int calibID); //吸嘴取晶,若返回值错误,需要自行调用回安全位置 virtual LONG MoveToGrabPos(bool waitDone = true)override; //拍照,取晶,并上行到上视拍照位,主要用于自动流程 virtual LONG PickDie(int index)override; //移动到拾取位,未拍照 //virtual LONG MoveToPickPos()override; //中转台拍照,返回拍照结果,拍照结果仅用于拾取偏移,不存储 virtual LONG PickGrab(int index, X_Y_ANGLE_STRUCT& result)override; //得到拍照结果后补偿,将数据进行转换 virtual LONG PickDieDown(int index, X_Y_ANGLE_STRUCT result)override; virtual LONG PickUpToGrabPos()override; virtual LONG PickDieUp(bool waitDone = true)override;//上行到安全位置 //上视拍照 virtual LONG XYZToLookUpGrabPos()override; //移动到上视拍照位,拍照结果放到结构体中 virtual LONG LookUpGrab(int index,X_Y_ANGLE_STRUCT& result)override; //吸嘴固晶 virtual LONG PlaceDie(int index, X_Y_ANGLE_STRUCT lookUpOffsetPixel)override; virtual LONG MoveToBondPos(int index)override;//修改为BondGrabPos //返回的拍照结果为物理单位 virtual LONG BondGrab(int index, X_Y_ANGLE_STRUCT& result)override; virtual LONG ToBondPos_AddOffset(int index, X_Y_ANGLE_STRUCT bondOffset, X_Y_ANGLE_STRUCT lookUpOffset, bool waitDone = true)override;//传入物理位置 virtual LONG BondDieDown(int index)override;//传入物理位置 virtual LONG BondDieUp(bool waitDone = true)override; // virtual LONG FindForce(double endPos)override; //用于自动流程 // virtual LONG UpdateForce(double dForce)override; //切换力的大小 //标定 virtual LONG HighCameraCTDCalib() override; private: CCameraBase* m_pHighCamera = nullptr; CXYCalib* m_pHighXYCalib = nullptr; CCTDCalib* m_pHighCTDCalib = nullptr; };