FPDCommonDataList-.h 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  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. };
  28. //探测器同步模式
  29. enum ENUM_PANEL_SYNC_MODE
  30. {
  31. PANEL_SYNC_HW = 0,
  32. PANEL_SYNC_SW = 1,
  33. PANEL_SYNC_AUTO = 2
  34. };
  35. //探测器异步事件状态
  36. enum ENUM_PANEL_EVENT_STATE
  37. {
  38. PANEL_EVENT_END_OK = 0,
  39. PANEL_EVENT_END_ERROR = 1,
  40. PANEL_EVENT_START = 2
  41. };
  42. //探测器原厂校正类型
  43. enum ENUM_PANEL_FACTORY_CAL_TYPE
  44. {
  45. PANEL_FACTORY_CAL_IMAGE = 0, //有图
  46. PANEL_FACTORY_CAL_NOIMAGE = 1 //无图
  47. };
  48. //探测器公共新信息功能列表
  49. class CSinglePanelCommonDataList
  50. {
  51. public:
  52. CSinglePanelCommonDataList();
  53. virtual ~CSinglePanelCommonDataList();
  54. void Init(pCallbackfun pCallback, int nIndex);
  55. int OnSetup( CString strName, CString strGroup, CString strValue );
  56. //配置
  57. CDeviceData m_strcFPDType; //探测器类型
  58. CDeviceData m_ncSyncMode; //同步模式,取值范围ENUM_PANEL_SYNC_MODE
  59. CDeviceData m_strcPanelSerial; //探测器序列号
  60. CDeviceData m_strcFPDFilePath;
  61. CDeviceData m_bcPreviewEnable; //预览图
  62. CDeviceData m_ncFPDExpWindowMode;
  63. CDeviceData m_bcSaveRawDataMode;
  64. CDeviceData m_ncWidthOffset; //裁剪尺寸
  65. CDeviceData m_ncHeightOffset;
  66. CDeviceData m_fcTempratureWarning; //温度警告值
  67. CDeviceData m_fcWIFIWarning; //WIFI警告值
  68. CDeviceData m_fcBatteryWarning; //电池警告值
  69. CDeviceData m_fcTempratureLimit; //温度报警值
  70. CDeviceData m_fcWIFILimit; //WIFI报警值
  71. CDeviceData m_fcBatteryLimit; //电池报警值
  72. CDeviceData m_ncSatValue; //饱和值
  73. //信息
  74. CDeviceData m_niIndex; //原始尺寸
  75. CDeviceData m_niImageBits;
  76. CDeviceData m_niRawWidth; //原始尺寸
  77. CDeviceData m_niRawHeight;
  78. CDeviceData m_niPreviewWidth; //预览图尺寸
  79. CDeviceData m_niPreviewHeight;
  80. CDeviceData m_niFactoryCalType; //原厂校正类型,取值范围(ENUM_PANEL_FACTORY_CAL_TYPE)
  81. //状态
  82. CDeviceData m_nsPanelStatus; //探测器状态,取值范围(PANEL_STATUS)
  83. CDeviceData m_nsActiveWidth; //有效尺寸
  84. CDeviceData m_nsActiveHeight;
  85. CDeviceData m_fsExpWindow; //曝光窗口
  86. CDeviceData m_fsTemprature; //温度
  87. CDeviceData m_fsWIFI; //WIFI
  88. CDeviceData m_fsBattery; //电池电量
  89. CDeviceData m_bsFactoryCorrectionActive; //是否使用原厂校正
  90. //报警错误状态
  91. CDeviceData m_strmFPDConnected;
  92. CDeviceData m_bsAlarmTempratrue; //温度报警
  93. CDeviceData m_bsAlarmWIFI; //WIFI报警
  94. CDeviceData m_bsAlarmBattery; //电池报警
  95. CDeviceData m_bsWarnTempratrue; //温度警告
  96. CDeviceData m_bsWarnWIFI; //WIFI警告
  97. CDeviceData m_bsWarnBattery; //电池警告
  98. //CDeviceData m_bsErrorGetImage; //获取图像失败
  99. //CDeviceData m_strmSleep; //探测器休眠
  100. //消息
  101. CDeviceData m_strmPreViewImageHandle; //预览图指针
  102. CDeviceData m_strmRawImageHandle; //RAW图指针
  103. CDeviceData m_niErrorCode; //错误编号,表明哪一类错误
  104. CDeviceData m_niErrSuccessCode; //错误恢复编号,表明哪一类错误
  105. CDeviceData m_strmLastError; //错误内容
  106. //功能参数
  107. private:
  108. pCallbackfun m_pCallback;
  109. };
  110. class CFPDCommonDataList
  111. {
  112. public:
  113. static const int PANEL_MAX_COUNT = 4; //系统支持的最大探测器数量
  114. //单个探测器信息功能列表
  115. public:
  116. CFPDCommonDataList();
  117. virtual ~CFPDCommonDataList();
  118. void Init(pCallbackfun pCallback);
  119. int OnSetup(CString strName, CString strGroup, CString strValue);
  120. //状态
  121. CDeviceData m_nsSelectIndex; //当前探测器Index,起始0
  122. CDeviceData m_bsDEMODevice; //DEMO类型需要设置为true
  123. //配置
  124. CDeviceData m_ncPanelCount; //探测器数量,初值为0
  125. //消息
  126. CDeviceData m_nmInitStatus; //初始化状态,取值范围:ENUM_PANEL_EVENT_STATE
  127. CDeviceData m_nmSelectPanelStatus; //切换探测器状态,取值范围:ENUM_PANEL_EVENT_STATE
  128. CDeviceData m_nmAcquisitionStatus; //开始取图状态,取值范围:ENUM_PANEL_EVENT_STATE
  129. CDeviceData m_nmOffsetCalibrationStatus; //暗场校正状态,取值范围:ENUM_PANEL_EVENT_STATE
  130. CDeviceData m_nmCalibrationStatus; //校正状态,取值范围:ENUM_PANEL_EVENT_STATE
  131. //功能
  132. //【功能1:切换探测器】
  133. CDeviceData m_npSelectPanelIndex; //切换探测器的索引
  134. CDeviceData m_straSelectPanel; //切换探测器
  135. //【功能2:获取图像】
  136. CDeviceData m_straStartAcquisition; //开始采集流程
  137. CDeviceData m_straExpoRequest; //请求曝光
  138. CDeviceData m_straCancelAcquisition; //取消
  139. //【功能3:暗场校正】
  140. CDeviceData m_straOffsetCalibration; //暗场校正
  141. //【功能4:探测器校正】
  142. CDeviceData m_straStartCalibration; //校正
  143. CDeviceData m_straAcceptCalibrationImage; //接受校正图像
  144. CDeviceData m_straRejectCalibrationImage; //拒绝校正图像
  145. CDeviceData m_straCancelCalibration; //取消
  146. CDeviceData m_straCompleteCalibration; //完成校正
  147. //【功能5:原厂校正设置】
  148. CDeviceData m_straFactoryOffsetOpen;
  149. CDeviceData m_straFactoryCorrectionOpen; //打开校正
  150. CDeviceData m_straFactoryCorrectionClose; //校正关闭
  151. vector<CSinglePanelCommonDataList> m_panels;
  152. private:
  153. pCallbackfun m_pCallback;
  154. bool PanelsInit(int nCount);
  155. };