#pragma once #include "CModule.h" #include "CForceControl.h" #include "CLookUpCalib.h" #include "CRCalib.h" #include "CXYCalib.h" #include "CNozzleTable.h" #include "CTemperature.h" #include "CBondHead.h" /* 超声头:和固晶头相比,固晶时,需加热,控制超声IO */ class __declspec(dllexport) CUltraHead : public CBondHead { public: CUltraHead(MODULE_LIST eModuleType); ~CUltraHead(); void SetUltraDo(CIO* output) { m_pUltraIO = output; } LONG AllocateIo(vector vecIo); 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); virtual void SetBondHTestIndex(int index); virtual LONG PickHighTest();//调用之前先SetIndex virtual LONG AllBondHighTest(); virtual LONG BongHighTest(); //virtual LONG VacuumOn(); //真空开 //virtual LONG VacuumOff(); //真空关 //virtual LONG StrongOn(); //强吹开 //virtual LONG StrongOff(); //强吹关 virtual LONG UltraOn(int iUltraValue); //超声开 virtual LONG UltraOff(); //超声关 //上视拍照 LONG XYZToLookUpGrabPos(); LONG LookUpGrab(int index,X_Y_ANGLE_STRUCT& result);//移动到上视拍照位,拍照结果放到结构体中 //吸嘴固晶 LONG PlaceDie(int index, X_Y_ANGLE_STRUCT lookUpOffsetPixel); LONG MoveToBondPos(int index); LONG BondGrab(int index, X_Y_ANGLE_STRUCT& result); //返回的拍照结果为物理单位 LONG ToBondPos_AddOffset(int index, X_Y_ANGLE_STRUCT bondOffset, X_Y_ANGLE_STRUCT lookUpOffset, bool waitDone = true);//传入物理位置 LONG BondDieDown(int index);//传入物理位置 LONG BondDieUp(bool waitDone = true); LONG CreateTemplate_LowCamera(SEARCH_OUT eResultSelect, UINT& iTemplateId); LONG SearchTemplate(UINT iTemplateId, X_Y_ANGLE_STRUCT& stOffset); //LONG MoveTo(double x,double y, double z); private: CIO* m_pUltraIO = nullptr; //超声值 int m_nUltraValue = 0x0; //超声值 long m_lUltraDelay = 1000; //超声延时 ms //温控器 LONG WaitTemprature(double dMinTempelature, double dMaxTempelature, long lTimeOut); bool m_BnormallyOpen = false; //是否常开 double m_nBondTempelature = 0; //固晶温度 double m_nPreTempelature = 0; //预备温度 std::string m_sTemperatureCtrlPort = "192.168.1.10"; int m_nAddress = 0x5; Temperature_Ctltype m_nTemCtrlType = GLTC; CTemperature* m_pTempCtrl = nullptr; };