StaticData.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. /**************************************************************************************************
  2. 版本所有(C), 2020-2022, 北京普达迪泰
  3. ***************************************************************************************************
  4. 文 件 名: StaticData.h
  5. 功能描述: 静态数据集合
  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 "pch.h"
  18. #include <afx.h>
  19. #include <afxtempl.h>
  20. class EquipDataAngle;
  21. class DictManager;
  22. class StaticData : public CObject
  23. {
  24. public:
  25. StaticData(DWORD iTaskId, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode);
  26. virtual ~StaticData();
  27. private:
  28. // 字典管理
  29. DictManager *m_pDictManager;
  30. // 任务ID
  31. DWORD m_iTaskId;
  32. // 设备型号
  33. CString m_szEquipTypeCode;
  34. // 设备编码
  35. CString m_szEquipCode;
  36. // 静态数据类别
  37. CDataList m_DataList;
  38. // 平面列表
  39. CPlaneList m_PlaneList;
  40. // 圆列表
  41. CCircleList m_CircleList;
  42. // 线列表
  43. CLineList m_LineList;
  44. // 点列表
  45. CPointList m_PointList;
  46. // 圆柱列表
  47. CCylinderList m_CylinderList;
  48. // 推力线偏角列表
  49. CAngleList m_AngleList;
  50. // 点残差列表
  51. CPointRelatedList m_PointRelatedList;
  52. public:
  53. // 设备型号
  54. void SetEquipTypeCode(LPCTSTR szEquipTypeCode) { m_szEquipTypeCode = szEquipTypeCode; }
  55. CString GetEquipPlace() const { return m_szEquipTypeCode; }
  56. // 设备编号
  57. void SetEquipCode(LPCTSTR szEquipCode) { m_szEquipCode = szEquipCode; }
  58. CString GetEquipCode() const { return m_szEquipCode; }
  59. public:
  60. // 从IDPMS文件加载数据
  61. BOOL LoadDataFromFile(LPCTSTR szFile);
  62. // 新增
  63. void AddEquipItemData(int iType);
  64. void AddEquipSubItemData(int iType, void *pData);
  65. // 解析点
  66. BOOL ParsePoint(CStdioFile *pfile);
  67. // 解析平面
  68. BOOL ParsePlane(CStdioFile *pfile, CString &szLine);
  69. // 解析圆
  70. BOOL ParseCircle(CStdioFile *pfile, CString &szLine);
  71. // 解析直线
  72. BOOL ParseLine(CStdioFile *pfile, CString &szLine);
  73. // 解析圆柱
  74. BOOL ParseCylinder(CStdioFile *pfile, CString &szLine);
  75. // 解析点残差
  76. BOOL ParsePointRelated(CStdioFile *pFile, int iType);
  77. BOOL ParsePlanePointRelated(CStdioFile *pFile);
  78. BOOL ParseCirclePointRelated(CStdioFile *pFile);
  79. BOOL ParseLinePointRelated(CStdioFile *pFile);
  80. BOOL ParseCylinderPointRelated(CStdioFile *pFile);
  81. // 计算平面度
  82. void CalcPointFlatness();
  83. //
  84. void CalcCircleRoundness();
  85. // 计算推力线偏角
  86. void GenerateAngle();
  87. void GenerateAngleText();
  88. void GenerateDoublePoint();
  89. void HandleAngle(LPCTSTR szCylinderCode, LPCTSTR szPointCode);
  90. void HandleAngleDoublePoint(LPCTSTR szPointCodeStart, LPCTSTR szPointCodeEnd);
  91. void CalcAngle(const DOUBLE x1, const DOUBLE y1, const DOUBLE z1, const DOUBLE x2, const DOUBLE y2, const DOUBLE z2);
  92. void CalcAngle(const CString count,const DOUBLE x1, const DOUBLE y1, const DOUBLE z1, const DOUBLE x2, const DOUBLE y2, const DOUBLE z2);
  93. // 新增推力线偏角
  94. void AddAngle(EquipDataAngle *pNewAngle);
  95. // 基于编号查询
  96. EquipDataPoint* SearchPointByCode(LPCTSTR szCode);
  97. BOOL IsEquipDataExist(int iType);
  98. // 调试打印
  99. void PrintData();
  100. void PrintEquipData(CStdioFile *pFile);
  101. void PrintPoint(CStdioFile *pFile);
  102. void PrintPlane(CStdioFile *pFile);
  103. void PrintCircle(CStdioFile *pFile);
  104. void PrintLine(CStdioFile *pFile);
  105. void PrintCylinder(CStdioFile *pFile);
  106. void PrintAngle(CStdioFile *pFile);
  107. void PrintPointRelated(CStdioFile *pFile);
  108. // 清除
  109. void Clear();
  110. //
  111. BOOL Validate(CString &szMsg);
  112. // 保存到数据库
  113. BOOL SaveToDB();
  114. int SaveEquipDataToDB();
  115. int SavePlaneToDB();
  116. int SaveCircleToDB();
  117. int SaveLineToDB();
  118. int SavePointToDB();
  119. int SaveCylinderToDB();
  120. int SaveAngleToDB();
  121. int SavePointRelatedToDB();
  122. // 输出配置文件
  123. int OutputConfig();
  124. int OutputDataToFile(const CString &szFileName, const CString &szPoints);
  125. };