/************************************************************************************************** 版本所有(C), 2020-2022, 北京普达迪泰 *************************************************************************************************** 文 件 名: DynamicData.h 功能描述: Dynamic Task任务数据 版 本 号: 1.00初版 作 者: HYF 生成日期; 2021-12-20 最近修改: 函数列表: 修改历史: 1.日 期 :2021-12-20 作 者 : HYF 修改内容 : 创建文件 **************************************************************************************************/ #pragma once #include #include #include "pch.h" class PostureDataAngle; class PostureDataPoint; class DictManager; class DynamicData : public CObject { public: DynamicData(); DynamicData(DWORD taskId, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode, LPCTSTR szEquipPlace); virtual ~DynamicData(); private: // 字典管理 DictManager *m_pDictManager; // 任务ID DWORD m_taskId; // 设备型号 CString m_szEquipTypeCode; // 设备编码 CString m_szEquipCode; // 设备部位 CString m_szEquipPlace; // 偏角列表 CPostureAngleList m_AngleList; // 点列表 CPosturePointList m_PointList; // 信号量 CSemaphore *m_pSeamaphore; public: void Lock() { m_pSeamaphore->Lock();} void Unlock() { m_pSeamaphore->Unlock(); } public: // 任务ID void SetTaskId(DWORD iTaskId) { m_taskId = iTaskId; } DWORD GetTaskId() const { return m_taskId; } // 设备型号 void SetEquipTypeCode(LPCTSTR szEquipTypeCode) { m_szEquipTypeCode = szEquipTypeCode; } CString GetEquipTypeCode() const { return m_szEquipTypeCode; } // 设备编号 void SetEquipCode(LPCTSTR szEquipCode) { m_szEquipCode = szEquipCode; } CString GetEquipCode() const { return m_szEquipCode; } // 设备部位 void SetEquipPlace(LPCTSTR szEquipPlace) { m_szEquipPlace = szEquipPlace; } CString GetEquipPlace() const { return m_szEquipPlace; } // 推力线偏角 CPostureAngleList* GetAngleList() { return &m_AngleList; } // 点 CPosturePointList* GetPointList() { return &m_PointList; } public: // 新增点 void AddPoint(PostureDataPoint *pNewPoint); // 新增推力线偏角 void AddAngle(PostureDataAngle *pNewAngle); // 计算推力线偏角 void CalcAngle(); void CalcTestAngle(); // 基于任务ID和部位获取动力线数据 PostureDataAngle* GetAngle(DWORD taskId, LPCTSTR szEquipPlace); public: // 调试打印 void PrintData(); void PrintAngle(CStdioFile *pFile); void PrintPoint(CStdioFile *pFile); //清除 void Clear(); // 存储到数据库 void SaveToDB(); void SaveAngleToDB(); void SavePointToDB(); };