#pragma once // 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 DETECTOR_MODEL_DEF_EXPORTS // 符号编译的。在使用此 DLL 的 // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将 // DETECTOR_MODEL_DEF_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的 // 符号视为是被导出的。 #define OEM_IF #define OEM_NOTIFY #define MAX_STRING 1024 static const char* IMAGE_DEADLINE_TOP = "DeadLineTop"; static const char* IMAGE_DEADLINE_LEFT = "DeadLineLeft"; static const char* IMAGE_DEADLINE_RIGHT = "DeadLineRight"; static const char* IMAGE_DEADLINE_BOTTOM = "DeadLineBottom"; //typedef enum _Packet_Cmd { // PACKET_CMD_NONE = -1, // PACKET_CMD_OPEN, // PACKET_CMD_CLOSE, // PACKET_CMD_GET, // PACKET_CMD_UPDATE, // PACKET_CMD_ADD, // PACKET_CMD_DEL, // PACKET_CMD_EXE, // PACKET_CMD_DATA, // PACKET_CMD_MSG, // PACKET_CMD_ONLINE,//设备掉线后重新注册到Root // PACKET_CMD_MAX // //}PACKET_CMD; //属性Action typedef enum _AttrAction{ ATTRACTION_GET, ATTRACTION_SET, ATTRACTION_ADD, ATTRACTION_DEL, ATTRACTION_UPDATE, ATTRACTION_DATA, ATTRACTION_MSG, ATTRACTION_MAX }ATTRACTION; // //typedef enum _Ret_Status { // RET_THREAD_INVALID = -4,//the calling thread is not owner // RET_INVALID = -3,//the handle is invalid // RET_NOSUPPORT = -2,//device not support // RET_TIMEOUT = -1,//超时(无接收命令) // RET_FAILED = 0,//执行命令失败 // RET_PENDING,//设备有接收命令,但无反馈(在一定时间内无反馈情况) // RET_SUCCEED,//设备执行命令成功 // RET_ONGOING,//设备执行命令已经完成,但是没有达成目标. // RET_FINISHED,//设备执行命令已经完成,且有达成目标. // RET_WARNING //}RET_STATUS; typedef enum ZSKK_FPD_State { ZSKK_FPD_STATE_NOT_INI = 0, ZSKK_FPD_STATE_ERR, ZSKK_FPD_STATE_STANDBY, ZSKK_FPD_STATE_PREPARE, ZSKK_FPD_STATE_READY, ZSKK_FPD_STATE_SLEEP, ZSKK_FPD_STATE_SHUTDOWN, ZSKK_FPD_STATE_EXIT }ZSKK_FPD_STATE; //------------------------采集命令相关----------------------------------------------------BEGIN #define CcosExpireAcqCmd ("ExpireAcqCmd") typedef enum _Ccos_Expire_Acq_Cmd { CCOS_EXPIRE_ACQ_ON, CCOS_EXPIRE_ACQ_OFF, CCOS_EXPIRE_ACQ_MAX }EXPIRE_ACQ_CMD; //------------------------采集命令相关----------------------------------------------------END //------------------------手闸相关----------------------------------------------------BEGIN //因为现在没有发生器的模型定义,所以先把手闸相关的定义放到此处 #define CcosGeneratorSwitch ("GENERATORHSWITCH") typedef enum _Ccos_Generator_Switch { GENERATOR_SWITCH_OFF, GENERATOR_SWITCH_PREPARE, GENERATOR_SWITCH_EXP, GENERATOR_SWITCH_MAX }GENERATOR_SWITCH; //------------------------手闸相关----------------------------------------------------END //------------------------Status相关----------------------------------------------------BEGIN #define CcosDetectorExpectOp ("DetectorExpectOp") typedef enum _Ccos_Detector_ExpectOp { DETECTOR_EXPECT_NONE, DETECTOR_EXPECT_ACQ, DETECTOR_EXPECT_STOP, DETECTOR_EXPECT_MAX }DETECTOR_EXPECTOP; #define CcosDetectorWorkStatus ("DetectorWorkStatus") typedef enum _Ccos_Detector_WorkStatus { DETECTOR_WORK_ACQUIRE, DETECTOR_WORK_CALIBRATE, DETECTOR_WORK_MAX }DETECTOR_WORK_STATUS; #define CcosDetectorStatus ("DetectorStatus") typedef enum _Ccos_Detector_Status { DETECTOR_STATUS_SHUTDOWN, DETECTOR_STATUS_INIT, DETECTOR_STATUS_SLEEP, DETECTOR_STATUS_WAKEUP,//低能耗,能工作 DETECTOR_STATUS_STANDBY,//高能耗,能采集 //DETECTOR_STATUS_ACQ_WAIT,//在STANDBY状态,执行ACQ Action且没到ACQ状态 DETECTOR_STATUS_ACQ, //DETECTOR_STATUS_STANDBY_WAIT,//在ACQ状态,执行StopAcq Action且没到STANDBY状态 DETECTOR_STATUS_CALIB, //校正状态 DETECTOR_STATUS_ERROR, DETECTOR_STATUS_MAX, }DETECTOR_STATUS; typedef enum ENUM_SHARE_EVENT_STATE_ { PANEL_CONNECT_ERROR = 0, PANEL_ATTACH_START = 1, PANEL_CONNECT_OK = 2, PANEL_DISCONNECT_SUCCESS = 3, PANEL_DISCONNECT_ERROR = 4, PANEL_ATTACH_OVER = 5, PANEL_ATTACH_FAILED = 6, PANEL_ATTACH_NULL = 7, PANEL_ATTACH_FAILED_WITH_IMG = 8, PANEL_ATTACH_NEWSN = 9, PANEL_ATTACH_FAILED_WITHOUT_PERMISSION = 10, PANEL_START_STOREDIMAGE = 11, PANEL_END_STOREDIMAGE = 12, PANEL_EXPORT_AUTONUMOUS_FINISH = 13 }DETECTOR_SHARE_STATUS; #define CcosZskkFPDState ("ZskkFPDState") #define CcosDetectorAttach ("DetectorAttach") #define CcosDetectorAttachedFlag ("Attached") #define CcosDetectorConnectStatus ("DetectorConnectStatus") typedef enum _Ccos_Detector_Connect_Status { DETECTOR_CONNECT_ERROR = 0, DETECTOR_ATTACH_START = 1, DETECTOR_CONNECT_OK = 2, DETECTOR_DISCONNECT_SUCCESS = 3, DETECTOR_DISCONNECT_ERROR = 4, DETECTOR_ATTACH_OVER = 5, DETECTOR_ATTACH_FAILED = 6, DETECTOR_ATTACH_NULL = 7, DETECTOR_CONNECT_MAX }DETECTOR_CONNECT_STATUS; #define CcosDetectorInitialStatus ("DetectorInitialStatus") typedef enum _Ccos_Detector_Ini_Status { DETECTOR_INI_START = 0, DETECTOR_INI_SUCCESS = 1, DETECTOR_INI_FAILED = 2, DETECTOR_INI_MAX }DETECTOR_INI_STATUS; #define CcosDetectorUpdateFWStatus ("DetectorUpdateFWStatus") typedef enum _Ccos_Detector_UFW_Status { DETECTOR_UFW_ERROR = 0, DETECTOR_UFW_SUCCESS = 1, DETECTOR_UFW_START = 2, DETECTOR_UFW_ERROR_BATTERY = 3, DETECTOR_UFW_ERROR_OMIT = 4, DETECTOR_UFW_MAX }DETECTOR_UFW_STATUS; //------------------------Status相关----------------------------------------------------END //------------------------IMAGE相关----------------------------------------------------BEGIN typedef enum Image_View_Type { IMAGE_FULL = 0, IMAGE_PREVIEW, IMAGE_AEC_PREVIEW, IMAGE_CAL }IMAGE_VIEW_TYPE; #define CcosImageInfo ("ImageInfo") #define CcosImageFul ("ImageFull") #define CcosImagePrev ("ImagePrev") typedef enum Xray_Image_Type { XRAY_IMAGE_DARK = 0, XRAY_IMAGE_XRAYED, XRAY_IMAGE_ANY, XRAY_IMAGE_MAX }XRAY_IMAGE_TYPE; //图像类型:IMAGE_VIEW_TYPE //图像类型Support:Yes,No //用例 : fullimage+yes/no,previmage+yes/no #define CcosImageType ("ImageType") #define CcosImageViewType ("ImageViewType") #define CcosImageViewTypeSupprt ("ImageViewTypeSupprt") #define CcosImageHeight ("ImageHeight") #define CcosImageWidth ("ImageWidth") #define CcosImageBits ("ImageBits") #define CcosImageBlockSize ("ImageBlockSize") #define CcosImagePixelSpacing ("ImagePixelSpacing") #define CcosImageFPDSensitivity ("FPDSensitivity") #define CcosImageTargetEXI ("TargetEXI") #define CcosImageLeftTrim ("ImageLeftTrim") #define CcosImageRightTrim ("ImageRightTrim") #define CcosImageTopTrim ("ImageTopTrim") #define CcosImageBottomTrim ("ImageBottomTrim") #define CcosImageReady ("ImageReady") #define CcosImageFetchFlag ("ImageFetchFlag") //------------------------AcqMode相关----------------------------------------------------BEGIN /* 关于AcqModeName: 用3个关键字描述,High(Low)Resolution,High(Low)FrameRate,High(Low)Dose. 一般情况HighResolution,必跟LowFrameRate,增益可以二选一High(Low)Dose. 一般情况LowResolution,跟HighFrameRate,增益LowDose. 其他情况,自行脑补... 策略上尽量都保持High最好,优先级 HighResolution > LowDose > HighFrameRate */ #define CcosAcqModeName ("AcqModeName") #define CcosAcqMode ("AcqMode") //采集模式 1-RAD 2-TOMO 3-DDR(3以后的值代表的模式不确定需要根据具体场景确定不是固定死的) //------------------------Seq相关----------------------------------------------------BEGIN //#define XwindowTitle ("XWINDOW") #define CcosXwindowSize ("XwindowSize") #define CcosXwindowStatus ("XwindowStatus") typedef enum _Xwindow_Status { XWINDOW_OFF, XWINDOW_ON, XWINDOW_MAX }XWINDOW_STATUS; #define CcosSyncMode ("SyncMode") typedef enum _Sync_Mode { SYNC_MANUAL = 0, SYNC_SOFTWARE = 1, SYNC_HARDWARE = 2, //带ZSKK同步盒的硬同步 SYNC_AED = 3, SYNC_HARDWARE_DIRECT = 4, //探测器、发生器直连的硬同步 SYNC_MAX = 5, }SYNC_MODE; #define CcosHardwareTriggerMode ("HardwareTriggerMode") typedef enum _Hardware_Trigger_Mode { HW_TRIGGER_NONE = 0, HW_TRIGGER_INTERNAL = 1, HW_TRIGGER_EXTERNAL = 2, HW_TRIGGER_MAX = 3 }HARDWARE_TRIGGER_MODE; #define CcosImageReadingStatus ("ImageReadingStatus") //addbyys20200410 曝光过程中探测器反馈的有图像的状态。 //目前用于涛影项目,缩短第一二两次曝光的时间间隔 #define CcosFPDReadyStatus ("FPDReadyStatus") //addbyys20200526 探测器采集Ready的状态。 //目前用于涛影项目,拼接检查第一帧完毕后发这个消息告知子系统探测器状态 //------------------------Seq相关----------------------------------------------------END #define CcosFrameRate ("FrameRate") #define CcosDoseRange ("DoseRange") #define CcosSensitivity ("Sensitivity") #define AcqModeListTitle ("AcqModeList") #define CcosAcqModeIdx ("AcqModeIdx") #define CcosLoopCount ("LoopCount") typedef enum _TYPE_LOOPCOUNT { TYPE_LOOP_INFINITE = -1, TYPE_LOOP_NONE = 0, TYPE_LOOP_ONE = 1, TYPE_LOOP_TWO = 2, TYPE_LOOP_THREE = 3, //... }TYPE_LOOPCOUNT; #define CcosCorrStrategy ("CorrStrategy") /* 校正策略: 高2位Byte用于FrameCount : 1 --- 16 低2位Byte用于FrameType(16BIT) : 0代表Dark,1代表Xray 例: 低 -------------> 高 0x00030004, 0010 0000 ... 1100 0000 ... FrameCount3,FrameType DDX 采集3张,头两张为Dark,第三张为Xray. */ #define CcosFPDCurExamModeKey ("CurExamMode") //------------------------AcqMode相关----------------------------------------------------END #define CcosBinningX ("BinningX") #define CcosBinningY ("BinningY") #define CcosZoomX1 ("ZOOMX1") #define CcosZoomY1 ("ZOOMY1") #define CcosZoomX2 ("ZOOMX2") #define CcosZoomY2 ("ZOOMY2") //------------------------CalibrationInfo相关----------------------------------------------------BEGIN #define CcosGainTitle ("GAIN") #define CalibrationInfo2 ("CalibrationInfo") #define CalibrationType2 ("CalibrationType") #define ValidCorrectionMap ("ValidCorrectionMap") #define CorrectionType ("CorrectionType") #define CorrectionFlag ("CorrectionFlag") #define DarkMapEffectiveTime ("DarkMapEffectiveTime") #define XrayMapEffectiveTime ("XrayMapEffectiveTime") #define RequestedFrameRate ("RequestedFrameRate") #define RequestedDose ("RequestedDose") //#define CalibrationStatus ("CalibrationStatus") //#define CalibrationFrameFetchFlag ("CalibrationFrameFetchFlag") //#define CalibrationProgress ("CalibrationProgress") #define AutoDarkCalibrationStatus ("AutoDarkCalibrationStatus") typedef enum _Ccos_Calibration_Mode { CCOS_CALIBRATION_MODE_ZSKK = 0, CCOS_CALIBRATION_MODE_OEM = 1, CCOS_CALIBRATION_MODE_MAX } CCOS_CALIBRATION_MODE; typedef enum _Ccos_AutoDarkCalibration_Status { CCOS_AUTODARKCALIBRATION_STATUS_START, CCOS_AUTODARKCALIBRATION_STATUS_END, CCOS_AUTODARKCALIBRATION_STATUS_MAX }CCOS_AUTODARKCALIBRATION_STATUS; typedef enum _Ccos_Calibration_Type { CCOS_CALIBRATION_TYPE_NONE, CCOS_CALIBRATION_TYPE_DARK, CCOS_CALIBRATION_TYPE_XRAY, CCOS_CALIBRATION_TYPE_MAX }CCOS_CALIBRATION_TYPE; typedef enum _Ccos_Correction_Type { CCOS_CORRECTION_OP_NONE, CCOS_CORRECTION_OP_OFFSET, CCOS_CORRECTION_OP_GAIN, CCOS_CORRECTION_OP_DEFECT = 4, CCOS_CORRECTION_OP_GATELINE = 8, CCOS_CORRECTION_OP_DARK_NONE = 16, CCOS_CORRECTION_OP_DARK_OFFSET = 32, CCOS_CORRECTION_OP_DARK_GAIN = 64, CCOS_CORRECTION_OP_DARK_DEFECT = 128, CCOS_CORRECTION_OP_DARK_GATELINE = 256, CCOS_CORRECTION_OP_MAX }CCOS_CORRECTION_TYPE; typedef enum _Ccos_Calibration_Status { CCOS_CALIBRATION_STATUS_ERROR, CCOS_CALIBRATION_STATUS_STANDBY, CCOS_CALIBRATION_STATUS_ACTIVE, CCOS_CALIBRATION_STATUS_RUNNING, CCOS_CALIBRATION_STATUS_PAUSE, CCOS_CALIBRATION_STATUS_PREPARE, CCOS_CALIBRATION_STATUS_BESTOPPED, CCOS_CALIBRATION_STATUS_MAX }CCOS_CALIBRATION_STATUS; /* 状态变迁: -------------------------------------------- ↓ ↑ Standby --Active--> (Active) --StartCali--> Running ------> (Pause) ↑ ↓ ---------------------------- */ typedef enum _Ccos_Calibration_FrameFetch { CCOS_CALIBRATION_FRAMEFETCH_NONE, CCOS_CALIBRATION_FRAMEFETCH_ONLY, CCOS_CALIBRATION_FRAMEFETCH_CONFIRM, CCOS_CALIBRATION_FRAMEFETCH_MAX }CCOS_CALIBRATION_FRAMEFETCH; //------------------------Ccos Configuration UI 相关----------------------------------------------------BEGIN //--------- Attribute -----------// #define DetectorAttribute ("Attribute") #define DetectorVender ("DetectorVender") #define DetectorModel ("DetectorModel") #define DetectorDescription ("Description") #define DetectorSerialNumber ("SerialNumber") #define WiredIP ("WiredIP") #define WirelessIP ("WirelessIP") #define LocalIP ("LocalIP") #define SyncType ("SyncType") #define FPDWorkStation ("WorkStation") //table wall free share #define ReConnect ("ReConnect") //从IsConnect改为ReConnect,避免和其它模块定义冲突 #define ImageFullWidth ("ImageFullWidth") #define ImageFullHeight ("ImageFullHeight") #define TempMaxLimit ("TempMaxLimit") //温度上限,禁止曝光 #define TempMinLimit ("TempMinLimit") //温度下限,禁止曝光 #define TempUpperLimit ("TempUpperLimit") //温度高阈值,警告 #define TempLowerLimit ("TempLowerLimit") //温度低阈值,警告 #define Temperature_CalibUpWarn ("Temperature_CalibUpWarn") //校正时温度高阈值,警告 #define Temperature_CalibLowWarn ("Temperature_CalibLowWarn") //校正时温度低阈值,警告 #define BatLowerLimit ("BatLowerLimit") //电量低阈值,警告 #define BatMiniLimit ("BatMiniLimit") //电量下限,禁止曝光 #define BatLowerLimitInCali ("BatLowerLimitInCali") //校正时电量低阈值,警告 #define WifiLowerLimit ("WifiLowerLimit")//信号低阈值,警告 #define WifiMiniLimit ("WifiMiniLimit")//信号下限,禁止曝光 #define HighPowerTimeout ("HighPowerTimeout") //长时间未曝光休眠 #define ImageSizeX ("ImageSizeX") //图像有效宽度 #define ImageSizeY ("ImageSizeY") //图像有效高度 #define ImageWidth ("ImageWidth") //图像有效宽度 #define ImageHeight ("ImageHeight") //图像有效高度 #define ShowTemperature ("ShowTemperature") //是否显示温度 #define ShowWifi ("ShowWifi") //是否显示wifi #define ShowBattery ("ShowBattery") //是否显示电量 #define ShowBluetooth ("ShowBluetooth") //是否显示蓝牙 #define FPDExamMode ("FPDExamMode") //应用检查模式 101、102、201、301、302... #define FPDAcqMode ("FPDAcqMode") //探测器的采集模式 #define FPDModeMatch ("FPDModeMatch") //检查模式和采集模式的对应关系 #define RawImgWidth ("RawImgWidth")//raw图的宽 #define RawImgHeight ("RawImgHeight")//raw图的高 #define OnlyHaveFpd ("OnlyHaveFpd")//环境中是否只有探测器为真实设备 0-否 1-是 //#define CalibMode ("CalibMode")//校正方式0-ZSKK 1-OTHER #define SupportDDR ("SupportDDR")//是否支持DDR YES or NO #define OperationMode ("OperationMode")//动态探测器ApplicationMode #define ExamType ("ExamType")//动态探测器的触发模式 8-外触发 9-内触发 #define ExiThreshold ("ExiThreshold")//EXI阈值大于该阈值认为图像有效 //--------- AttributeDescription -----------// #define AttributeDescription ("Description") #define AttributeType ("Type")// "int" "float" "string" ... #define AttributeAccess ("Access") // value is "R" or "RW" #define AttributeRangeMin ("RangeMin")// pariring RangeMax. 与List互斥 #define AttributeRangeMax ("RangeMax") // pairing RangeMin. 与List互斥 #define AttributeList ("List")//("0","ListNum0") ("1","ListNum1") ("2","ListNum2") ("3","ListNum3") ("4","ListNum4") #define AttributeRequired ("Required") // value is "TRUE" or "FALSE" #define AttributeDefaultValue ("DefaultValue") //------------------------Ccos Configuration UI 相关----------------------------------------------------END //------------------------Ccos Other Configuration----------------------------------------BEGIN constexpr auto DetectorLogPath = R"(\OEMDrivers\Detector\Conf\Log4CPP.Config.FPD.xml)"; //log的配置文件路径 //------------------------Ccos Other Configuration------------------------------------------END //保存过程图 typedef enum _Ccos_SaveRawDataMode { CCOS_NO_SAVE_RAW, CCOS_SAVE_ORIGINAL, CCOS_SAVE_AFTER_CROP, CCOS_SAVE_AFTER_CALIB, CCOS_SAVE_AFTER_GRID_SUPPRESSION, //GridSuppression CCOS_SAVE_ALL, CCOS_SAVE_MODE_MAX } CCOS_SAVE_RAW_DATA_MODE;