| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- /**************************************************************************************************
- 版本所有(C), 2020-2022, 北京普达迪泰
- ***************************************************************************************************
- 文 件 名: IDPMSManager.h
- 功能描述: IDPMS管理员,采用单例模式
- 版 本 号: 1.00初版
- 作 者: HYF
- 生成日期; 2021-12-20
- 最近修改:
- 函数列表:
- 修改历史:
- 1.日 期 :2021-12-20
- 作 者 : HYF
- 修改内容 : 创建文件
- **************************************************************************************************/
- #pragma once
- #include <afx.h>
- class IDPMSComm;
- class StaticTaskThread;
- class StaticData;
- class DynamicTaskThread;
- class DynamicData;
- class CameraTaskThread;
- class IDPMSDeamon;
- class IDPMSManager : public CObject
- {
- public:
- IDPMSManager();
- virtual ~IDPMSManager();
- public:
-
- // IDPMS进程运行状态
- BOOL m_bIDPMSRunning;
- // 零位测量交互数据
- StaticData *m_pStaticData;
- // 位姿动态测量数据
- DynamicData *m_pDynamicData;
- // 动态测量时间间隔
- int m_iDynamicSpan;
- // 设置窗口为外层窗口
- BOOL SetTopWindow(HWND hWnd);
- public:
- // 动态任务处理线程
- DynamicTaskThread *m_pDynamicTask;
- public:
- // 启动IDPMS
- BOOL StartIDPMS1();
- BOOL StartIDPMS2();
- BOOL StartIDPMS21();
- BOOL StartIDPMS3();
- // 判断IDPMS是否已经启动
- BOOL FindIDPMS();
- // 附加IDPMS到窗口中
- BOOL AttachIDPMS(CWnd *pWnd);
- // 分离IDPMS
- BOOL DetachIDPMS(CWnd *pWnd);
- // CloseIDPMS();
- void CloseIDPMS();
- // 设置动态测量间隔时间
- void SetDynamicTaskTimeSpan(int iSpan);
- // 强制中止动态测量线程
- void PauseDynamicTask();
- // 强制中止动态测量线程
- void ResumeDynamicTask();
- // 强制中止动态测量线程
- void StopDynamicTask();
- // 强制中止动态测量线程
- void TerminateDynamicTask();
-
- // 同步 :单相机标定处理:
- BOOL SingleCameraConfigProc(int iCam, DMSResponse *&pRes);
- // 同步 :双相机标定处理: 同步建立工程
- BOOL DoubleCameraConfig1Proc(LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode, DMSResponse *&pMSG);
- // 同步 :双相机标定处理: 外参标定
- BOOL DoubleCameraConfig2Proc(LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode, DMSResponse *&pMSG);
- // 同步 :静态任务处理
- BOOL StaticTaskProc(DWORD taskId, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode, DMSResponse *&pMSG);
- // 同步 :动态任务处理
- BOOL DynamicTaskProc(DWORD taskId, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode, LPCTSTR szEquipPlace, DMSResponse *&pMSG);
- // 异步:单相机标定
- BOOL SingleCameraConfigProcThread(CWnd* pOwner, int iCam);
- // 异步:双相机标定:建立工程
- BOOL DoubleCameraConfigStep1ProcThread(CWnd* pOwner, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode);
- // 异步:双相机标定:外参标定
- BOOL DoubleCameraConfigStep2ProcThread(CWnd* pOwner, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode);
- // 异步:静态任务处理
- BOOL StartStaticProcThread(CWnd* pOwner, DWORD taskId, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode);
- // 异步:重新获取静态任务数据
- BOOL StartStaticDataProcThread(CWnd* pOwner, DWORD taskId, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode);
- // 异步:动态任务处理
- BOOL StartDynamicProcThread(CWnd* pOwner, DWORD taskId, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode, LPCTSTR szEquipPlace);
- // Close IDPMS Project
- BOOL CloseIDPMSProject();
- public:
- // 通过内部类的对象生命周期管理数据库静态对象,如果取掉,会造成内存泄露
- class CGarbo
- {
- public:
- CGarbo()
- {
- }
- ~CGarbo()
- {
- if (IDPMSManager::m_pManager)
- {
- delete IDPMSManager::m_pManager;
- IDPMSManager::m_pManager = NULL;
- }
- }
- };
- public:
- // 获取数据库连接
- static IDPMSManager* GetManager();
- public:
- static IDPMSManager *m_pManager;
- };
|