CEutecticHead.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #pragma once
  2. #define C_PR_STRATEGY_EXPORTS
  3. #include "CPrStrategy.h"
  4. #include "CModule.h"
  5. #include "CCameraBase.h"
  6. #include "CXYCalib.h"
  7. #include "CRCalib.h"
  8. #include "CLookUpCalib.h"
  9. #include "CNozzleTable.h"
  10. #include "CBondMatrix.h"
  11. #include "CForceControl.h"
  12. #include "CBondHead.h"
  13. using namespace ns_db;
  14. /*
  15. 1、固晶头:有高倍相机、低倍相机、上视相机
  16. 2、包括固晶、点胶、超声
  17. 3、注意所有位置为相机位置,需转换为绑头位置
  18. 4、执行动作函数,外面调用判断返回值是"停止",要自行调用回初始位
  19. */
  20. class __declspec(dllexport) CEutecticHead :
  21. public CBondHead
  22. {
  23. public:
  24. CEutecticHead(MODULE_LIST eModuleType);
  25. ~CEutecticHead();
  26. virtual void SetHighCamera(CCameraBase* camera)override { m_pHighCamera = camera; }
  27. CXYCalib* GetHighCameraCalib() { return m_pHighXYCalib; }
  28. CCTDCalib* GetHighCTDCalib() { return m_pHighCTDCalib; }
  29. LONG CreateTemplate_HighCamera(SEARCH_OUT eResultSelect, UINT & iTemplateId);
  30. LONG CreateTemplate_LowCamera(SEARCH_OUT eResultSelect, UINT& iTemplateId);
  31. virtual void SetDataChangFunction() override;
  32. virtual LONG SetParam() override;
  33. virtual LONG GetParam() override;
  34. virtual LONG ToHome() override;
  35. virtual LONG ToSafePosition() override;
  36. virtual LONG InitResource() override;
  37. virtual void DataChangNotice(string strDbName, string strTableName) override;
  38. virtual void SetPickHTestIndex(int index) override;
  39. virtual void SetBondHTestIndex(int index) override;
  40. virtual LONG PickHighTest() override;//调用之前先SetIndex
  41. virtual LONG AllBondHighTest() override;
  42. virtual LONG BongHighTest() override;
  43. virtual LONG VacuumOn(long lDelay) override; //真空开
  44. virtual LONG VacuumOff(long lDelay) override; //真空关,吹汽延时,ms
  45. virtual LONG StrongOn() override; //强吹开
  46. virtual LONG StrongOff() override; //强吹关
  47. //更换吸嘴
  48. //virtual LONG ChangeNozzle(int nozzleIndex)override;
  49. //virtual LONG UnLoadNozzle()override;
  50. //virtual LONG LoadNozzle(int nozzleIndex)override;
  51. //virtual LONG CheckDieExistStatus(bool& bExist)override;
  52. LONG CameraCTDCalib(int calibID);
  53. //吸嘴取晶,若返回值错误,需要自行调用回安全位置
  54. virtual LONG MoveToGrabPos(bool waitDone = true)override;
  55. //拍照,取晶,并上行到上视拍照位,主要用于自动流程
  56. virtual LONG PickDie(int index)override;
  57. //移动到拾取位,未拍照
  58. //virtual LONG MoveToPickPos()override;
  59. //中转台拍照,返回拍照结果,拍照结果仅用于拾取偏移,不存储
  60. virtual LONG PickGrab(int index, X_Y_ANGLE_STRUCT& result)override;
  61. //得到拍照结果后补偿,将数据进行转换
  62. virtual LONG PickDieDown(int index, X_Y_ANGLE_STRUCT result)override;
  63. virtual LONG PickUpToGrabPos()override;
  64. virtual LONG PickDieUp(bool waitDone = true)override;//上行到安全位置
  65. //上视拍照
  66. virtual LONG XYZToLookUpGrabPos()override;
  67. //移动到上视拍照位,拍照结果放到结构体中
  68. virtual LONG LookUpGrab(int index,X_Y_ANGLE_STRUCT& result)override;
  69. //吸嘴固晶
  70. virtual LONG PlaceDie(int index, X_Y_ANGLE_STRUCT lookUpOffsetPixel)override;
  71. virtual LONG MoveToBondPos(int index)override;//修改为BondGrabPos
  72. //返回的拍照结果为物理单位
  73. virtual LONG BondGrab(int index, X_Y_ANGLE_STRUCT& result)override;
  74. virtual LONG ToBondPos_AddOffset(int index, X_Y_ANGLE_STRUCT bondOffset, X_Y_ANGLE_STRUCT lookUpOffset,
  75. bool waitDone = true)override;//传入物理位置
  76. virtual LONG BondDieDown(int index)override;//传入物理位置
  77. virtual LONG BondDieUp(bool waitDone = true)override;
  78. // virtual LONG FindForce(double endPos)override; //用于自动流程
  79. // virtual LONG UpdateForce(double dForce)override; //切换力的大小
  80. //标定
  81. virtual LONG HighCameraCTDCalib() override;
  82. private:
  83. CCameraBase* m_pHighCamera = nullptr;
  84. CXYCalib* m_pHighXYCalib = nullptr;
  85. CCTDCalib* m_pHighCTDCalib = nullptr;
  86. };