FPDCommonDataList.h 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. #pragma once
  2. #include <afxstr.h>
  3. #include "DeviceData.h"
  4. #include "Device_API.h"
  5. #include <vector>
  6. using namespace std;
  7. //探测器状态
  8. enum ENUM_PANEL_STATUS
  9. {
  10. PANEL_CLOSE = 0,
  11. PANEL_INIT = 1,
  12. PANEL_SLEEP = 2,
  13. PANEL_STANDBY = 3,
  14. PANEL_READY_EXP = 4,
  15. PANEL_READING_IMAGE = 5,
  16. PANEL_GET_IMAGE = 6,
  17. PANEL_OFFSET_CAL = 7,
  18. PANEL_OFFSET_FINISH = 8,
  19. PANEL_GAIN_PREPARE = 9,
  20. PANEL_GAIN_READY_EXP = 10,
  21. PANEL_GAIN_CAL = 11,
  22. PANEL_GAIN_EXP_END = 12,
  23. PANEL_GAIN_EXP_END_NOIMAGE = 13,
  24. PANEL_GAIN_FINISH = 14,
  25. PANEL_EXP_END_TIMEOUT = 15,
  26. PANEL_GAIN_EXP_END_TIMEOUT = 16,
  27. PANEL_XWINDOW_ON = 17,
  28. PANEL_XWINDOW_OFF = 18
  29. };
  30. //探测器同步模式
  31. enum ENUM_PANEL_SYNC_MODE
  32. {
  33. PANEL_SYNC_HW = 0,
  34. PANEL_SYNC_SW = 1,
  35. PANEL_SYNC_AUTO = 2
  36. };
  37. //探测器异步事件状态
  38. enum ENUM_PANEL_EVENT_STATE
  39. {
  40. PANEL_EVENT_END_OK = 0,
  41. PANEL_EVENT_END_ERROR = 1,
  42. PANEL_EVENT_START = 2
  43. };
  44. //探测器原厂校正类型
  45. enum ENUM_PANEL_FACTORY_CAL_TYPE
  46. {
  47. PANEL_FACTORY_CAL_IMAGE = 0, //有图
  48. PANEL_FACTORY_CAL_NOIMAGE = 1 //无图
  49. };
  50. //探测器公共新信息功能列表
  51. class CSinglePanelCommonDataList
  52. {
  53. public:
  54. CSinglePanelCommonDataList();
  55. virtual ~CSinglePanelCommonDataList();
  56. void Init(pCallbackfun pCallback, int nIndex);
  57. int OnSetup( CString strName, CString strGroup, CString strValue );
  58. //配置
  59. CDeviceData m_strcFPDType; //探测器类型
  60. CDeviceData m_ncSyncMode; //同步模式,取值范围ENUM_PANEL_SYNC_MODE
  61. CDeviceData m_strcPanelSerial; //探测器序列号
  62. CDeviceData m_strcFPDFilePath;
  63. CDeviceData m_bcPreviewEnable; //预览图
  64. CDeviceData m_ncFPDExpWindowMode;
  65. CDeviceData m_fcFPDExpWindow;
  66. CDeviceData m_bcSaveRawDataMode;
  67. CDeviceData m_ncWidthOffset; //裁剪尺寸
  68. CDeviceData m_ncHeightOffset;
  69. CDeviceData m_fcTempratureWarning; //温度警告值
  70. CDeviceData m_fcWIFIWarning; //WIFI警告值
  71. CDeviceData m_fcBatteryWarning; //电池警告值
  72. CDeviceData m_fcTempratureLimit; //温度报警值
  73. CDeviceData m_fcWIFILimit; //WIFI报警值
  74. CDeviceData m_fcBatteryLimit; //电池报警值
  75. CDeviceData m_ncSatValue; //饱和值
  76. CDeviceData m_ncRequireHWMode; //饱和值
  77. //信息
  78. CDeviceData m_niIndex; //原始尺寸
  79. CDeviceData m_niImageBits;
  80. CDeviceData m_niRawWidth; //原始尺寸
  81. CDeviceData m_niRawHeight;
  82. CDeviceData m_niPreviewWidth; //预览图尺寸
  83. CDeviceData m_niPreviewHeight;
  84. CDeviceData m_niFactoryCalType; //原厂校正类型,取值范围(ENUM_PANEL_FACTORY_CAL_TYPE)
  85. //状态
  86. CDeviceData m_nsPanelStatus; //探测器状态,取值范围(PANEL_STATUS)
  87. CDeviceData m_nsActiveWidth; //有效尺寸
  88. CDeviceData m_nsActiveHeight;
  89. CDeviceData m_fsExpWindow; //曝光窗口
  90. CDeviceData m_fsTemprature; //温度
  91. CDeviceData m_fsWIFI; //WIFI
  92. CDeviceData m_fsBattery; //电池电量
  93. CDeviceData m_bsFactoryCorrectionActive; //是否使用原厂校正
  94. CDeviceData m_bsBatteryCharging; // 是否在充电
  95. CDeviceData m_strmBaseInfo; // 基本信息
  96. CDeviceData m_strmMotionStatus; // 探测器陀螺仪状态
  97. CDeviceData m_strmStorageStatus; // 探测器存储信息
  98. //报警错误状态
  99. CDeviceData m_bsAlarmTempratrue; //温度报警
  100. CDeviceData m_bsAlarmWIFI; //WIFI报警
  101. CDeviceData m_bsAlarmBattery; //电池报警
  102. CDeviceData m_bsErrorGetImage; //获取图像失败
  103. CDeviceData m_bsErrorCommunication; //连接断开或通信失败
  104. CDeviceData m_bsErrorPowerOff; //探测器关机
  105. CDeviceData m_bsErrorSleep; //探测器休眠
  106. CDeviceData m_bsErrorLoadGain; //缺少增益校正文件
  107. CDeviceData m_bsErrorLoadCorrection;
  108. CDeviceData m_bsWarnTempratrue; //温度警告
  109. CDeviceData m_bsWarnWIFI; //WIFI警告
  110. CDeviceData m_bsWarnBattery; //电池警告
  111. CDeviceData m_bsWarnExpoRequest;
  112. //消息
  113. CDeviceData m_strmPreViewImageHandle; //预览图指针
  114. CDeviceData m_strmRawImageHandle; //RAW图指针
  115. //功能参数
  116. private:
  117. pCallbackfun m_pCallback;
  118. };
  119. class CFPDCommonDataList
  120. {
  121. public:
  122. static const int PANEL_MAX_COUNT = 4; //系统支持的最大探测器数量
  123. //单个探测器信息功能列表
  124. public:
  125. CFPDCommonDataList();
  126. virtual ~CFPDCommonDataList();
  127. void Init(pCallbackfun pCallback);
  128. int OnSetup(CString strName, CString strGroup, CString strValue);
  129. //状态
  130. CDeviceData m_nsSelectIndex; //当前探测器Index,起始0
  131. CDeviceData m_bsDEMODevice; //DEMO类型需要设置为true
  132. //配置
  133. CDeviceData m_ncPanelCount; //探测器数量,初值为0
  134. CDeviceData m_strcConfigPath; //配置文件目录路径
  135. //消息
  136. CDeviceData m_nmInitStatus; //初始化状态,取值范围:ENUM_PANEL_EVENT_STATE
  137. CDeviceData m_nmSelectPanelStatus; //切换探测器状态,取值范围:ENUM_PANEL_EVENT_STATE
  138. CDeviceData m_nmAcquisitionStatus; //开始取图状态,取值范围:ENUM_PANEL_EVENT_STATE
  139. CDeviceData m_nmOffsetCalibrationStatus; //暗场校正状态,取值范围:ENUM_PANEL_EVENT_STATE
  140. CDeviceData m_nmCalibrationStatus; //校正状态,取值范围:ENUM_PANEL_EVENT_STATE
  141. //功能
  142. //【功能1:切换探测器】
  143. CDeviceData m_npSelectPanelIndex; //切换探测器的索引
  144. CDeviceData m_straSelectPanel; //切换探测器
  145. //【功能2:获取图像】
  146. CDeviceData m_straStartAcquisition; //开始采集流程
  147. CDeviceData m_straExpoRequest; //请求曝光
  148. CDeviceData m_straCancelAcquisition; //取消
  149. //【功能3:暗场校正】
  150. CDeviceData m_straOffsetCalibration; //暗场校正
  151. CDeviceData m_straRecoverImage; //恢复图像
  152. CDeviceData m_straActiveDetector; //激活探测器
  153. //【功能4:探测器校正】
  154. CDeviceData m_straStartCalibration; //校正
  155. CDeviceData m_straAcceptCalibrationImage; //接受校正图像
  156. CDeviceData m_straRejectCalibrationImage; //拒绝校正图像
  157. CDeviceData m_straCancelCalibration; //取消
  158. CDeviceData m_straCompleteCalibration; //完成校正
  159. //【功能5:原厂校正设置】
  160. CDeviceData m_straFactoryOffsetOpen;
  161. CDeviceData m_straFactoryCorrectionOpen; //打开校正
  162. CDeviceData m_straFactoryCorrectionClose; //校正关闭
  163. vector<CSinglePanelCommonDataList> m_panels;
  164. private:
  165. pCallbackfun m_pCallback;
  166. bool PanelsInit(int nCount);
  167. };