#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 ECOM_FPD_State { ECOM_FPD_STATE_NOT_INI = 0, ECOM_FPD_STATE_ERR, ECOM_FPD_STATE_STANDBY, ECOM_FPD_STATE_PREPARE, ECOM_FPD_STATE_READY, ECOM_FPD_STATE_SLEEP, ECOM_FPD_STATE_SHUTDOWN, ECOM_FPD_STATE_EXIT }ECOM_FPD_STATE; //------------------------采集命令相关----------------------------------------------------BEGIN #define DiosExpireAcqCmd ("ExpireAcqCmd") typedef enum _Dios_Expire_Acq_Cmd { DIOS_EXPIRE_ACQ_ON, DIOS_EXPIRE_ACQ_OFF, DIOS_EXPIRE_ACQ_MAX }EXPIRE_ACQ_CMD; //------------------------采集命令相关----------------------------------------------------END //------------------------手闸相关----------------------------------------------------BEGIN //因为现在没有发生器的模型定义,所以先把手闸相关的定义放到此处 #define DiosGeneratorSwitch ("GENERATORHSWITCH") typedef enum _Dios_Generator_Switch { GENERATOR_SWITCH_OFF, GENERATOR_SWITCH_PREPARE, GENERATOR_SWITCH_EXP, GENERATOR_SWITCH_MAX }GENERATOR_SWITCH; //------------------------手闸相关----------------------------------------------------END //------------------------Status相关----------------------------------------------------BEGIN #define DiosDetectorExpectOp ("DetectorExpectOp") typedef enum _Dios_Detector_ExpectOp { DETECTOR_EXPECT_NONE, DETECTOR_EXPECT_ACQ, DETECTOR_EXPECT_STOP, DETECTOR_EXPECT_MAX }DETECTOR_EXPECTOP; #define DiosDetectorWorkStatus ("DetectorWorkStatus") typedef enum _Dios_Detector_WorkStatus { DETECTOR_WORK_ACQUIRE, DETECTOR_WORK_CALIBRATE, DETECTOR_WORK_MAX }DETECTOR_WORK_STATUS; #define DiosDetectorStatus ("DetectorStatus") typedef enum _Dios_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 DiosEcomFPDState ("EcomFPDState") #define DiosDetectorAttach ("DetectorAttach") #define DiosDetectorAttachedFlag ("FPDAttached") #define DiosDetectorConnectStatus ("DetectorConnectStatus") typedef enum _Dios_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 DiosDetectorInitialStatus ("DetectorInitialStatus") typedef enum _Dios_Detector_Ini_Status { DETECTOR_INI_START = 0, DETECTOR_INI_SUCCESS = 1, DETECTOR_INI_FAILED = 2, DETECTOR_INI_MAX }DETECTOR_INI_STATUS; #define DiosDetectorUpdateFWStatus ("DetectorUpdateFWStatus") typedef enum _Dios_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 DiosImageInfo ("ImageInfo") #define DiosImageFul ("ImageFull") #define DiosImagePrev ("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 DiosImageType ("ImageType") #define DiosImageViewType ("ImageViewType") #define DiosImageViewTypeSupprt ("ImageViewTypeSupprt") #define DiosImageHeight ("ImageHeight") #define DiosImageWidth ("ImageWidth") #define DiosImageBits ("ImageBits") #define DiosImageBlockSize ("ImageBlockSize") #define DiosImagePixelSpacing ("ImagePixelSpacing") #define DiosImageFPDSensitivity ("FPDSensitivity") #define DiosImageTargetEXI ("TargetEXI") #define DiosImageLeftTrim ("ImageLeftTrim") #define DiosImageRightTrim ("ImageRightTrim") #define DiosImageTopTrim ("ImageTopTrim") #define DiosImageBottomTrim ("ImageBottomTrim") #define DiosImageReady ("ImageReady") #define DiosImageFetchFlag ("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 DiosAcqModeName ("AcqModeName") //DROC中AcqMode 1-RAD 2-TOMO 3-DDR //DMOC中AcqMode 1-RAD 2-AEC Preview //DFOC中AcqMode 1-RAD 2- 3-CF 4-PF #define DiosAcqMode ("AcqMode") //采集模式 //------------------------Seq相关----------------------------------------------------BEGIN //#define XwindowTitle ("XWINDOW") #define DiosXwindowSize ("XwindowSize") #define DiosXwindowStatus ("XwindowStatus") typedef enum _Xwindow_Status { XWINDOW_OFF, XWINDOW_ON, XWINDOW_MAX }XWINDOW_STATUS; #define DiosSyncMode ("SyncMode") typedef enum _Sync_Mode { SYNC_MANUAL = 0, SYNC_SOFTWARE = 1, SYNC_HARDWARE = 2, //带ECOM同步盒的硬同步 SYNC_AED = 3, SYNC_HARDWARE_DIRECT = 4, //探测器、发生器直连的硬同步 SYNC_MAX = 5, }SYNC_MODE; #define DiosHardwareTriggerMode ("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 DiosImageReadingStatus ("ImageReadingStatus") //addbyys20200410 曝光过程中探测器反馈的有图像的状态。 //目前用于涛影项目,缩短第一二两次曝光的时间间隔 #define DiosFPDReadyStatus ("FPDReadyStatus") //addbyys20200526 探测器采集Ready的状态。 //目前用于涛影项目,拼接检查第一帧完毕后发这个消息告知子系统探测器状态 //------------------------Seq相关----------------------------------------------------END #define DiosFrameRate ("FrameRate") #define DiosDoseRange ("DoseRange") #define DiosSensitivity ("Sensitivity") #define AcqModeListTitle ("AcqModeList") #define DiosAcqModeIdx ("AcqModeIdx") #define DiosLoopCount ("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 DiosCorrStrategy ("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 DiosFPDCurExamModeKey ("CurExamMode") //------------------------AcqMode相关----------------------------------------------------END #define DiosBinningX ("BinningX") #define DiosBinningY ("BinningY") #define DiosZoomX1 ("ZOOMX1") #define DiosZoomY1 ("ZOOMY1") #define DiosZoomX2 ("ZOOMX2") #define DiosZoomY2 ("ZOOMY2") //------------------------CalibrationInfo相关----------------------------------------------------BEGIN #define DiosGainTitle ("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 _Dios_Calibration_Mode { DIOS_CALIBRATION_MODE_ECOM = 0, DIOS_CALIBRATION_MODE_OEM = 1, DIOS_CALIBRATION_MODE_MAX } DIOS_CALIBRATION_MODE; typedef enum _Dios_AutoDarkCalibration_Status { DIOS_AUTODARKCALIBRATION_STATUS_START, DIOS_AUTODARKCALIBRATION_STATUS_END, DIOS_AUTODARKCALIBRATION_STATUS_MAX }DIOS_AUTODARKCALIBRATION_STATUS; typedef enum _Dios_Calibration_Type { DIOS_CALIBRATION_TYPE_NONE, DIOS_CALIBRATION_TYPE_DARK, DIOS_CALIBRATION_TYPE_XRAY, DIOS_CALIBRATION_TYPE_MAX }DIOS_CALIBRATION_TYPE; typedef enum _Dios_Correction_Type { DIOS_CORRECTION_OP_NONE, DIOS_CORRECTION_OP_OFFSET, DIOS_CORRECTION_OP_GAIN, DIOS_CORRECTION_OP_DEFECT = 4, DIOS_CORRECTION_OP_GATELINE = 8, DIOS_CORRECTION_OP_DARK_NONE = 16, DIOS_CORRECTION_OP_DARK_OFFSET = 32, DIOS_CORRECTION_OP_DARK_GAIN = 64, DIOS_CORRECTION_OP_DARK_DEFECT = 128, DIOS_CORRECTION_OP_DARK_GATELINE = 256, DIOS_CORRECTION_OP_MAX }DIOS_CORRECTION_TYPE; typedef enum _Dios_Calibration_Status { DIOS_CALIBRATION_STATUS_ERROR, DIOS_CALIBRATION_STATUS_STANDBY, DIOS_CALIBRATION_STATUS_ACTIVE, DIOS_CALIBRATION_STATUS_RUNNING, DIOS_CALIBRATION_STATUS_PAUSE, DIOS_CALIBRATION_STATUS_PREPARE, DIOS_CALIBRATION_STATUS_BESTOPPED, DIOS_CALIBRATION_STATUS_MAX }DIOS_CALIBRATION_STATUS; /* 状态变迁: -------------------------------------------- ↓ ↑ Standby --Active--> (Active) --StartCali--> Running ------> (Pause) ↑ ↓ ---------------------------- */ typedef enum _Dios_Calibration_FrameFetch { DIOS_CALIBRATION_FRAMEFETCH_NONE, DIOS_CALIBRATION_FRAMEFETCH_ONLY, DIOS_CALIBRATION_FRAMEFETCH_CONFIRM, DIOS_CALIBRATION_FRAMEFETCH_MAX }DIOS_CALIBRATION_FRAMEFETCH; //------------------------Dios 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 TemperatureCalibUpWarn ("TemperatureCalibUpWarn") //校正时温度高阈值,警告 #define TemperatureCalibLowWarn ("TemperatureCalibLowWarn") //校正时温度低阈值,警告 #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 WidthOffset ("WidthOffset") //图像左侧裁剪长度 #define HeightOffset ("HeightOffset") //图像上方裁剪长度 #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 SupportDDR ("SupportDDR")//是否支持DDR YES or NO #define OperationMode ("OperationMode")//动态探测器ApplicationMode #define ExamType ("ExamType")//动态探测器的触发模式 8-外触发 9-内触发 #define ExiThreshold ("ExiThreshold")//EXI阈值大于该阈值认为图像有效 #define IsSaveRaw ("IsSaveRaw")//保存图像的级别 0-不保存 1-保存校正前 2-保存校正后 3-都保存 //--------- 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") //------------------------Dios Configuration UI 相关----------------------------------------------------END //------------------------Dios Other Configuration----------------------------------------BEGIN constexpr auto DetectorLogPath = R"(\OEMDrivers\Detector\Conf\Log4CPP.Config.FPD.xml)"; //log的配置文件路径 //------------------------Dios Other Configuration------------------------------------------END //保存过程图 typedef enum _Dios_SaveRawDataMode { DIOS_NO_SAVE_RAW, DIOS_SAVE_ORIGINAL, DIOS_SAVE_AFTER_CROP, DIOS_SAVE_AFTER_CALIB, DIOS_SAVE_AFTER_GRID_SUPPRESSION, //GridSuppression DIOS_SAVE_ALL, DIOS_SAVE_MODE_MAX } DIOS_SAVE_RAW_DATA_MODE; //-------------------------机架相关 临时方案---------------------------------------------------------------- #define SID ("SID")// Distance Source To Detector #define SOD ("SOD")// Distance Source To Patient #define AmplificationFactor ("AmplificationFactor")//放大因子 = SID/(SOD-20) struct AcqModeInfo { int nModeID; float fFrequency; };