#pragma once #include #include "DeviceData.h" #include "Device_API.h" #include using namespace std; //探测器状态 enum ENUM_PANEL_STATUS { PANEL_CLOSE = 0, PANEL_INIT = 1, PANEL_SLEEP = 2, PANEL_STANDBY = 3, PANEL_READY_EXP = 4, PANEL_READING_IMAGE = 5, PANEL_GET_IMAGE = 6, PANEL_OFFSET_CAL = 7, PANEL_OFFSET_FINISH = 8, PANEL_GAIN_PREPARE = 9, PANEL_GAIN_READY_EXP = 10, PANEL_GAIN_CAL = 11, PANEL_GAIN_EXP_END = 12, PANEL_GAIN_EXP_END_NOIMAGE = 13, PANEL_GAIN_FINISH = 14, PANEL_EXP_END_TIMEOUT = 15, PANEL_GAIN_EXP_END_TIMEOUT = 16, PANEL_XWINDOW_ON = 17, PANEL_XWINDOW_OFF = 18 }; //探测器同步模式 enum ENUM_PANEL_SYNC_MODE { PANEL_SYNC_HW = 0, PANEL_SYNC_SW = 1, PANEL_SYNC_AUTO = 2 }; //探测器异步事件状态 enum ENUM_PANEL_EVENT_STATE { PANEL_EVENT_END_OK = 0, PANEL_EVENT_END_ERROR = 1, PANEL_EVENT_START = 2 }; //探测器原厂校正类型 enum ENUM_PANEL_FACTORY_CAL_TYPE { PANEL_FACTORY_CAL_IMAGE = 0, //有图 PANEL_FACTORY_CAL_NOIMAGE = 1 //无图 }; //探测器公共新信息功能列表 class CSinglePanelCommonDataList { public: CSinglePanelCommonDataList(); virtual ~CSinglePanelCommonDataList(); void Init(pCallbackfun pCallback, int nIndex); int OnSetup( CString strName, CString strGroup, CString strValue ); //配置 CDeviceData m_strcFPDType; //探测器类型 CDeviceData m_ncSyncMode; //同步模式,取值范围ENUM_PANEL_SYNC_MODE CDeviceData m_strcPanelSerial; //探测器序列号 CDeviceData m_strcFPDFilePath; CDeviceData m_bcPreviewEnable; //预览图 CDeviceData m_ncFPDExpWindowMode; CDeviceData m_fcFPDExpWindow; CDeviceData m_bcSaveRawDataMode; CDeviceData m_ncWidthOffset; //裁剪尺寸 CDeviceData m_ncHeightOffset; CDeviceData m_fcTempratureWarning; //温度警告值 CDeviceData m_fcWIFIWarning; //WIFI警告值 CDeviceData m_fcBatteryWarning; //电池警告值 CDeviceData m_fcTempratureLimit; //温度报警值 CDeviceData m_fcWIFILimit; //WIFI报警值 CDeviceData m_fcBatteryLimit; //电池报警值 CDeviceData m_ncSatValue; //饱和值 CDeviceData m_ncRequireHWMode; //饱和值 //信息 CDeviceData m_niIndex; //原始尺寸 CDeviceData m_niImageBits; CDeviceData m_niRawWidth; //原始尺寸 CDeviceData m_niRawHeight; CDeviceData m_niPreviewWidth; //预览图尺寸 CDeviceData m_niPreviewHeight; CDeviceData m_niFactoryCalType; //原厂校正类型,取值范围(ENUM_PANEL_FACTORY_CAL_TYPE) //状态 CDeviceData m_nsPanelStatus; //探测器状态,取值范围(PANEL_STATUS) CDeviceData m_nsActiveWidth; //有效尺寸 CDeviceData m_nsActiveHeight; CDeviceData m_fsExpWindow; //曝光窗口 CDeviceData m_fsTemprature; //温度 CDeviceData m_fsWIFI; //WIFI CDeviceData m_fsBattery; //电池电量 CDeviceData m_bsFactoryCorrectionActive; //是否使用原厂校正 CDeviceData m_bsBatteryCharging; // 是否在充电 CDeviceData m_strmBaseInfo; // 基本信息 CDeviceData m_strmMotionStatus; // 探测器陀螺仪状态 CDeviceData m_strmStorageStatus; // 探测器存储信息 //报警错误状态 CDeviceData m_bsAlarmTempratrue; //温度报警 CDeviceData m_bsAlarmWIFI; //WIFI报警 CDeviceData m_bsAlarmBattery; //电池报警 CDeviceData m_bsErrorGetImage; //获取图像失败 CDeviceData m_bsErrorCommunication; //连接断开或通信失败 CDeviceData m_bsErrorPowerOff; //探测器关机 CDeviceData m_bsErrorSleep; //探测器休眠 CDeviceData m_bsErrorLoadGain; //缺少增益校正文件 CDeviceData m_bsErrorLoadCorrection; CDeviceData m_bsWarnTempratrue; //温度警告 CDeviceData m_bsWarnWIFI; //WIFI警告 CDeviceData m_bsWarnBattery; //电池警告 CDeviceData m_bsWarnExpoRequest; //消息 CDeviceData m_strmPreViewImageHandle; //预览图指针 CDeviceData m_strmRawImageHandle; //RAW图指针 //功能参数 private: pCallbackfun m_pCallback; }; class CFPDCommonDataList { public: static const int PANEL_MAX_COUNT = 4; //系统支持的最大探测器数量 //单个探测器信息功能列表 public: CFPDCommonDataList(); virtual ~CFPDCommonDataList(); void Init(pCallbackfun pCallback); int OnSetup(CString strName, CString strGroup, CString strValue); //状态 CDeviceData m_nsSelectIndex; //当前探测器Index,起始0 CDeviceData m_bsDEMODevice; //DEMO类型需要设置为true //配置 CDeviceData m_ncPanelCount; //探测器数量,初值为0 CDeviceData m_strcConfigPath; //配置文件目录路径 //消息 CDeviceData m_nmInitStatus; //初始化状态,取值范围:ENUM_PANEL_EVENT_STATE CDeviceData m_nmSelectPanelStatus; //切换探测器状态,取值范围:ENUM_PANEL_EVENT_STATE CDeviceData m_nmAcquisitionStatus; //开始取图状态,取值范围:ENUM_PANEL_EVENT_STATE CDeviceData m_nmOffsetCalibrationStatus; //暗场校正状态,取值范围:ENUM_PANEL_EVENT_STATE CDeviceData m_nmCalibrationStatus; //校正状态,取值范围:ENUM_PANEL_EVENT_STATE //功能 //【功能1:切换探测器】 CDeviceData m_npSelectPanelIndex; //切换探测器的索引 CDeviceData m_straSelectPanel; //切换探测器 //【功能2:获取图像】 CDeviceData m_straStartAcquisition; //开始采集流程 CDeviceData m_straExpoRequest; //请求曝光 CDeviceData m_straCancelAcquisition; //取消 //【功能3:暗场校正】 CDeviceData m_straOffsetCalibration; //暗场校正 CDeviceData m_straRecoverImage; //恢复图像 CDeviceData m_straActiveDetector; //激活探测器 //【功能4:探测器校正】 CDeviceData m_straStartCalibration; //校正 CDeviceData m_straAcceptCalibrationImage; //接受校正图像 CDeviceData m_straRejectCalibrationImage; //拒绝校正图像 CDeviceData m_straCancelCalibration; //取消 CDeviceData m_straCompleteCalibration; //完成校正 //【功能5:原厂校正设置】 CDeviceData m_straFactoryOffsetOpen; CDeviceData m_straFactoryCorrectionOpen; //打开校正 CDeviceData m_straFactoryCorrectionClose; //校正关闭 vector m_panels; private: pCallbackfun m_pCallback; bool PanelsInit(int nCount); };