IDPMSManager.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. /**************************************************************************************************
  2. 版本所有(C), 2020-2022, 北京普达迪泰
  3. ***************************************************************************************************
  4. 文 件 名: IDPMSManager.h
  5. 功能描述: IDPMS管理员,采用单例模式
  6. 版 本 号: 1.00初版
  7. 作 者: HYF
  8. 生成日期; 2021-12-20
  9. 最近修改:
  10. 函数列表:
  11. 修改历史:
  12. 1.日 期 :2021-12-20
  13. 作 者 : HYF
  14. 修改内容 : 创建文件
  15. **************************************************************************************************/
  16. #pragma once
  17. #include <afx.h>
  18. class IDPMSComm;
  19. class StaticTaskThread;
  20. class StaticData;
  21. class DynamicTaskThread;
  22. class DynamicData;
  23. class CameraTaskThread;
  24. class IDPMSDeamon;
  25. class IDPMSManager : public CObject
  26. {
  27. public:
  28. IDPMSManager();
  29. virtual ~IDPMSManager();
  30. public:
  31. // IDPMS进程运行状态
  32. BOOL m_bIDPMSRunning;
  33. // 零位测量交互数据
  34. StaticData *m_pStaticData;
  35. // 位姿动态测量数据
  36. DynamicData *m_pDynamicData;
  37. // 动态测量时间间隔
  38. int m_iDynamicSpan;
  39. // 设置窗口为外层窗口
  40. BOOL SetTopWindow(HWND hWnd);
  41. public:
  42. // 动态任务处理线程
  43. DynamicTaskThread *m_pDynamicTask;
  44. public:
  45. // 启动IDPMS
  46. BOOL StartIDPMS1();
  47. BOOL StartIDPMS2();
  48. BOOL StartIDPMS21();
  49. BOOL StartIDPMS3();
  50. // 判断IDPMS是否已经启动
  51. BOOL FindIDPMS();
  52. // 附加IDPMS到窗口中
  53. BOOL AttachIDPMS(CWnd *pWnd);
  54. // 分离IDPMS
  55. BOOL DetachIDPMS(CWnd *pWnd);
  56. // CloseIDPMS();
  57. void CloseIDPMS();
  58. // 设置动态测量间隔时间
  59. void SetDynamicTaskTimeSpan(int iSpan);
  60. // 强制中止动态测量线程
  61. void PauseDynamicTask();
  62. // 强制中止动态测量线程
  63. void ResumeDynamicTask();
  64. // 强制中止动态测量线程
  65. void StopDynamicTask();
  66. // 强制中止动态测量线程
  67. void TerminateDynamicTask();
  68. // 同步 :单相机标定处理:
  69. BOOL SingleCameraConfigProc(int iCam, DMSResponse *&pRes);
  70. // 同步 :双相机标定处理: 同步建立工程
  71. BOOL DoubleCameraConfig1Proc(LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode, DMSResponse *&pMSG);
  72. // 同步 :双相机标定处理: 外参标定
  73. BOOL DoubleCameraConfig2Proc(LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode, DMSResponse *&pMSG);
  74. // 同步 :静态任务处理
  75. BOOL StaticTaskProc(DWORD taskId, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode, DMSResponse *&pMSG);
  76. // 同步 :动态任务处理
  77. BOOL DynamicTaskProc(DWORD taskId, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode, LPCTSTR szEquipPlace, DMSResponse *&pMSG);
  78. // 异步:单相机标定
  79. BOOL SingleCameraConfigProcThread(CWnd* pOwner, int iCam);
  80. // 异步:双相机标定:建立工程
  81. BOOL DoubleCameraConfigStep1ProcThread(CWnd* pOwner, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode);
  82. // 异步:双相机标定:外参标定
  83. BOOL DoubleCameraConfigStep2ProcThread(CWnd* pOwner, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode);
  84. // 异步:静态任务处理
  85. BOOL StartStaticProcThread(CWnd* pOwner, DWORD taskId, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode);
  86. // 异步:重新获取静态任务数据
  87. BOOL StartStaticDataProcThread(CWnd* pOwner, DWORD taskId, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode);
  88. // 异步:动态任务处理
  89. BOOL StartDynamicProcThread(CWnd* pOwner, DWORD taskId, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode, LPCTSTR szEquipPlace);
  90. // Close IDPMS Project
  91. BOOL CloseIDPMSProject();
  92. public:
  93. // 通过内部类的对象生命周期管理数据库静态对象,如果取掉,会造成内存泄露
  94. class CGarbo
  95. {
  96. public:
  97. CGarbo()
  98. {
  99. }
  100. ~CGarbo()
  101. {
  102. if (IDPMSManager::m_pManager)
  103. {
  104. delete IDPMSManager::m_pManager;
  105. IDPMSManager::m_pManager = NULL;
  106. }
  107. }
  108. };
  109. public:
  110. // 获取数据库连接
  111. static IDPMSManager* GetManager();
  112. public:
  113. static IDPMSManager *m_pManager;
  114. };