DiosMouldGenerator_V3.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462
  1. #pragma once
  2. #define GeneratorDriverType "{18FDF176-DECE-445F-A52C-A14BDD3AC2C1}"
  3. #define GeneratorUnitType "{123492D6-A546-4ACF-8EF1-2CCAA9EA974E}"
  4. namespace DiosAttrKey
  5. {
  6. //设备
  7. static const char* TUBEINFO = "TubeInfo"; //球管信息
  8. static const char* TUBETARGETMATERIAL = "TubeTargetMaterial"; //球管靶材
  9. namespace TYPE {
  10. static const char* MO = "MO";
  11. static const char* RH = "RH";
  12. }
  13. static const char* TUBEANGLE = "TubeAngle"; //球馆角度
  14. static const char* TUBEHEAT = "TUBEHEAT"; //球管热容
  15. static const char* DENHEAT = "GENHEAT"; //发生器温度
  16. static const char* BATTERYCHARGESTATE = "BatteryChargeState"; //电池充电状态
  17. enum CHARGE_SYNC {
  18. CHARGE_STATUS_OFF,
  19. CHARGE_STATUS_CHARGING,
  20. CHARGE_STATUS_FINISH,
  21. CHARGE_STATUS_MAX
  22. };
  23. static const char* BATTERYPOWERSTATE = "BatteryPowerState"; //电池电量状态
  24. static const char* GENSYNSTATE = "GENERATORSYNCSTATE"; //发生器曝光流程状态
  25. enum GENERATOR_SYNC {
  26. GENERATOR_SYNC_ERR = -1,
  27. GENERATOR_RAD_OFF,
  28. GENERATOR_RAD_PREPARE,
  29. GENERATOR_RAD_READY,
  30. GENERATOR_RAD_XRAYON,
  31. GENERATOR_RAD_XRAYOFF,
  32. GENERATOR_FLU_OFF,
  33. GENERATOR_FLU_READY,
  34. GENERATOR_FLU_XRAYON,
  35. GENERATOR_FLU_XRAYOFF,
  36. GENERATOR_FLU_CINE_READY,
  37. GENERATOR_SYNC_MAX
  38. };
  39. static const char* GENSTATE = "GENERATORSTATUS"; //发生器设备状态
  40. enum GENERATOR_STATUS {
  41. GENERATOR_STATUS_SHUTDOWN,
  42. GENERATOR_STATUS_INIT,
  43. GENERATOR_STATUS_SLEEP,
  44. GENERATOR_STATUS_CHARGING,//充电
  45. GENERATOR_STATUS_STANDBY,
  46. GENERATOR_STATUS_EXP,
  47. GENERATOR_STATUS_ERROR,
  48. GENERATOR_STATUS_CALIBRATION,
  49. GENERATOR_STATUS_SERVICE,
  50. GENERATOR_STATUS_MAX
  51. };
  52. static const char* GENHANDSWITCH = "HANDSWITCHSTATE"; //手闸状态
  53. enum HANDSWITCH_STATUS {
  54. HANDSWITCH_STATUS_Release,
  55. HANDSWITCH_STATUS_Hold,
  56. HANDSWITCH_STATUS_Press,
  57. HANDSWITCH_STATUS_MAX
  58. };
  59. static const char* GENFOOTSWITCH = "FOOTSWITCHSTATE"; //脚闸状态
  60. enum FOOTSWITCH_STATUS {
  61. FOOTSWITCH_STATUS_Release,
  62. FOOTSWITCH_STATUS_Press,
  63. FOOTSWITCH_STATUS_MAX
  64. };
  65. //点片
  66. static const char* RADKV = "KV"; //阳极电压
  67. static const char* RADMA = "MA"; //球管电流
  68. static const char* RADMS = "MS"; //管电流
  69. static const char* RADMAS = "MAS"; //电流时间积
  70. static const char* RADFOCUS = "FOCUS"; //灯丝/焦点
  71. enum FOCUS_TYPE {
  72. FOCUS_SMALL,
  73. FOCUS_LARGE,
  74. FOCUS_AUTOMATIC,
  75. FOCUS_MAX
  76. };
  77. static const char* RADFOCUSSIZE = "FOCUSSIZE"; //灯丝尺寸
  78. static const char* WORKSTATION = "WORKSTATION"; //工作位
  79. enum GENWS_TYPE {
  80. TABLE = 0,
  81. WALL = 1,
  82. CONVENTIONAL = 2,
  83. MOBILE = 3,
  84. FREE_TABLE = 3,
  85. TOMO = 4,
  86. CONVENTIONAL_TABLE = 5,
  87. CONVENTIONAL_WALL = 6,
  88. FREE_WALL = 7,
  89. GENWS_MAX
  90. };
  91. static const char* RADTECHMODE = "TECHMODE"; //技术模式
  92. enum TECHMODE_V3TYPE {
  93. TECHMODE_NOAEC_3P,
  94. TECHMODE_NOAEC_2P,
  95. TECHMODE_AEC_3P,
  96. TECHMODE_AEC_2P,
  97. TECHMODE_AEC_1P,
  98. TECHMODE_AEC_ReduceMA,
  99. TECHMODE_NOAEC_MAS_MA,
  100. TECHMODE_AEC_MAS_MA,
  101. TECHMODE_MAX
  102. };
  103. enum TECHMODE_V2TYPE {
  104. ET_NONE = -1,
  105. ET_TIME = 0,
  106. ET_MAS = 1,
  107. ET_AEC = 2,
  108. ET_AEC2P = 3,
  109. ET_AEC1P = 4,
  110. ET_AECreduceMA = 5,
  111. ET_MAX
  112. };
  113. static const char* RADAECDENSITY = "AECDENSITY"; //AEC浓度
  114. static const char* RADAECFIELD = "AECFIELD"; //AEC区域
  115. static const char* RADAECFILM = "AECFILM"; //AEC底片
  116. static const char* POSTKV = "POSTKV"; //曝光时的实际电压
  117. static const char* POSTMA = "POSTMA"; //曝光时的实际电流
  118. static const char* POSTMS = "POSTMS"; //曝光时的实际时间
  119. static const char* POSTMAS = "POSTMAS"; //曝光时的实际电流时间积
  120. static const char* TOTALEXPSURENUMBER = "TotalExposureNumber"; //总曝光次数
  121. static const char* TOTALACQTIMES = "TotalAcqTimes"; //曝光累计时间
  122. static const char* TUBECOOLWAITTIME = "TubeCoolWaitTime"; //球管冷却时间
  123. static const char* TUBEOVERLOADNUMBER = "TubeOverLoadNumber"; //球管过热次数
  124. static const char* CURRENTEXPOSUREBNUMBER = "CurrentExposureNumber"; //当前曝光次数
  125. static const char* EXPMODE = "EXPMODE"; //曝光模式
  126. namespace TYPE {
  127. static const char* Single = "Single";
  128. static const char* Stitch = "Stitch";
  129. static const char* PulseSerial = "PulseSerial";
  130. static const char* CoutineSerial = "CoutineSerial";
  131. static const char* TOMO = "TOMO";
  132. }
  133. static const char* EXAMMODE = "EXAMMODE"; //检查模式
  134. namespace TYPE {
  135. static const char* MANUAL = "MANUAL"; //0
  136. static const char* SEMIAUTO = "SEMIAUTO"; //1
  137. static const char* AUTOMATIC = "AUTOMATIC"; //2
  138. static const char* AUTOFILTER = "AUTOFILTER"; //3
  139. }
  140. static const char* MODALITY = "Modality"; //?模式
  141. static const char* FRAMERATE = "FrameRate"; //帧速率(连续)
  142. static const char* REFERENCEAIRKERMA = "ReferenceAirKerma"; //?
  143. static const char* KVLIST = "KVList"; //电压取值集合
  144. static const char* MASLIST = "MASList"; //电流取值集合
  145. //透视
  146. static const char* FLUKV = "FLUKV"; //透视电压
  147. static const char* FLUMA = "FLUMA"; //透视电流
  148. static const char* FLUMS = "FLUMS"; //透视曝光时间
  149. static const char* FLUMAS = "FLUMAS"; //透视时间电流积
  150. static const char* FLUAccTime = "FLUAccTime"; //透视累计时间
  151. static const char* FLUIntTime = "FLUIntTime"; //脉冲周期时间
  152. static const char* FLUPPS = "FLUPPS"; //帧率
  153. static const char* FLUpulseWidth = "FLUpulseWidth"; //脉宽
  154. static const char* FLUMode = "FLUMode"; //透视模式
  155. enum GENERATOR_FLUMode {
  156. GENERATOR_FLMODE_NOTFLU,//非透视
  157. GENERATOR_FLMODE_CF,//连续
  158. GENERATOR_FLMODE_PF,//脉冲
  159. GENERATOR_FLMODE_HCF,//高剂量连续
  160. GENERATOR_FLMODE_HPF,//高剂量脉冲
  161. GENERATOR_FLMODE_MAX
  162. };
  163. static const char* FLUABSStatus = "FLUABSStatus"; //ABS状态
  164. enum GENERATOR_ABSStatus {
  165. GENERATOR_ABS_OFF,//关闭
  166. GENERATOR_ABS_ON_KV,//启用(KV only)
  167. GENERATOR_ABS_ON_KVMA,//启用(KV/mA)
  168. GENERATOR_ABS_MAX
  169. };
  170. static const char* FLUMag = "FLUMag"; //fluoro mag
  171. static const char* FLUDoseLevel = "FLUDoseLevel"; //剂量模式
  172. enum GENERATOR_DoseLevel {
  173. GENERATOR_DOSE_LOW,//关闭
  174. GENERATOR_DOSE_NORMAL,//启用(KV only)
  175. GENERATOR_DOSE_HIGH,//启用(KV/mA)
  176. GENERATOR_DOSE_CineLOW = 10,//关闭
  177. GENERATOR_DOSE_CineNORMAL,//启用(KV only)
  178. GENERATOR_DOSE_CineHIGH,//启用(KV/mA)
  179. GENERATOR_DOSE_MAX
  180. };
  181. static const char* FLUCurve = "FLUCurve"; //ABS曲线
  182. static const char* FLUCineKV = "FLUCineKV"; //Cine电压
  183. static const char* FLUCineMA = "FLUCineMA"; //Cine电流
  184. static const char* FLUCineMS = "FLUCineMS"; //Cine曝光时间
  185. enum UNIT_REGULATION_LEVEL { //故障等级
  186. REG_ERRO,
  187. REG_WARN
  188. };
  189. enum UNIT_CHARGE_STATE { //电池状态
  190. POWER_LOW,
  191. POWER_NOR
  192. };
  193. enum UNIT_CTRL_TYPE { //交互方式
  194. CTRL_PlatformInterface,
  195. CTRL_Center,
  196. CTRL_CallBackFun
  197. };
  198. }
  199. namespace DiosActKey
  200. {
  201. //unit
  202. static const char* Query_HE = "Query_HE";
  203. static const char* SetGeneratortoSyncStatus = "SetGeneratortoSyncStatus";
  204. static const char* SetExpEnable = "SetExpEnable";
  205. static const char* SetExpDisable = "SetExpDisable";
  206. static const char* Reset = "RESET";
  207. static const char* SetTubeAngle = "SetTubeAngle";
  208. static const char* SetTubeTargetMaterial = "SetTubeTargetMaterial";
  209. //DR
  210. static const char* SetAPR = "SetAPR";
  211. static const char* IncParam_KV = "IncParam_KV";
  212. static const char* DecParam_KV = "DecParam_KV";
  213. static const char* IncParam_KVL = "IncParam_KVL";
  214. static const char* DecParam_KVL = "DecParam_KVL";
  215. static const char* SetValue_KV = "SetValue_KV";
  216. static const char* IncParam_MA = "IncParam_MA";
  217. static const char* DecParam_MA = "DecParam_MA";
  218. static const char* IncParam_MAL = "IncParam_MAL";
  219. static const char* DecParam_MAL = "DecParam_MAL";
  220. static const char* SetValue_MA = "SetValue_MA";
  221. static const char* IncParam_MS = "IncParam_MS";
  222. static const char* DecParam_MS = "DecParam_MS";
  223. static const char* IncParam_MSL = "IncParam_MSL";
  224. static const char* DecParam_MSL = "DecParam_MSL";
  225. static const char* SetValue_MS = "SetValue_MS";
  226. static const char* IncParam_MAS = "IncParam_MAS";
  227. static const char* DecParam_MAS = "DecParam_MAS";
  228. static const char* IncParam_MASL = "IncParam_MASL";
  229. static const char* DecParam_MASL = "DecParam_MASL";
  230. static const char* SetValue_MAS = "SetValue_MAS";
  231. static const char* SetValue_TECHMODE = "SetValue_TECHMODE";
  232. static const char* SetValue_FOCUS = "SetValue_FOCUS";
  233. static const char* SetValue_AECDENSITY = "SetValue_AECDENSITY";
  234. static const char* IncParam_AECDENSITY = "IncParam_AECDENSITY";
  235. static const char* DecParam_AECDENSITY = "DecParam_AECDENSITY";
  236. static const char* SetValue_AECFIELD = "SetValue_AECFIELD";
  237. static const char* SetValue_AECFILM = "SetValue_AECFILM";
  238. static const char* SetValue_WORKSTATION = "SetValue_WORKSTATION";
  239. static const char* GetValue_POSTKV = "GetValue_POSTKV";
  240. static const char* GetValue_POSTMA = "GetValue_POSTMA";
  241. static const char* GetValue_POSTMS = "GetValue_POSTMS";
  242. static const char* GetValue_POSTMAS = "GetValue_POSTMAS";
  243. static const char* SetExpMode = "SetExpMode";
  244. static const char* SetFrameRate = "SetFrameRate";
  245. static const char* SetModality = "SetModality";
  246. static const char* SetFLFMode = "SetFLFMode";
  247. static const char* SetEXAMMode = "SetEXAMMode";
  248. //FLU
  249. static const char* IncParam_FluKV = "IncParam_FluKV";
  250. static const char* DecParam_FluKV = "DecParam_FluKV";
  251. static const char* SetValue_FluKV = "SetValue_FluKV";
  252. static const char* IncParam_FluMA = "IncParam_FluMA";
  253. static const char* DecParam_FluMA = "DecParam_FluMA";
  254. static const char* SetValue_FluMA = "SetValue_FluMA";
  255. static const char* IncParam_FluMS = "IncParam_FluMS";
  256. static const char* DecParam_FluMS = "DecParam_FluMS";
  257. static const char* SetValue_FluMS = "SetValue_FluMS";
  258. static const char* IncParam_FluMAS = "IncParam_FluMAS";
  259. static const char* DecParam_FluMAS = "DecParam_FluMAS";
  260. static const char* SetValue_FluMAS = "SetValue_FluMAS";
  261. static const char* SetValue_PPS = "SetValue_PPS";
  262. static const char* GetValue_PPS = "GetValue_PPS";
  263. static const char* IncParam_PPS = "IncParam_PPS";
  264. static const char* DecParam_PPS = "DecParam_PPS";
  265. static const char* SetValue_ABSMode = "SetValue_ABSMode";
  266. static const char* GetValue_ABSCurve = "GetValue_ABSCurve";
  267. static const char* IncParam_ABSCurve = "IncParam_ABSCurve";
  268. static const char* DecParam_ABSCurve = "DecParam_ABSCurve";
  269. static const char* SetValue_APF = "SetValue_APF";
  270. static const char* GetValue_FluIntTimer = "GetValue_FluIntTimer";
  271. static const char* GetValue_FluAccTimer = "GetValue_FluAccTimer";
  272. static const char* ReSetValue_FluAccTimer = "ReSetValue_FluAccTimer";
  273. static const char* SetValue_FluPre = "SetValue_FluPre";
  274. static const char* SetValue_FluEXP = "SetValue_FluEXP";
  275. static const char* SetValue_FluMode = "SetValue_FluMode";
  276. static const char* SetValue_FluMAG = "SetValue_FluMAG";
  277. static const char* DisableMAG = "DisableMAG";
  278. static const char* SetValue_FluDoseLever = "SetValue_FluDoseLever";
  279. //other
  280. static const char* SetCollimatorLight = "SetCollimatorLight";
  281. }
  282. //-----------------------------------------------------------------------------
  283. // ConfigInfo
  284. //-----------------------------------------------------------------------------
  285. namespace DiosConfKey
  286. {
  287. static const char* DiosGeneratorType = "GeneratorVender";
  288. static const char* DiosGeneratorModel = "GeneratorModel";
  289. static const char* DiosGeneratorConfig = "DeviceConfig";
  290. static const char* DiosGeneratorAttribute = "Attribute";
  291. static const char* DiosGeneratorDescription = "Description";
  292. static const char* AttributeType = "Type";
  293. static const char* AttributeAccess = "Access";
  294. static const char* AttributeRangeMax = "RangeMax";
  295. static const char* AttributeRangeMin = "RangeMin";
  296. static const char* AttributeListNum = "ListNum";
  297. static const char* AttributeList = "List";
  298. static const char* AttributeRequired = "Required";
  299. static const char* AttributeDefaultValue = "DefaultValue";
  300. static const char* DiosSyncType = "SyncType";
  301. static const char* DiosSCFType = "SCFType";
  302. static const char* DiosSCFTCPIP = "TCPIP";
  303. static const char* DiosSCFCOM = "COM";
  304. static const char* DiosSCFIP = "ip";
  305. static const char* DiosSCFPort = "port";
  306. static const char* DiosSCFBaudrate = "baudrate";
  307. static const char* DiosSCFBytesize = "bytesize";
  308. static const char* DiosSCFParity = "parity";
  309. static const char* DiosSCFStopbits = "stopbits";
  310. static const char* DiosWSTable = "WSTable";
  311. static const char* DiosWSWall = "WSWall";
  312. static const char* DiosWSFree = "WSFree";
  313. static const char* DiosWSTomo = "WSTomo";
  314. static const char* DiosWSConventional = "WSConventional";
  315. static const char* DiosSynTable = "SYNTable";
  316. static const char* DiosSynWall = "SYNWall";
  317. static const char* DiosSynFree = "SYNFree";
  318. static const char* DiosSynTomo = "SYNTomo";
  319. static const char* DiosSynConventional = "SYNConventional";
  320. static const char* DiosConsoleRole = "ConsoleRole";
  321. static const char* DiosIsConnect = "IsConnect";
  322. //20220412 新增 <ConfigToolInfo> 以及其内部属性,主要用于webconfig
  323. static const char* DiosConfigToolInfo = "ConfigToolInfo";
  324. static const char* DiosAttributeInfo = "AttributeInfo";
  325. static const char* DiosAttributeKey = "AttributeKey";
  326. static const char* DiosAttributeDescripition = "AttributeDescripition";
  327. static const char* DiosAccess = "Access";
  328. static const char* DiosType = "Type";
  329. static const char* DiosRangeMin = "RangeMin";
  330. static const char* DiosRangeMax = "RangeMax";
  331. static const char* DiosListNum = "ListNum";
  332. static const char* DiosListInfo = "ListInfo";
  333. static const char* DiosList = "List";
  334. static const char* DiosRequired = "Required";
  335. static const char* DiosDefaultValue = "DefaultValue";
  336. static const char* DiosInnerKey = "InnerKey";
  337. static const char* DiosPathID = "PathID";
  338. //20230829 新增 满足demand574
  339. static const char* DiosTubeInfo = "TubeInfo";
  340. static const char* DiosFocusSmall = "FocusSmall";
  341. static const char* DiosFocusLarge = "FocusLarge";
  342. }
  343. //-----------------------------------------------------------------------------
  344. // APR参数结构体
  345. //-----------------------------------------------------------------------------
  346. struct _tAPRArgs
  347. {
  348. int nWS;
  349. int nFocus;
  350. int nTechmode;
  351. float fKV;
  352. float fMA;
  353. float fMS;
  354. float fMAS;
  355. int nAECDensity;
  356. int nAECFilm;
  357. int nAECField;
  358. };
  359. //-----------------------------------------------------------------------------
  360. // APF参数结构体
  361. //-----------------------------------------------------------------------------
  362. struct _tAPFArgs
  363. {
  364. int nWS;
  365. int nFluMode;
  366. int nABSMode;
  367. int nDoseLever;
  368. float nFLKV;
  369. float fFLMA;
  370. int nPPS;
  371. };
  372. //-----------------------------------------------------------------------------
  373. // SYNMould
  374. //-----------------------------------------------------------------------------
  375. enum EnSYNMode
  376. {
  377. EXPOSURE_SYNMODE_HARDWARE_SYNBOX, //0
  378. EXPOSURE_SYNMODE_DIRCETCONNECT_NOSYNBOX, //1
  379. EXPOSURE_SYNMODE_SOFTWARE_NOSYNBOX //2
  380. };
  381. struct cfgWorkStationKey //SDC工作位结构体
  382. {
  383. std::string strWSNAme;
  384. int nWSID{ 0 };
  385. cfgWorkStationKey()
  386. {
  387. strWSNAme = "";
  388. nWSID = 0;
  389. };
  390. cfgWorkStationKey(std::string name, int id)
  391. {
  392. strWSNAme = name;
  393. nWSID = id;
  394. };
  395. cfgWorkStationKey(int id)
  396. {
  397. strWSNAme = "null";
  398. if (id == DiosAttrKey::TABLE)
  399. strWSNAme = "Table";
  400. else if (id == DiosAttrKey::WALL)
  401. strWSNAme = "Wall";
  402. else if (id == DiosAttrKey::MOBILE)
  403. strWSNAme = "Free";
  404. else if (id == DiosAttrKey::TOMO)
  405. strWSNAme = "Tomo";
  406. else if (id == DiosAttrKey::CONVENTIONAL)
  407. strWSNAme = "Direct";
  408. nWSID = id;
  409. };
  410. cfgWorkStationKey(const char* name)
  411. {
  412. strWSNAme = name;
  413. if (strcmp(name, "Table") == 0)
  414. nWSID = DiosAttrKey::TABLE;
  415. else if (strcmp(name, "Wall") == 0)
  416. nWSID = DiosAttrKey::WALL;
  417. else if (strcmp(name, "Free") == 0)
  418. nWSID = DiosAttrKey::MOBILE;
  419. else if (strcmp(name, "Tomo") == 0)
  420. nWSID = DiosAttrKey::TOMO;
  421. else if (strcmp(name, "Direct") == 0)
  422. nWSID = DiosAttrKey::CONVENTIONAL;
  423. };
  424. bool operator<(const cfgWorkStationKey& value) const {
  425. return nWSID < value.nWSID;
  426. }
  427. };
  428. struct cfgWorkStationData //SDC工作位结构体
  429. {
  430. std::string strWSNAme;
  431. int nWSNamber{ 0 };
  432. EnSYNMode nWSSYN{ EXPOSURE_SYNMODE_HARDWARE_SYNBOX };
  433. cfgWorkStationData()
  434. {
  435. strWSNAme = "";
  436. nWSNamber = 0;
  437. nWSSYN = EXPOSURE_SYNMODE_HARDWARE_SYNBOX;
  438. };
  439. cfgWorkStationData(std::string name, int number, EnSYNMode syn)
  440. {
  441. strWSNAme = name;
  442. nWSNamber = number;
  443. nWSSYN = syn;
  444. };
  445. };