1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #pragma once
- #include "dt.h"
- #include <map>
- #include "CMatrixCommon.h"
- #include "CManageDB.h"
- #ifdef WAFER_MATRIX_EXPORTS
- #define WAFER_CMATRIX_DLL_API __declspec(dllexport)
- #else
- #define WAFER_CMATRIX_DLL_API
- #endif
- using namespace ns_db;
- namespace ns_mat
- {
- typedef struct
- {
- UINT nDieMatrixId;
- UINT nDieRow;
- UINT nDieCol;
- UINT iDieIndex;
- bool bDisable;
- PICK_DIE_STATUS eStatus;
- XY_DOUBLE_STRUCT stPosition;
- } WAFER_MATRIX_POINT_INFO_STRUCT;
- class WAFER_CMATRIX_DLL_API CWaferMatrix
- {
- public:
- CWaferMatrix(INT iModuleType, string strModuleName);
- LONG LoadMatrix(MATRIX_SEARCH_DIR dir);
- UINT GetCurrentIndex();
- LONG SetCurrentIndex(UINT nIndex);
- UINT GetNextIndex();
- UINT GetPrevIndex();
- UINT GetAmount();
- LONG SetPintInfoStatus(UINT nPtIndex, PICK_DIE_STATUS eStatus);
-
- LONG GetPintInfoByIndex(UINT nPtIndex, WAFER_MATRIX_POINT_INFO_STRUCT& stPointInfo);
- LONG GetAllPintInfo(vector<WAFER_MATRIX_POINT_INFO_STRUCT>& stPointInfo);
- private:
- static std::mutex m_MatrixMutex;
- bool bIsInitSuccess;
- int m_nModuleType;
- string m_strModuleName;
-
- UINT m_iCurrentBondIndex;
-
- UINT m_iBondAmount;
- CProduct* m_pCProduct = nullptr;
-
- vector<PROGRAM_WAFER_MATRIX_STRUCT> m_vetWaferMatrix;
- map<int, WAFER_MATRIX_POINT_INFO_STRUCT> m_mapWaferMatrixInfo;
- private:
- void SortDir_Z();
- void SortDir_S();
- };
- }
|