Detector_Model_Def.h 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464
  1. #pragma once
  2. // 下列 ifdef 块是创建使从 DLL 导出更简单的
  3. // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 DETECTOR_MODEL_DEF_EXPORTS
  4. // 符号编译的。在使用此 DLL 的
  5. // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
  6. // DETECTOR_MODEL_DEF_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
  7. // 符号视为是被导出的。
  8. #define OEM_IF
  9. #define OEM_NOTIFY
  10. #define MAX_STRING 1024
  11. static const char* IMAGE_DEADLINE_TOP = "DeadLineTop";
  12. static const char* IMAGE_DEADLINE_LEFT = "DeadLineLeft";
  13. static const char* IMAGE_DEADLINE_RIGHT = "DeadLineRight";
  14. static const char* IMAGE_DEADLINE_BOTTOM = "DeadLineBottom";
  15. typedef enum _Packet_Cmd {
  16. PACKET_CMD_NONE = -1,
  17. PACKET_CMD_OPEN,
  18. PACKET_CMD_CLOSE,
  19. PACKET_CMD_GET,
  20. PACKET_CMD_UPDATE,
  21. PACKET_CMD_ADD,
  22. PACKET_CMD_DEL,
  23. PACKET_CMD_EXE,
  24. PACKET_CMD_DATA,
  25. PACKET_CMD_MSG,
  26. PACKET_CMD_ONLINE,//设备掉线后重新注册到Root
  27. PACKET_CMD_MAX
  28. }PACKET_CMD;
  29. //属性Action
  30. typedef enum _AttrAction{
  31. ATTRACTION_GET,
  32. ATTRACTION_SET,
  33. ATTRACTION_ADD,
  34. ATTRACTION_DEL,
  35. ATTRACTION_UPDATE,
  36. ATTRACTION_DATA,
  37. ATTRACTION_MSG,
  38. ATTRACTION_MAX
  39. }ATTRACTION;
  40. //
  41. //typedef enum _Ret_Status {
  42. // RET_THREAD_INVALID = -4,//the calling thread is not owner
  43. // RET_INVALID = -3,//the handle is invalid
  44. // RET_NOSUPPORT = -2,//device not support
  45. // RET_TIMEOUT = -1,//超时(无接收命令)
  46. // RET_FAILED = 0,//执行命令失败
  47. // RET_PENDING,//设备有接收命令,但无反馈(在一定时间内无反馈情况)
  48. // RET_SUCCEED,//设备执行命令成功
  49. // RET_ONGOING,//设备执行命令已经完成,但是没有达成目标.
  50. // RET_FINISHED,//设备执行命令已经完成,且有达成目标.
  51. // RET_WARNING
  52. //}RET_STATUS;
  53. typedef enum ECOM_FPD_State
  54. {
  55. ECOM_FPD_STATE_NOT_INI = 0,
  56. ECOM_FPD_STATE_ERR,
  57. ECOM_FPD_STATE_STANDBY,
  58. ECOM_FPD_STATE_PREPARE,
  59. ECOM_FPD_STATE_READY,
  60. ECOM_FPD_STATE_SLEEP,
  61. ECOM_FPD_STATE_SHUTDOWN,
  62. ECOM_FPD_STATE_EXIT
  63. }ECOM_FPD_STATE;
  64. //------------------------采集命令相关----------------------------------------------------BEGIN
  65. #define DiosExpireAcqCmd ("ExpireAcqCmd")
  66. typedef enum _Dios_Expire_Acq_Cmd
  67. {
  68. DIOS_EXPIRE_ACQ_ON,
  69. DIOS_EXPIRE_ACQ_OFF,
  70. DIOS_EXPIRE_ACQ_MAX
  71. }EXPIRE_ACQ_CMD;
  72. //------------------------采集命令相关----------------------------------------------------END
  73. //------------------------手闸相关----------------------------------------------------BEGIN
  74. //因为现在没有发生器的模型定义,所以先把手闸相关的定义放到此处
  75. #define DiosGeneratorSwitch ("GENERATORHSWITCH")
  76. typedef enum _Dios_Generator_Switch
  77. {
  78. GENERATOR_SWITCH_OFF,
  79. GENERATOR_SWITCH_PREPARE,
  80. GENERATOR_SWITCH_EXP,
  81. GENERATOR_SWITCH_MAX
  82. }GENERATOR_SWITCH;
  83. //------------------------手闸相关----------------------------------------------------END
  84. //------------------------Status相关----------------------------------------------------BEGIN
  85. #define DiosDetectorExpectOp ("DetectorExpectOp")
  86. typedef enum _Dios_Detector_ExpectOp
  87. {
  88. DETECTOR_EXPECT_NONE,
  89. DETECTOR_EXPECT_ACQ,
  90. DETECTOR_EXPECT_STOP,
  91. DETECTOR_EXPECT_MAX
  92. }DETECTOR_EXPECTOP;
  93. #define DiosDetectorWorkStatus ("DetectorWorkStatus")
  94. typedef enum _Dios_Detector_WorkStatus
  95. {
  96. DETECTOR_WORK_ACQUIRE,
  97. DETECTOR_WORK_CALIBRATE,
  98. DETECTOR_WORK_MAX
  99. }DETECTOR_WORK_STATUS;
  100. #define DiosDetectorStatus ("DetectorStatus")
  101. typedef enum _Dios_Detector_Status
  102. {
  103. DETECTOR_STATUS_SHUTDOWN,
  104. DETECTOR_STATUS_INIT,
  105. DETECTOR_STATUS_SLEEP,
  106. DETECTOR_STATUS_WAKEUP,//低能耗,能工作
  107. DETECTOR_STATUS_STANDBY,//高能耗,能采集
  108. //DETECTOR_STATUS_ACQ_WAIT,//在STANDBY状态,执行ACQ Action且没到ACQ状态
  109. DETECTOR_STATUS_ACQ,
  110. //DETECTOR_STATUS_STANDBY_WAIT,//在ACQ状态,执行StopAcq Action且没到STANDBY状态
  111. DETECTOR_STATUS_ERROR,
  112. DETECTOR_STATUS_MAX
  113. }DETECTOR_STATUS;
  114. typedef enum ENUM_SHARE_EVENT_STATE_
  115. {
  116. PANEL_CONNECT_ERROR = 0,
  117. PANEL_ATTACH_START = 1,
  118. PANEL_CONNECT_OK = 2,
  119. PANEL_DISCONNECT_SUCCESS = 3,
  120. PANEL_DISCONNECT_ERROR = 4,
  121. PANEL_ATTACH_OVER = 5,
  122. PANEL_ATTACH_FAILED = 6,
  123. PANEL_ATTACH_NULL = 7,
  124. PANEL_ATTACH_FAILED_WITH_IMG = 8,
  125. }DETECTOR_SHARE_STATUS;
  126. #define DiosEcomFPDState ("EcomFPDState")
  127. #define DiosDetectorAttach ("DetectorAttach")
  128. #define DiosDetectorAttachedFlag ("FPDAttached")
  129. #define DiosDetectorConnectStatus ("DetectorConnectStatus")
  130. typedef enum _Dios_Detector_Connect_Status
  131. {
  132. DETECTOR_CONNECT_ERROR = 0,
  133. DETECTOR_ATTACH_START = 1,
  134. DETECTOR_CONNECT_OK = 2,
  135. DETECTOR_DISCONNECT_SUCCESS = 3,
  136. DETECTOR_DISCONNECT_ERROR = 4,
  137. DETECTOR_ATTACH_OVER = 5,
  138. DETECTOR_ATTACH_FAILED = 6,
  139. DETECTOR_ATTACH_NULL = 7,
  140. DETECTOR_CONNECT_MAX
  141. }DETECTOR_CONNECT_STATUS;
  142. #define DiosDetectorInitialStatus ("DetectorInitialStatus")
  143. typedef enum _Dios_Detector_Ini_Status
  144. {
  145. DETECTOR_INI_START = 0,
  146. DETECTOR_INI_SUCCESS = 1,
  147. DETECTOR_INI_FAILED = 2,
  148. DETECTOR_INI_MAX
  149. }DETECTOR_INI_STATUS;
  150. #define DiosDetectorUpdateFWStatus ("DetectorUpdateFWStatus")
  151. typedef enum _Dios_Detector_UFW_Status
  152. {
  153. DETECTOR_UFW_ERROR = 0,
  154. DETECTOR_UFW_SUCCESS = 1,
  155. DETECTOR_UFW_START = 2,
  156. DETECTOR_UFW_ERROR_BATTERY = 3,
  157. DETECTOR_UFW_MAX
  158. }DETECTOR_UFW_STATUS;
  159. //------------------------Status相关----------------------------------------------------END
  160. //------------------------IMAGE相关----------------------------------------------------BEGIN
  161. typedef enum Image_View_Type
  162. {
  163. IMAGE_FULL = 0,
  164. IMAGE_PREVIEW,
  165. IMAGE_AEC_PREVIEW,
  166. IMAGE_CAL
  167. }IMAGE_VIEW_TYPE;
  168. #define DiosImageInfo ("ImageInfo")
  169. #define DiosImageFul ("ImageFull")
  170. #define DiosImagePrev ("ImagePrev")
  171. typedef enum Xray_Image_Type
  172. {
  173. XRAY_IMAGE_DARK = 0,
  174. XRAY_IMAGE_XRAYED,
  175. XRAY_IMAGE_ANY,
  176. XRAY_IMAGE_MAX
  177. }XRAY_IMAGE_TYPE;
  178. //图像类型:IMAGE_VIEW_TYPE
  179. //图像类型Support:Yes,No
  180. //用例 : fullimage+yes/no,previmage+yes/no
  181. #define DiosImageType ("ImageType")
  182. #define DiosImageViewType ("ImageViewType")
  183. #define DiosImageViewTypeSupprt ("ImageViewTypeSupprt")
  184. #define DiosImageHeight ("ImageHeight")
  185. #define DiosImageWidth ("ImageWidth")
  186. #define DiosImageBits ("ImageBits")
  187. #define DiosImageBlockSize ("ImageBlockSize")
  188. #define DiosImagePixelSpacing ("ImagePixelSpacing")
  189. #define DiosImageFPDCoef ("FPDCoef")
  190. #define DiosImageTargetEXI ("TargetEXI")
  191. #define DiosImageLeftTrim ("ImageLeftTrim")
  192. #define DiosImageRightTrim ("ImageRightTrim")
  193. #define DiosImageTopTrim ("ImageTopTrim")
  194. #define DiosImageBottomTrim ("ImageBottomTrim")
  195. #define DiosImageReady ("ImageReady")
  196. #define DiosImageFetchFlag ("ImageFetchFlag")
  197. //------------------------AcqMode相关----------------------------------------------------BEGIN
  198. /*
  199. 关于AcqModeName:
  200. 用3个关键字描述,High(Low)Resolution,High(Low)FrameRate,High(Low)Dose.
  201. 一般情况HighResolution,必跟LowFrameRate,增益可以二选一High(Low)Dose.
  202. 一般情况LowResolution,跟HighFrameRate,增益LowDose.
  203. 其他情况,自行脑补...
  204. 策略上尽量都保持High最好,优先级 HighResolution > LowDose > HighFrameRate
  205. */
  206. #define DiosAcqModeName ("AcqModeName")
  207. //------------------------Seq相关----------------------------------------------------BEGIN
  208. //#define XwindowTitle ("XWINDOW")
  209. #define DiosXwindowSize ("XwindowSize")
  210. #define DiosXwindowStatus ("XwindowStatus")
  211. typedef enum _Xwindow_Status {
  212. XWINDOW_OFF,
  213. XWINDOW_ON,
  214. XWINDOW_MAX
  215. }XWINDOW_STATUS;
  216. #define DiosSyncMode ("SyncMode")
  217. typedef enum _Sync_Mode {
  218. SYNC_MANUAL = 0,
  219. SYNC_SOFTWARE = 1,
  220. SYNC_HARDWARE = 2, //带ECOM同步盒的硬同步
  221. SYNC_AED = 3,
  222. SYNC_HARDWARE_DIRECT = 4, //探测器、发生器直连的硬同步
  223. SYNC_MAX = 5
  224. }SYNC_MODE;
  225. #define DiosHardwareTriggerMode ("HardwareTriggerMode")
  226. typedef enum _Hardware_Trigger_Mode {
  227. HW_TRIGGER_NONE = 0,
  228. HW_TRIGGER_INTERNAL = 1,
  229. HW_TRIGGER_EXTERNAL = 2,
  230. HW_TRIGGER_MAX = 3
  231. }HARDWARE_TRIGGER_MODE;
  232. #define DiosImageReadingStatus ("ImageReadingStatus") //addbyys20200410 曝光过程中探测器反馈的有图像的状态。
  233. //目前用于涛影项目,缩短第一二两次曝光的时间间隔
  234. #define DiosFPDReadyStatus ("FPDReadyStatus") //addbyys20200526 探测器采集Ready的状态。
  235. //目前用于涛影项目,拼接检查第一帧完毕后发这个消息告知子系统探测器状态
  236. //------------------------Seq相关----------------------------------------------------END
  237. #define DiosFrameRate ("FrameRate")
  238. #define DiosDoseRange ("DoseRange")
  239. #define DiosSensitivity ("Sensitivity")
  240. #define AcqModeListTitle ("AcqModeList")
  241. #define DiosAcqModeIdx ("AcqModeIdx")
  242. #define DiosLoopCount ("LoopCount")
  243. typedef enum _TYPE_LOOPCOUNT
  244. {
  245. TYPE_LOOP_INFINITE = -1,
  246. TYPE_LOOP_NONE = 0,
  247. TYPE_LOOP_ONE = 1,
  248. TYPE_LOOP_TWO = 2,
  249. TYPE_LOOP_THREE = 3,
  250. //...
  251. }TYPE_LOOPCOUNT;
  252. #define DiosCorrStrategy ("CorrStrategy")
  253. /*
  254. 校正策略:
  255. 高2位Byte用于FrameCount : 1 --- 16
  256. 低2位Byte用于FrameType(16BIT) : 0代表Dark,1代表Xray
  257. 例:
  258. 低 -------------> 高
  259. 0x00030004, 0010 0000 ... 1100 0000 ...
  260. FrameCount3,FrameType DDX
  261. 采集3张,头两张为Dark,第三张为Xray.
  262. */
  263. #define DiosFPDCurExamModeKey ("CurExamMode")
  264. //------------------------AcqMode相关----------------------------------------------------END
  265. #define DiosBinningX ("BinningX")
  266. #define DiosBinningY ("BinningY")
  267. //------------------------CalibrationInfo相关----------------------------------------------------BEGIN
  268. #define DiosGainTitle ("GAIN")
  269. #define CalibrationInfo ("CalibrationInfo")
  270. #define CalibrationType ("CalibrationType")
  271. #define ValidCorrectionMap ("ValidCorrectionMap")
  272. #define CorrectionType ("CorrectionType")
  273. #define CorrectionFlag ("CorrectionFlag")
  274. #define DarkMapEffectiveTime ("DarkMapEffectiveTime")
  275. #define XrayMapEffectiveTime ("XrayMapEffectiveTime")
  276. #define RequestedFrameRate ("RequestedFrameRate")
  277. #define RequestedDose ("RequestedDose")
  278. //#define CalibrationStatus ("CalibrationStatus")
  279. //#define CalibrationFrameFetchFlag ("CalibrationFrameFetchFlag")
  280. //#define CalibrationProgress ("CalibrationProgress")
  281. #define AutoDarkCalibrationStatus ("AutoDarkCalibrationStatus")
  282. typedef enum _Dios_AutoDarkCalibration_Status {
  283. DIOS_AUTODARKCALIBRATION_STATUS_START,
  284. DIOS_AUTODARKCALIBRATION_STATUS_END,
  285. DIOS_AUTODARKCALIBRATION_STATUS_MAX
  286. }DIOS_AUTODARKCALIBRATION_STATUS;
  287. typedef enum _Dios_Calibration_Type {
  288. DIOS_CALIBRATION_TYPE_NONE,
  289. DIOS_CALIBRATION_TYPE_DARK,
  290. DIOS_CALIBRATION_TYPE_XRAY,
  291. DIOS_CALIBRATION_TYPE_MAX
  292. }DIOS_CALIBRATION_TYPE;
  293. typedef enum _Dios_Correction_Type {
  294. DIOS_CORRECTION_OP_NONE,
  295. DIOS_CORRECTION_OP_OFFSET,
  296. DIOS_CORRECTION_OP_GAIN,
  297. DIOS_CORRECTION_OP_DEFECT = 4,
  298. DIOS_CORRECTION_OP_GATELINE = 8,
  299. DIOS_CORRECTION_OP_DARK_NONE = 16,
  300. DIOS_CORRECTION_OP_DARK_OFFSET = 32,
  301. DIOS_CORRECTION_OP_DARK_GAIN = 64,
  302. DIOS_CORRECTION_OP_DARK_DEFECT = 128,
  303. DIOS_CORRECTION_OP_DARK_GATELINE = 256,
  304. DIOS_CORRECTION_OP_MAX
  305. }DIOS_CORRECTION_TYPE;
  306. typedef enum _Dios_Calibration_Status {
  307. DIOS_CALIBRATION_STATUS_ERROR,
  308. DIOS_CALIBRATION_STATUS_STANDBY,
  309. DIOS_CALIBRATION_STATUS_ACTIVE,
  310. DIOS_CALIBRATION_STATUS_RUNNING,
  311. DIOS_CALIBRATION_STATUS_PAUSE,
  312. DIOS_CALIBRATION_STATUS_PREPARE,
  313. DIOS_CALIBRATION_STATUS_MAX
  314. }DIOS_CALIBRATION_STATUS;
  315. /*
  316. 状态变迁:
  317. --------------------------------------------
  318. ↓ ↑
  319. Standby --Active--> (Active) --StartCali--> Running ------> (Pause)
  320. ↑ ↓
  321. ----------------------------
  322. */
  323. typedef enum _Dios_Calibration_FrameFetch {
  324. DIOS_CALIBRATION_FRAMEFETCH_NONE,
  325. DIOS_CALIBRATION_FRAMEFETCH_ONLY,
  326. DIOS_CALIBRATION_FRAMEFETCH_CONFIRM,
  327. DIOS_CALIBRATION_FRAMEFETCH_MAX
  328. }DIOS_CALIBRATION_FRAMEFETCH;
  329. //------------------------Dios Configuration UI 相关----------------------------------------------------BEGIN
  330. //--------- Attribute -----------//
  331. #define DetectorAttribute ("Attribute")
  332. #define DetectorVender ("DetectorVender")
  333. #define DetectorModel ("DetectorModel")
  334. #define DetectorDescription ("Description")
  335. #define DetectorSerialNumber ("SerialNumber")
  336. #define WiredIP ("WiredIP")
  337. #define WirelessIP ("WirelessIP")
  338. #define LocalIP ("LocalIP")
  339. #define SyncType ("SyncType")
  340. #define FPDWorkStation ("WorkStation") //table wall free share
  341. #define ReConnect ("ReConnect") //从IsConnect改为ReConnect,避免和其它模块定义冲突
  342. #define ImageFullWidth ("ImageFullWidth")
  343. #define ImageFullHeight ("ImageFullHeight")
  344. #define TempMaxLimit ("TempMaxLimit") //温度上限,禁止曝光
  345. #define TempUpperLimit ("TempUpperLimit") //温度高阈值,警告
  346. #define TempLowerLimit ("TempLowerLimit") //温度低阈值,警告
  347. #define TempMinLimit ("TempMinLimit") //温度下限,禁止曝光
  348. #define BatLowerLimit ("BatLowerLimit") //电量低阈值,警告
  349. #define BatMiniLimit ("BatMiniLimit") //电量下限,禁止曝光
  350. #define BatLowerLimitInCali ("BatLowerLimitInCali") //校正时电量低阈值,警告
  351. #define WifiLowerLimit ("WifiLowerLimit")
  352. #define WifiMiniLimit ("WifiMiniLimit")
  353. #define HighPowerTimeout ("HighPowerTimeout") //长时间未曝光休眠
  354. #define ImageSizeX ("ImageSizeX") //图像有效宽度
  355. #define ImageSizeY ("ImageSizeY") //图像有效高度
  356. #define ImageWidth ("ImageWidth") //图像有效宽度
  357. #define ImageHeight ("ImageHeight") //图像有效高度
  358. #define ShowTemperature ("ShowTemperature") //是否显示温度
  359. #define ShowWifi ("ShowWifi") //是否显示wifi
  360. #define ShowBattery ("ShowBattery") //是否显示电量
  361. #define ShowBluetooth ("ShowBluetooth") //是否显示蓝牙
  362. #define FPDExamMode ("FPDExamMode") //应用检查模式 101、102、201、301、302...
  363. #define FPDAcqMode ("FPDAcqMode") //探测器的采集模式
  364. #define FPDModeMatch ("FPDModeMatch") //检查模式和采集模式的对应关系
  365. //--------- AttributeDescription -----------//
  366. #define AttributeDescription ("Description")
  367. #define AttributeType ("Type")// "int" "float" "string" ...
  368. #define AttributeAccess ("Access") // value is "R" or "RW"
  369. #define AttributeRangeMin ("RangeMin")// pariring RangeMax. 与List互斥
  370. #define AttributeRangeMax ("RangeMax") // pairing RangeMin. 与List互斥
  371. #define AttributeList ("List")//("0","ListNum0") ("1","ListNum1") ("2","ListNum2") ("3","ListNum3") ("4","ListNum4")
  372. #define AttributeRequired ("Required") // value is "TRUE" or "FALSE"
  373. #define AttributeDefaultValue ("DefaultValue")
  374. //------------------------Dios Configuration UI 相关----------------------------------------------------END