123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- #pragma once
- #define C_MACHINE_EXPORTS
- #include "Machine.h"
- #include "CDieBondFsm.h"
- #include "CMessageBox.h"
- #include "dt.h"
- namespace ns_module
- {
- typedef MATERIAL_BOX_VIEW_STRUCT MATERIAL_BOX_STRUCT;
- enum NOZZLE_STATUS {
- NOZZLE_EXIST,/*存在*/
- NOZZLE_NO_EXIST,/*不存在*/
- NOZZLE_DISABLE,/*不可用*/
- };
- typedef struct
- {
- int nRow; //矩阵中所在行
- int nCol; //矩阵中所在列
- int iIndex; //所在点ID
- NOZZLE_STATUS eStatus; //状态
- XY_DOUBLE_STRUCT stPosition; //程序设置的位置
- } NOZZLE_TABLE_MATRIX_INFO_STRUCT;
- class __declspec(dllexport) CViewMatrix
- {
- private:
- static CViewMatrix* m_instance;
- CManageDB* m_pCManageDB = nullptr;
- Machine* m_pMachine = nullptr;
- CCameraManage* m_pCameraManage = nullptr;
- CBondHead* m_pBondHead = nullptr;
- CWaferTable* m_pWaferTable = nullptr;
- CWaferHead* m_pWaferHead = nullptr;
- CTransferTable* m_pWaferTransferTable = nullptr;
- CTransferTable* m_pWaffleTransferTable = nullptr;
- CResources* m_pResource = nullptr;
- CDieBondFsm* m_pDieBondFsm = nullptr;
- public:
- static CViewMatrix* GetInstance();
- CViewMatrix();
- #pragma region 晶圆接口
- /// <summary>
- /// 获取所有晶圆信息
- /// </summary>
- /// <param name="stPointInfo">晶圆信息</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long GetWaferAllPointInfo(vector<WAFER_MATRIX_POINT_INFO_STRUCT>& stPointInfo);
- /// <summary>
- /// 获取晶环尺寸
- /// </summary>
- /// <param name="dCenterX">晶环圆心坐标</param>
- /// <param name="dCenterY">晶环圆心坐标</param>
- /// <param name="iRadius">获取到的晶圆半径</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long GetWaferSize(double& dCenterX, double& dCenterY, double& iRadius);
- /// <summary>
- /// 获取晶圆尺寸
- /// </summary>
- /// <param name="iLong">长</param>
- /// <param name="iWide">宽</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long GetDieSize(int& iLong, int& iWide);
- /// <summary>
- /// 移动到指定的点
- /// </summary>
- /// <param name="iDieIndex"></param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long MoveWaferToPoint(int iDieIndex);
- /// <summary>
- /// 从底层获取模板图片
- /// </summary>
- /// <param name="image">获取到的图片</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long GetWaferRefImage(ImageInfo& image);
- /// <summary>
- /// 获取晶圆台角度
- /// </summary>
- /// <param name="angle">获取到的角度</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long GetWaferTableAngle(double& angle);
- /// <summary>
- /// 设置矩形边界
- /// </summary>
- /// <param name="nDieMatrixId">矩阵Id</param>
- /// <param name="row1">左上角行号</param>
- /// <param name="col1">左上角列号</param>
- /// <param name="row2">右下角行号</param>
- /// <param name="col2">右下触目列号</param>
- /// <returns></returns>
- long SetWaferRectBorder(int nDieMatrixId, int row1, int col1, int row2, int col2);
- #pragma endregion
- #pragma region 载具物料接口
- /// <summary>
- /// 获取所有晶圆信息
- /// </summary>
- /// <param name="stPointInfo">晶圆信息</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long GetBondAllPointInfo(vector<POINT_INFO_STRUCT>& stPointInfo);
- /// <summary>
- /// 移动到指定的点
- /// </summary>
- /// <param name="iDieIndex"></param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long MoveBondToPoint(int iDieIndex);
- /// <summary>
- /// 从底层获取模板图片
- /// </summary>
- /// <param name="iDieIndex"></param>
- /// <param name="image">获取到的图片</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long GetBondRefImage(int iDieIndex,ImageInfo& image);
- /// <summary>
- /// 设置矩形边界
- /// </summary>
- /// <param name="nPackMatrixId">华夫盒矩阵 Id</param>
- /// <param name="nDieMatrixId">矩阵Id</param>
- /// <param name="row1">左上角行号</param>
- /// <param name="col1">左上角列号</param>
- /// <param name="row2">右下角行号</param>
- /// <param name="col2">右下触目列号</param>
- /// <returns></returns>
- long SetBondRectBorder(int nPackMatrixId, int nDieMatrixId, int row1, int col1, int row2, int col2);
- /**设置当前所有圆晶信息,菜单选中拖拽
- * 这里分2种情况
- * 1.点击一个发送当前选中的贴片信息(鼠标左键点击)
- * 2.2个点确定一个矩形(可以选中多个贴片)(右键菜单选择)
- * 3.鼠标左键按住不松开拖拽多个贴片(例:界面显示三个组合,三个组合都可以选中,(1,2都是一样))(拖拽)
- */
- long SetBondAllSelectPointInfo(std::vector<POINT_INFO_STRUCT>& stPointInfo);
- #pragma endregion
- #pragma region 料盒类
- /// <summary>
- /// 获取所有料盒信息
- /// </summary>
- /// <param name="stPointInfo">晶圆信息</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long GetMaterialBoxAllPointInfo(std::vector <MATERIAL_BOX_STRUCT>& stPointInfo);
- /// <summary>
- /// 移动到指定的层
- /// </summary>
- /// <param name="iLayers"></param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long MoveMaterialBoxToiLayers(int iLayers);
- #pragma endregion
- #pragma region 吸嘴库
- /// <summary>
- /// 获取吸嘴库信息
- /// </summary>
- /// <param name="stPointInfo">晶圆信息</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long GetNozzleTableAllPointInfo(vector<NOZZLE_TABLE_MATRIX_INFO_STRUCT>& stPointInfo);
- /// <summary>
- /// 移动到指定的点
- /// </summary>
- /// <param name="iIndex"></param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long MoveNozzleTableToPoint(int iIndex);
- #pragma endregion
- #pragma region 华夫盒接口
- /// <summary>
- /// 获取所有晶圆信息
- /// </summary>
- /// <param name="stPointInfo">晶圆信息</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long GetWafflePackAllPointInfo(vector<WAFFLE_MATRIX_POINT_STRUCT>& stPointInfo);
- /// <summary>
- /// 移动到指定的点
- /// </summary>
- /// <param name="iDieIndex"></param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long MoveWafflePackToPoint(int iDieIndex);
- /// <summary>
- /// 从底层获取模板图片
- /// </summary>
- /// <param name="image">获取到的图片</param>
- /// <returns>成功返回0,否则返回错误码</returns>
- long GetWafflePackRefImage(ImageInfo& image);
- /// <summary>
- /// 设置矩形边界
- /// </summary>
- /// <param name="nPackMatrixId">华夫盒矩阵 Id</param>
- /// <param name="nDieMatrixId">矩阵Id</param>
- /// <param name="row1">左上角行号</param>
- /// <param name="col1">左上角列号</param>
- /// <param name="row2">右下角行号</param>
- /// <param name="col2">右下触目列号</param>
- /// <returns></returns>
- long SetWafflePackRectBorder(int nPackMatrixId, int nDieMatrixId, int row1, int col1, int row2, int col2);
- #pragma endregion
- };
- }
|