DynamicData.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. /**************************************************************************************************
  2. 版本所有(C), 2020-2022, 北京普达迪泰
  3. ***************************************************************************************************
  4. 文 件 名: DynamicData.h
  5. 功能描述: Dynamic Task任务数据
  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. #include <afxtempl.h>
  19. #include "pch.h"
  20. class PostureDataAngle;
  21. class PostureDataPoint;
  22. class DictManager;
  23. class DynamicData : public CObject
  24. {
  25. public:
  26. DynamicData();
  27. DynamicData(DWORD taskId, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode, LPCTSTR szEquipPlace);
  28. virtual ~DynamicData();
  29. private:
  30. // 字典管理
  31. DictManager *m_pDictManager;
  32. // 任务ID
  33. DWORD m_taskId;
  34. // 设备型号
  35. CString m_szEquipTypeCode;
  36. // 设备编码
  37. CString m_szEquipCode;
  38. // 设备部位
  39. CString m_szEquipPlace;
  40. // 偏角列表
  41. CPostureAngleList m_AngleList;
  42. // 点列表
  43. CPosturePointList m_PointList;
  44. // 信号量
  45. CSemaphore *m_pSeamaphore;
  46. public:
  47. void Lock() { m_pSeamaphore->Lock();}
  48. void Unlock() { m_pSeamaphore->Unlock(); }
  49. public:
  50. // 任务ID
  51. void SetTaskId(DWORD iTaskId) { m_taskId = iTaskId; }
  52. DWORD GetTaskId() const { return m_taskId; }
  53. // 设备型号
  54. void SetEquipTypeCode(LPCTSTR szEquipTypeCode) { m_szEquipTypeCode = szEquipTypeCode; }
  55. CString GetEquipTypeCode() const { return m_szEquipTypeCode; }
  56. // 设备编号
  57. void SetEquipCode(LPCTSTR szEquipCode) { m_szEquipCode = szEquipCode; }
  58. CString GetEquipCode() const { return m_szEquipCode; }
  59. // 设备部位
  60. void SetEquipPlace(LPCTSTR szEquipPlace) { m_szEquipPlace = szEquipPlace; }
  61. CString GetEquipPlace() const { return m_szEquipPlace; }
  62. // 推力线偏角
  63. CPostureAngleList* GetAngleList() { return &m_AngleList; }
  64. // 点
  65. CPosturePointList* GetPointList() { return &m_PointList; }
  66. public:
  67. // 新增点
  68. void AddPoint(PostureDataPoint *pNewPoint);
  69. // 新增推力线偏角
  70. void AddAngle(PostureDataAngle *pNewAngle);
  71. // 计算推力线偏角
  72. void CalcAngle();
  73. void CalcTestAngle();
  74. // 基于任务ID和部位获取动力线数据
  75. PostureDataAngle* GetAngle(DWORD taskId, LPCTSTR szEquipPlace);
  76. public:
  77. // 调试打印
  78. void PrintData();
  79. void PrintAngle(CStdioFile *pFile);
  80. void PrintPoint(CStdioFile *pFile);
  81. //清除
  82. void Clear();
  83. // 存储到数据库
  84. void SaveToDB();
  85. void SaveAngleToDB();
  86. void SavePointToDB();
  87. };