CHeadTableMatrix.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #pragma once
  2. #include "dt.h"
  3. #include <map>
  4. #include "CMatrixCommon.h"
  5. #include "CManageDB.h"
  6. #ifdef HEAD_TABLE_MATRIX_EXPORTS
  7. #define HEAD_TABLE_CMATRIX_DLL_API __declspec(dllexport)
  8. #else
  9. #define HEAD_TABLE_CMATRIX_DLL_API //__declspec(dllimport)
  10. #endif
  11. using namespace ns_db;
  12. namespace ns_mat
  13. {
  14. typedef struct
  15. {
  16. UINT iHeadIndex; //所在点ID
  17. bool bDisable; //不可用点
  18. XY_DOUBLE_STRUCT stPosition; //程序设置的位置
  19. } HEAD_TABLE_MATRIX_POINT_INFO_STRUCT;
  20. class HEAD_TABLE_CMATRIX_DLL_API CHeadTableMatrix
  21. {
  22. public:
  23. CHeadTableMatrix(INT iModuleType, string strModuleName);
  24. LONG LoadMatrix(); //计算位置和index
  25. UINT GetCurrentIndex(); //获取当前index
  26. LONG SetCurrentIndex(UINT nIndex); //设置当前index
  27. UINT GetIndexPosition(UINT nIndex, XY_DOUBLE_STRUCT& stPos); //获取Index点对应位置
  28. UINT GetAmount(); //获取总数
  29. //获取指定晶圆的位置信息
  30. LONG GetPintInfoByIndex(UINT nPtIndex, HEAD_TABLE_MATRIX_POINT_INFO_STRUCT& stPointInfo);
  31. private:
  32. static std::mutex m_MatrixMutex;
  33. bool bIsInitSuccess;
  34. int m_nModuleType;
  35. string m_strModuleName;
  36. //当前点
  37. UINT m_iCurrentHeadIndex;
  38. //矩阵总数
  39. UINT m_iHeadAmount;
  40. CProduct* m_pCProduct = nullptr;
  41. //vector<PROGRAM_DIE_MATRIX_STRUCT> m_vetDieMatrix;
  42. PROGRAM_HEAD_TABLE_MATRIX_STRUCT m_vetHeadTableMatrix;
  43. map<int, HEAD_TABLE_MATRIX_POINT_INFO_STRUCT> m_mapHeadTableMatrixInfo;
  44. private:
  45. void SortDir_Z();
  46. };
  47. }