ComEdsIf.idl 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735
  1. #define SPCCOUNTS 4096
  2. #define ROICOUNT 48
  3. import "oaidl.idl";
  4. import "ocidl.idl";
  5. cpp_quote("#ifndef EDS_ANALYZER_TYPE")
  6. typedef [v1_enum] enum EDS_ANALYZER_TYPE
  7. {
  8. EDS_ANALYZER_NONE = 0,
  9. EDS_ANALYZER_EDI1 = 1,
  10. EDS_ANALYZER_EDI2 = 2,
  11. EDS_ANALYZER_DPP2 = 3
  12. } EDS_ANALYZER_TYPE;
  13. cpp_quote("#endif //EDS_ANALYZER_TYPE")
  14. cpp_quote("#ifndef EDS_FRONT_END")
  15. typedef [v1_enum] enum EDS_FRONT_END
  16. {
  17. FE_NONE = 0,
  18. FE_FA1 = 1,
  19. FE_FA2 = 2,
  20. FE_DPP2 = 3
  21. } EDS_FRONT_END;
  22. cpp_quote("#endif //EDS_FRONT_END")
  23. cpp_quote("#ifndef EDS_IO_BOARD")
  24. typedef [v1_enum] enum EDS_IO_BOARD
  25. {
  26. IO_NONE = 0,
  27. IO_STD = 1,
  28. IO_UMS = 2,
  29. IO_UMS_RTEM = 3,
  30. IO_DPP2 = 4
  31. } EDS_IO_BOARD;
  32. cpp_quote("#endif //EDS_IO_BOARD")
  33. cpp_quote("#ifndef EDS_VERSION_INFO")
  34. typedef [v1_enum] enum EDS_VERSION_INFO
  35. {
  36. VER_EDI2_GLUE_FPGA = 1,
  37. VER_EDI2_EDX_FPGA = 2,
  38. VER_EDI2_SEM_FPGA = 3,
  39. VER_EDI2_DSP = 4,
  40. VER_COPPER_REV = 5,
  41. VER_EDI1_FIRMWARE_REV = 6,
  42. VER_EDI1_EDX_BUILD = 7,
  43. VER_EDI1_SEM_BUILD = 8,
  44. VER_FA = 9,
  45. VER_IO = 10,
  46. VER_DRIVER_MAJOR = 11,
  47. VER_DRIVER_MINOR = 12,
  48. VER_DRIVER_TYPE = 13,
  49. VER_OBSOLETE_14 = 14,
  50. VER_DPP2_GLUE_FPGA = 15,
  51. VER_DPP2_EDX_FPGA = 16,
  52. VER_DPP2_DSP = 17
  53. } EDS_VERSION_INFO;
  54. cpp_quote("#endif //EDS_VERSION_INFO")
  55. cpp_quote("#ifndef EDS_DETECTOR_CLASS")
  56. typedef [v1_enum] enum EDS_DETECTOR_CLASS
  57. {
  58. DET_SILI_194 = 0,
  59. DET_SILI_DIGITAL = 1,
  60. DET_SDD = 2,
  61. DET_WDS = 3
  62. } EDS_DETECTOR_CLASS;
  63. cpp_quote("#endif //EDS_DETECTOR_CLASS")
  64. cpp_quote("#ifndef EdsSlideType")
  65. typedef [v1_enum] enum EdsSlideType
  66. {
  67. NONE = 0,
  68. RTEM = 1,
  69. UMS1 = 2,
  70. UMS2 = 3,
  71. } EdsSlideType;
  72. cpp_quote("#endif //EdsSlideType")
  73. cpp_quote("#ifndef EdsSlideStatus")
  74. typedef [v1_enum] enum EdsSlideStatus
  75. {
  76. SlideOut = 0,
  77. SlideIn = 1,
  78. SlideMovingOut = 2,
  79. SlideMovingIn = 3,
  80. SlideHighCount = 4,
  81. SlideNoPower = 5,
  82. SlideMid = 6,
  83. SlideStopped = 7,
  84. SlideError = 8,
  85. SlideInit = 9,
  86. SlideMoveMidIn = 10,
  87. SlideMoveMidOut = 11,
  88. SlideWatchDog = 12,
  89. SlideMoveWDog = 13
  90. } EdsSlideStatus;
  91. cpp_quote("#endif //EdsSlideStatus")
  92. [
  93. object,
  94. uuid(5B7C6E84-5B18-469b-9F0C-B819FA44B0B6),
  95. helpstring("IEdsSlide - Base Support"),
  96. pointer_default(unique)
  97. ]
  98. interface IEdsSlide : IUnknown
  99. {
  100. // Base Support RTEM and Above
  101. [propget, helpstring("property Type")] HRESULT Type([out, retval] EdsSlideType *pVal);
  102. [propget, helpstring("property Status")] HRESULT Status([out, retval] EdsSlideStatus *pVal);
  103. [propget, helpstring("property HighCount")] HRESULT HighCount([out, retval] long *pVal);
  104. [propput, helpstring("property HighCount")] HRESULT HighCount([in] long Val);
  105. [propget, helpstring("property Threshold")] HRESULT Threshold([out, retval] long *pVal);
  106. [propput, helpstring("property Threshold")] HRESULT Threshold([in] long Val);
  107. [propget, helpstring("property FlashRate")] HRESULT FlashRate([out, retval] long *pVal);
  108. [propput, helpstring("property FlashRate")] HRESULT FlashRate([in] long Val);
  109. [propget, helpstring("property WatchDogEnable")] HRESULT WatchDogEnable([out, retval] long *pVal);
  110. [propput, helpstring("property WatchDogEnable")] HRESULT WatchDogEnable([in] long Val);
  111. // UMS-2 and above
  112. [propget, helpstring("property Position")] HRESULT Position([out, retval] float *pVal);
  113. // Base methods
  114. [helpstring("method Reset")] HRESULT Reset();
  115. [helpstring("method MoveIn")] HRESULT MoveIn();
  116. [helpstring("method MoveOut")] HRESULT MoveOut();
  117. [helpstring("method WatchDogReset")] HRESULT WatchDogReset();
  118. // UMS-1 and Above
  119. [helpstring("method MovePosition")] HRESULT MovePosition([in] float Val);
  120. // UMS-2 and above
  121. [helpstring("method Calibrate")] HRESULT Calibrate();
  122. [helpstring("method Jog")] HRESULT Jog([in] long Val);
  123. [propget, helpstring("property MaxScale")] HRESULT MaxScale([out, retval] float* posInMm);
  124. };
  125. [
  126. object,
  127. uuid(8A574EDE-5286-4FD5-BCD6-A870F263983B),
  128. helpstring("ISlideConfig - Base Support"),
  129. pointer_default(unique)
  130. ]
  131. interface ISlideConfig : IUnknown
  132. {
  133. [propget, helpstring("property Type")] HRESULT Type([out, retval] EdsSlideType *pVal);
  134. [propget, helpstring("property Status")] HRESULT Status([out, retval] EdsSlideStatus *pVal);
  135. [propget, helpstring("property HighCount")] HRESULT HighCount([out, retval] long *pVal);
  136. [propput, helpstring("property HighCount")] HRESULT HighCount([in] long Val);
  137. [propget, helpstring("property Threshold")] HRESULT Threshold([out, retval] long *pVal);
  138. [propput, helpstring("property Threshold")] HRESULT Threshold([in] long Val);
  139. [propget, helpstring("property FlashRate")] HRESULT FlashRate([out, retval] long *pVal);
  140. [propput, helpstring("property FlashRate")] HRESULT FlashRate([in] long Val);
  141. [propget, helpstring("property HighSpeed")] HRESULT HighSpeed([out, retval] long *pVal);
  142. [propput, helpstring("property HighSpeed")] HRESULT HighSpeed([in] long Val);
  143. [propget, helpstring("property MediumSpeed")] HRESULT MediumSpeed([out, retval] long *pVal);
  144. [propput, helpstring("property MediumSpeed")] HRESULT MediumSpeed([in] long Val);
  145. [propget, helpstring("property LowSpeed")] HRESULT LowSpeed([out, retval] long *pVal);
  146. [propput, helpstring("property LowSpeed")] HRESULT LowSpeed([in] long Val);
  147. [propget, helpstring("property Threshold10")] HRESULT Threshold10([out, retval] long *pVal);
  148. [propput, helpstring("property Threshold10")] HRESULT Threshold10([in] long Val);
  149. [propget, helpstring("property Threshold25")] HRESULT Threshold25([out, retval] long *pVal);
  150. [propput, helpstring("property Threshold25")] HRESULT Threshold25([in] long Val);
  151. [propget, helpstring("property Threshold75")] HRESULT Threshold75([out, retval] long *pVal);
  152. [propput, helpstring("property Threshold75")] HRESULT Threshold75([in] long Val);
  153. [propget, helpstring("property Threshold90")] HRESULT Threshold90([out, retval] long *pVal);
  154. [propput, helpstring("property Threshold90")] HRESULT Threshold90([in] long Val);
  155. [propget, helpstring("property Threshold100")] HRESULT Threshold100([out, retval] long *pVal);
  156. [propput, helpstring("property Threshold100")] HRESULT Threshold100([in] long Val);
  157. [propget, helpstring("property Threshold110")] HRESULT Threshold110([out, retval] long *pVal);
  158. [propput, helpstring("property Threshold110")] HRESULT Threshold110([in] long Val);
  159. [propget, helpstring("property Setup Mode")] HRESULT SetupMode([out, retval] BOOL *pVal);
  160. [propput, helpstring("property Setup Mode")] HRESULT SetupMode([in] BOOL Val);
  161. };
  162. cpp_quote("#ifndef EdsSlideInitStatus")
  163. typedef [v1_enum] enum EdsSlideInitStatus
  164. {
  165. SlideInitError = -1,
  166. SlideInitNone = 0,
  167. SlideInitOut = 1,
  168. SlideInitIn = 2,
  169. SlideInitMovingOut = 3,
  170. SlideInitMovingIn = 4,
  171. SlideInitMid = 5,
  172. SlideInitStopped = 6
  173. } EdsSlideInitStatus;
  174. cpp_quote("#endif //EdsSlideInitStatus")
  175. [
  176. object,
  177. uuid(10DD6BDC-3B5C-4294-8F9F-85D5D42DFE4E),
  178. helpstring("IEdsSlideEx - Base Support"),
  179. pointer_default(unique)
  180. ]
  181. interface IEdsSlideEx : IUnknown
  182. {
  183. [propget, helpstring("property Type")] HRESULT Type([out, retval] EdsSlideType *pVal);
  184. [propget, helpstring("property Status")] HRESULT Status([out, retval] EdsSlideStatus *pVal);
  185. [propget, helpstring("property WatchDogEnable")] HRESULT WatchDogEnable([out, retval] long *pVal);
  186. [propput, helpstring("property WatchDogEnable")] HRESULT WatchDogEnable([in] long Val);
  187. [propget, helpstring("property Position")] HRESULT Position([out, retval] float *pVal);
  188. [propget, helpstring("property MaxScale")] HRESULT MaxScale([out, retval] float* posInMm);
  189. [propget, helpstring("property InitStatus")] HRESULT InitStatus([out, retval] EdsSlideInitStatus *pVal);
  190. [helpstring("method Reset")] HRESULT Reset();
  191. [helpstring("method MoveIn")] HRESULT MoveIn();
  192. [helpstring("method MoveOut")] HRESULT MoveOut();
  193. [helpstring("method WatchDogReset")] HRESULT WatchDogReset();
  194. [helpstring("method MovePosition")] HRESULT MovePosition([in] float Val);
  195. [helpstring("method Calibrate")] HRESULT Calibrate();
  196. };
  197. cpp_quote("#ifndef WindowType")
  198. typedef enum WindowType
  199. {
  200. Std = 1,
  201. UTW = 2,
  202. SuperUTW = 3,
  203. Econ34Open = 4,
  204. Econ34 = 5,
  205. Econ56Open = 6,
  206. Econ56 = 7,
  207. TEMEcon = 8,
  208. StdSapphire = 11,
  209. UTWSapphire = 12,
  210. SUTWSapphire = 13,
  211. Econ34OpenSapphire = 14,
  212. Econ34Sapphire = 15,
  213. Econ56OpenSapphire = 16,
  214. Econ56Sapphire = 17,
  215. TEMEconSapphire = 18
  216. } WindowType;
  217. cpp_quote("#endif //WindowType")
  218. [
  219. object,
  220. uuid(EDB8F64C-F503-4c09-A81A-07F1CC5D50E4),
  221. helpstring("IAnalyzerStatus Interface"),
  222. pointer_default(unique)
  223. ]
  224. interface IAnalyzerStatus : IUnknown
  225. {
  226. [propget, helpstring("property AnalyzerTemp")] HRESULT AnalyzerTemp([out, retval] float *pVal);
  227. [propget, helpstring("property PreAmpTemp")] HRESULT PreAmpTemp([out, retval] float *pVal);
  228. [propget, helpstring("property HVStatus")] HRESULT HVStatus([out, retval] long *pVal);
  229. [propget, helpstring("property SerialLo")] HRESULT SerialLo([out, retval] long *pVal);
  230. [propget, helpstring("property SerialHi")] HRESULT SerialHi([out, retval] long *pVal);
  231. [propget, helpstring("property SerialNumber")] HRESULT SerialNumber([out, retval] BSTR *pVal);
  232. };
  233. [
  234. object,
  235. uuid(164B511F-8B1F-11D4-96D2-0060B0FBBCC4),
  236. dual,
  237. helpstring("ISpcCounts Interface"),
  238. pointer_default(unique)
  239. ]
  240. interface ISpcCounts : IDispatch
  241. {
  242. [propget, id(1), helpstring("property StartChannel")] HRESULT StartChannel([out, retval] short* pVal);
  243. [propput, id(1), helpstring("property StartChannel")] HRESULT StartChannel([in] short newVal);
  244. [propget, id(2), helpstring("property EndChannel")] HRESULT EndChannel([out, retval] short* pVal);
  245. [propput, id(2), helpstring("property EndChannel")] HRESULT EndChannel([in] short newVal);
  246. [id(3), helpstring("method GetAt")] HRESULT GetAt([in] short index, [out, retval] long* pCounts);
  247. [id(4), helpstring("method SetAt")] HRESULT SetAt([in] short index, [in] long counts);
  248. [id(5), helpstring("method UpdateSpcCounts")] HRESULT UpdateSpcCounts([in] short sChan, [in] short eChan, [out, retval] long* pErr);
  249. };
  250. [
  251. object,
  252. uuid(8F4E71C7-6BB4-474C-9B81-D8A44C9A5260),
  253. dual,
  254. helpstring("ISpcCounts2 Interface"),
  255. pointer_default(unique)
  256. ]
  257. interface ISpcCounts2 : ISpcCounts
  258. {
  259. [propget, id(6), helpstring("property Counts")] HRESULT Counts([out, retval] VARIANT* pVal);
  260. [propput, id(6), helpstring("property Counts")] HRESULT Counts([in] VARIANT newVal);
  261. }
  262. [
  263. object,
  264. uuid(A11D2A64-8DA1-11D4-96D5-0060B0FBBCC4),
  265. dual,
  266. helpstring("IDynamicParams Interface"),
  267. pointer_default(unique)
  268. ]
  269. interface IDynamicParams : IDispatch
  270. {
  271. [propget, id(1), helpstring("property FineGain")] HRESULT FineGain([out, retval] long *pVal);
  272. [propput, id(1), helpstring("property FineGain")] HRESULT FineGain([in] long newVal);
  273. [propget, id(2), helpstring("property Zero")] HRESULT Zero([out, retval] long *pVal);
  274. [propput, id(2), helpstring("property Zero")] HRESULT Zero([in] long newVal);
  275. [propget, id(3), helpstring("property BLM")] HRESULT BLM([out, retval] long *pVal);
  276. [propput, id(3), helpstring("property BLM")] HRESULT BLM([in] long newVal);
  277. [propget, id(4), helpstring("property EdiTimeConst")] HRESULT EdiTimeConst([out, retval] long *pVal);
  278. [propput, id(4), helpstring("property EdiTimeConst")] HRESULT EdiTimeConst([in] long newVal);
  279. [propget, id(5), helpstring("property CoarseGain")] HRESULT CoarseGain([out, retval] long *pVal);
  280. [propput, id(5), helpstring("property CoarseGain")] HRESULT CoarseGain([in] long newVal);
  281. [propget, id(6), helpstring("property PeakShift")] HRESULT PeakShift([out, retval] long *pVal);
  282. [propput, id(6), helpstring("property PeakShift")] HRESULT PeakShift([in] long newVal);
  283. [propget, id(7), helpstring("property HVCutOff")] HRESULT HVCutOff([out, retval] long *pVal);
  284. [propput, id(7), helpstring("property HVCutOff")] HRESULT HVCutOff([in] long newVal);
  285. [propget, id(8), helpstring("property Resolution")] HRESULT Resolution([out, retval] float *pVal);
  286. [propput, id(8), helpstring("property Resolution")] HRESULT Resolution([in] float newVal);
  287. [propget, id(9), helpstring("property RejectTimeOut")] HRESULT RejectTimeOut([out, retval] long *pVal);
  288. [propput, id(9), helpstring("property RejectTimeOut")] HRESULT RejectTimeOut([in] long newVal);
  289. [propget, id(10), helpstring("property BusyTimeOut")] HRESULT BusyTimeOut([out, retval] long *pVal);
  290. [propput, id(10), helpstring("property BusyTimeOut")] HRESULT BusyTimeOut([in] long newVal);
  291. [propget, id(11), helpstring("property OverVoltageTimeOut")] HRESULT OverVoltageTimeOut([out, retval] long *pVal);
  292. [propput, id(11), helpstring("property OverVoltageTimeOut")] HRESULT OverVoltageTimeOut([in] long newVal);
  293. [propget, id(12), helpstring("property Inhibit0TimeOut")] HRESULT Inhibit0TimeOut([out, retval] long *pVal);
  294. [propput, id(12), helpstring("property Inhibit0TimeOut")] HRESULT Inhibit0TimeOut([in] long newVal);
  295. [propget, id(13), helpstring("property Inhibit1TimeOut")] HRESULT Inhibit1TimeOut([out, retval] long *pVal);
  296. [propput, id(13), helpstring("property Inhibit1TimeOut")] HRESULT Inhibit1TimeOut([in] long newVal);
  297. [propget, id(14), helpstring("property FATimeConst")] HRESULT FATimeConst([out, retval] long *pVal);
  298. [propput, id(14), helpstring("property FATimeConst")] HRESULT FATimeConst([in] long newVal);
  299. [propget, id(15), helpstring("property HighSpeedDiscEna")] HRESULT HighSpeedDiscEna([out, retval] long *pVal);
  300. [propput, id(15), helpstring("property HighSpeedDiscEna")] HRESULT HighSpeedDiscEna([in] long newVal);
  301. [propget, id(16), helpstring("property MediumSpeedDiscEna")] HRESULT MediumSpeedDiscEna([out, retval] long *pVal);
  302. [propput, id(16), helpstring("property MediumSpeedDiscEna")] HRESULT MediumSpeedDiscEna([in] long newVal);
  303. [propget, id(17), helpstring("property LowSpeedDiscEna")] HRESULT LowSpeedDiscEna([out, retval] long *pVal);
  304. [propput, id(17), helpstring("property LowSpeedDiscEna")] HRESULT LowSpeedDiscEna([in] long newVal);
  305. [propget, id(18), helpstring("property HighSpeedDisc")] HRESULT HighSpeedDisc([out, retval] long *pVal);
  306. [propput, id(18), helpstring("property HighSpeedDisc")] HRESULT HighSpeedDisc([in] long newVal);
  307. [propget, id(19), helpstring("property MediumSpeedDisc")] HRESULT MediumSpeedDisc([out, retval] long *pVal);
  308. [propput, id(19), helpstring("property MediumSpeedDisc")] HRESULT MediumSpeedDisc([in] long newVal);
  309. [propget, id(20), helpstring("property LowSpeedDisc")] HRESULT LowSpeedDisc([out, retval] long *pVal);
  310. [propput, id(20), helpstring("property LowSpeedDisc")] HRESULT LowSpeedDisc([in] long newVal);
  311. [propget, id(21), helpstring("property LowerLevelChannel")] HRESULT LowerLevelChannel([out, retval] long *pVal);
  312. [propput, id(21), helpstring("property LowerLevelChannel")] HRESULT LowerLevelChannel([in] long newVal);
  313. [propget, id(22), helpstring("property UpperLevelChannel")] HRESULT UpperLevelChannel([out, retval] long *pVal);
  314. [propput, id(22), helpstring("property UpperLevelChannel")] HRESULT UpperLevelChannel([in] long newVal);
  315. [propget, id(23), helpstring("property EvPerChan")] HRESULT EvPerChan([out, retval] long *pVal);
  316. [propput, id(23), helpstring("property EvPerChan")] HRESULT EvPerChan([in] long newVal);
  317. [propget, id(24), helpstring("property EnergyBlr")] HRESULT EnergyBlr([out, retval] long *pVal);
  318. [propput, id(24), helpstring("property EnergyBlr")] HRESULT EnergyBlr([in] long newVal);
  319. [propget, id(25), helpstring("property MediumBlr")] HRESULT MediumBlr([out, retval] long *pVal);
  320. [propput, id(25), helpstring("property MediumBlr")] HRESULT MediumBlr([in] long newVal);
  321. [propget, id(26), helpstring("property PreAmpResetUpperLim")] HRESULT PreAmpResetUpperLim([out, retval] long *pVal);
  322. [propput, id(26), helpstring("property PreAmpResetUpperLim")] HRESULT PreAmpResetUpperLim([in] long newVal);
  323. [propget, id(27), helpstring("property PreAmpResetLowerLim")] HRESULT PreAmpResetLowerLim([out, retval] long *pVal);
  324. [propput, id(27), helpstring("property PreAmpResetLowerLim")] HRESULT PreAmpResetLowerLim([in] long newVal);
  325. [id(28), helpstring("method Update")] HRESULT Update();
  326. };
  327. [
  328. object,
  329. uuid(62EE134D-C561-11D4-970E-0060B0FBBCC4),
  330. dual,
  331. helpstring("IDetectorParams Interface"),
  332. pointer_default(unique)
  333. ]
  334. interface IDetectorParams : IDispatch
  335. {
  336. [propget, id(1), helpstring("property StartKev")] HRESULT StartKev([out, retval] float* pVal);
  337. [propput, id(1), helpstring("property StartKev")] HRESULT StartKev([in] float newVal);
  338. [propget, id(2), helpstring("property EndKev")] HRESULT EndKev([out, retval] float* pVal);
  339. [propput, id(2), helpstring("property EndKev")] HRESULT EndKev([in] float newVal);
  340. [propget, id(3), helpstring("property LiveTime")] HRESULT LiveTime([out, retval] float* pVal);
  341. [propput, id(3), helpstring("property LiveTime")] HRESULT LiveTime([in] float newVal);
  342. [propget, id(4), helpstring("property StageTilt")] HRESULT StageTilt([out, retval] float* pVal);
  343. [propput, id(4), helpstring("property StageTilt")] HRESULT StageTilt([in] float newVal);
  344. [propget, id(5), helpstring("property TakeoffAngle")] HRESULT TakeoffAngle([out, retval] float* pVal);
  345. [propput, id(5), helpstring("property TakeoffAngle")] HRESULT TakeoffAngle([in] float newVal);
  346. [propget, id(6), helpstring("property BeamFact")] HRESULT BeamFact([out, retval] float* pVal);
  347. [propput, id(6), helpstring("property BeamFact")] HRESULT BeamFact([in] float newVal);
  348. [propget, id(7), helpstring("property DetRes")] HRESULT DetRes([out, retval] float* pVal);
  349. [propput, id(7), helpstring("property DetRes")] HRESULT DetRes([in] float newVal);
  350. [propget, id(8), helpstring("property DetType")] HRESULT DetType([out, retval] long* pVal);
  351. [propput, id(8), helpstring("property DetType")] HRESULT DetType([in] long newVal);
  352. [propget, id(9), helpstring("property ParThick")] HRESULT ParThick([out, retval] float* pVal);
  353. [propput, id(9), helpstring("property ParThick")] HRESULT ParThick([in] float newVal);
  354. [propget, id(10), helpstring("property AlThick")] HRESULT AlThick([out, retval] float* pVal);
  355. [propput, id(10), helpstring("property AlThick")] HRESULT AlThick([in] float newVal);
  356. [propget, id(11), helpstring("property BeThick")] HRESULT BeThick([out, retval] float* pVal);
  357. [propput, id(11), helpstring("property BeThick")] HRESULT BeThick([in] float newVal);
  358. [propget, id(12), helpstring("property AuThick")] HRESULT AuThick([out, retval] float* pVal);
  359. [propput, id(12), helpstring("property AuThick")] HRESULT AuThick([in] float newVal);
  360. [propget, id(13), helpstring("property SiDead")] HRESULT SiDead([out, retval] float* pVal);
  361. [propput, id(13), helpstring("property SiDead")] HRESULT SiDead([in] float newVal);
  362. [propget, id(14), helpstring("property SiLive")] HRESULT SiLive([out, retval] float* pVal);
  363. [propput, id(14), helpstring("property SiLive")] HRESULT SiLive([in] float newVal);
  364. [propget, id(15), helpstring("property XRayInc")] HRESULT XRayInc([out, retval] float* pVal);
  365. [propput, id(15), helpstring("property XRayInc")] HRESULT XRayInc([in] float newVal);
  366. [propget, id(16), helpstring("property Azimuth")] HRESULT Azimuth([out, retval] float* pVal);
  367. [propput, id(16), helpstring("property Azimuth")] HRESULT Azimuth([in] float newVal);
  368. [propget, id(17), helpstring("property Elevation")] HRESULT Elevation([out, retval] float* pVal);
  369. [propput, id(17), helpstring("property Elevation")] HRESULT Elevation([in] float newVal);
  370. [propget, id(18), helpstring("property B_Coeff")] HRESULT B_Coeff([out, retval] float* pVal);
  371. [propput, id(18), helpstring("property B_Coeff")] HRESULT B_Coeff([in] float newVal);
  372. [propget, id(19), helpstring("property C_Coeff")] HRESULT C_Coeff([out, retval] float* pVal);
  373. [propput, id(19), helpstring("property C_Coeff")] HRESULT C_Coeff([in] float newVal);
  374. [propget, id(20), helpstring("property TailMax")] HRESULT TailMax([out, retval] float* pVal);
  375. [propput, id(20), helpstring("property TailMax")] HRESULT TailMax([in] float newVal);
  376. [propget, id(21), helpstring("property TailHeight")] HRESULT TailHeight([out, retval] float* pVal);
  377. [propput, id(21), helpstring("property TailHeight")] HRESULT TailHeight([in] float newVal);
  378. [propget, id(22), helpstring("property AccVolt")] HRESULT AccVolt([out, retval] float* pVal);
  379. [propput, id(22), helpstring("property AccVolt")] HRESULT AccVolt([in] float newVal);
  380. [propget, id(23), helpstring("property ApThick")] HRESULT ApThick([out, retval] float* pVal);
  381. [propput, id(23), helpstring("property ApThick")] HRESULT ApThick([in] float newVal);
  382. };
  383. cpp_quote("#ifndef ParamStructType")
  384. typedef struct ParamStructType
  385. {
  386. float strt_kev;
  387. float end_kev;
  388. float live_time;
  389. float stg_tilt;
  390. float toff_ang;
  391. float beam_fact;
  392. float det_res;
  393. long det_type;
  394. float par_thick;
  395. float al_thick;
  396. float be_thick;
  397. float au_thick;
  398. float si_dead;
  399. float si_live;
  400. float xray_inc;
  401. float azimuth;
  402. float elevation;
  403. float b_coeff;
  404. float c_coeff;
  405. float tail_max;
  406. float tail_height;
  407. float acc_volt;
  408. float ap_thick;
  409. } ParamStructType;
  410. cpp_quote("#endif //ParamStructType")
  411. [
  412. object,
  413. uuid(19E5EA7E-B45F-47AB-AB02-055FF721BB8A),
  414. helpstring("IDetectorParamsStruct Interface"),
  415. pointer_default(unique)
  416. ]
  417. interface IDetectorParamsStruct : IUnknown
  418. {
  419. [helpstring("method GetParamStruct")] HRESULT GetParamStruct([out] ParamStructType* pVal);
  420. [helpstring("method SetParamStruct")] HRESULT SetParamStruct([in] ParamStructType newVal);
  421. };
  422. [
  423. object,
  424. uuid(A11D2A66-8DA1-11D4-96D5-0060B0FBBCC4),
  425. dual,
  426. helpstring("IIoParams Interface"),
  427. pointer_default(unique)
  428. ]
  429. interface IIoParams : IDispatch
  430. {
  431. [propget, id(1), helpstring("property RTEMFlashRate")] HRESULT RTEMFlashRate([out, retval] long *pVal);
  432. [propput, id(1), helpstring("property RTEMFlashRate")] HRESULT RTEMFlashRate([in] long newVal);
  433. [propget, id(2), helpstring("property RTEMCountRate")] HRESULT RTEMCountRate([out, retval] long *pVal);
  434. [propput, id(2), helpstring("property RTEMCountRate")] HRESULT RTEMCountRate([in] long newVal);
  435. [propget, id(3), helpstring("property RTEMThreshold")] HRESULT RTEMThreshold([out, retval] long *pVal);
  436. [propput, id(3), helpstring("property RTEMThreshold")] HRESULT RTEMThreshold([in] long newVal);
  437. [propget, id(4), helpstring("property InterruptEnable")] HRESULT InterruptEnable([out, retval] long *pVal);
  438. [propput, id(4), helpstring("property InterruptEnable")] HRESULT InterruptEnable([in] long newVal);
  439. [propget, id(5), helpstring("property SCAOffset")] HRESULT SCAOffset([out, retval] long *pVal);
  440. [propput, id(5), helpstring("property SCAOffset")] HRESULT SCAOffset([in] long newVal);
  441. [propget, id(6), helpstring("property SCAGain")] HRESULT SCAGain([out, retval] long *pVal);
  442. [propput, id(6), helpstring("property SCAGain")] HRESULT SCAGain([in] long newVal);
  443. [propget, id(7), helpstring("property SCAPulseWidth")] HRESULT SCAPulseWidth([out, retval] long *pVal);
  444. [propput, id(7), helpstring("property SCAPulseWidth")] HRESULT SCAPulseWidth([in] long newVal);
  445. [propget, id(8), helpstring("property SCAPolarity")] HRESULT SCAPolarity([out, retval] long *pVal);
  446. [propput, id(8), helpstring("property SCAPolarity")] HRESULT SCAPolarity([in] long newVal);
  447. [propget, id(9), helpstring("property RateMeterOffset")] HRESULT RateMeterOffset([out, retval] long *pVal);
  448. [propput, id(9), helpstring("property RateMeterOffset")] HRESULT RateMeterOffset([in] long newVal);
  449. [propget, id(10), helpstring("property RateMeterGain")] HRESULT RateMeterGain([out, retval] long *pVal);
  450. [propput, id(10), helpstring("property RateMeterGain")] HRESULT RateMeterGain([in] long newVal);
  451. [propget, id(11), helpstring("property RateMeterTimeConst")] HRESULT RateMeterTimeConst([out, retval] long *pVal);
  452. [propput, id(11), helpstring("property RateMeterTimeConst")] HRESULT RateMeterTimeConst([in] long newVal);
  453. [propget, id(12), helpstring("property RatemeterPolarity")] HRESULT RatemeterPolarity([out, retval] long *pVal);
  454. [propput, id(12), helpstring("property RatemeterPolarity")] HRESULT RatemeterPolarity([in] long newVal);
  455. [propget, id(13), helpstring("property RateMeterIntEna")] HRESULT RateMeterIntEna([out, retval] long *pVal);
  456. [propput, id(13), helpstring("property RateMeterIntEna")] HRESULT RateMeterIntEna([in] long newVal);
  457. [propget, id(14), helpstring("property SCAOnVoltage")] HRESULT SCAOnVoltage([out, retval] long *pVal);
  458. [propput, id(14), helpstring("property SCAOnVoltage")] HRESULT SCAOnVoltage([in] long newVal);
  459. [propget, id(15), helpstring("property SCAOffVoltage")] HRESULT SCAOffVoltage([out, retval] long *pVal);
  460. [propput, id(15), helpstring("property SCAOffVoltage")] HRESULT SCAOffVoltage([in] long newVal);
  461. [propget, id(16), helpstring("property DSCAPulseWidth")] HRESULT DSCAPulseWidth([out, retval] long *pVal);
  462. [propput, id(16), helpstring("property DSCAPulseWidth")] HRESULT DSCAPulseWidth([in] long newVal);
  463. [propget, id(17), helpstring("property DSCAPolarity")] HRESULT DSCAPolarity([out, retval] long *pVal);
  464. [propput, id(17), helpstring("property DSCAPolarity")] HRESULT DSCAPolarity([in] long newVal);
  465. [propget, id(18), helpstring("property RateMeterOffVoltage")] HRESULT RateMeterOffVoltage([out, retval] long *pVal);
  466. [propput, id(18), helpstring("property RateMeterOffVoltage")] HRESULT RateMeterOffVoltage([in] long newVal);
  467. [propget, id(19), helpstring("property RateMeterOnVoltage")] HRESULT RateMeterOnVoltage([out, retval] long *pVal);
  468. [propput, id(19), helpstring("property RateMeterOnVoltage")] HRESULT RateMeterOnVoltage([in] long newVal);
  469. };
  470. [
  471. object,
  472. uuid(17979EE7-CE5C-46B1-B41B-C2032409F58E),
  473. dual,
  474. helpstring("ISEMParams Interface"),
  475. pointer_default(unique)
  476. ]
  477. interface ISEMParams : IDispatch
  478. {
  479. [propget, id(1), helpstring("property IntersectDistance")] HRESULT IntersectDistance([out, retval] float *pVal);
  480. [propput, id(1), helpstring("property IntersectDistance")] HRESULT IntersectDistance([in] float newVal);
  481. [propget, id(2), helpstring("property ScaleSetting")] HRESULT ScaleSetting([out, retval] float *pVal);
  482. [propput, id(2), helpstring("property ScaleSetting")] HRESULT ScaleSetting([in] float newVal);
  483. };
  484. [
  485. object,
  486. uuid(FD8CA06F-A8AC-468E-ACE3-740F6AC00AEC),
  487. helpstring("ISpcMapEds Interface"),
  488. pointer_default(unique)
  489. ]
  490. interface ISpcMapEds : IUnknown
  491. {
  492. // [helpstring("method AttachEvent")] HRESULT AttachEvent();
  493. // [helpstring("method DetachEvent")] HRESULT DetachEvent();
  494. // [propget, helpstring("property PointsPerLine")] HRESULT PointsPerLine([out, retval] long *pVal);
  495. // [propput, helpstring("property PointsPerLine")] HRESULT PointsPerLine([in] long newVal);
  496. [helpstring("method SyncEol")] HRESULT SyncEol();
  497. [helpstring("method GetEdsData")] HRESULT GetEdsData([out] long* BuffSize, [out, size_is(, *BuffSize)] long **ppBuffer);
  498. [helpstring("method StartLine")] HRESULT StartLine();
  499. [helpstring("method Setup")] HRESULT Setup([in] long NumPoints);
  500. [helpstring("method CleanUp")] HRESULT CleanUp();
  501. };
  502. [
  503. object,
  504. uuid(BA238DC0-CC46-11D4-9719-0060B0FBBCC4),
  505. dual,
  506. helpstring("ICalibResult Interface"),
  507. pointer_default(unique)
  508. ]
  509. interface ICalibResult : IDispatch
  510. {
  511. [propget, id(1), helpstring("property Zero")] HRESULT Zero([out, retval] long* pVal);
  512. [propput, id(1), helpstring("property Zero")] HRESULT Zero([in] long newVal);
  513. [propget, id(2), helpstring("property FineGain")] HRESULT FineGain([out, retval] long* pVal);
  514. [propput, id(2), helpstring("property FineGain")] HRESULT FineGain([in] long newVal);
  515. [propget, id(3), helpstring("property CoarseGain")] HRESULT CoarseGain([out, retval] long* pVal);
  516. [propput, id(3), helpstring("property CoarseGain")] HRESULT CoarseGain([in] long newVal);
  517. [propget, id(4), helpstring("property Resolution")] HRESULT Resolution([out, retval] float* pVal);
  518. [propput, id(4), helpstring("property Resolution")] HRESULT Resolution([in] float newVal);
  519. [propget, id(5), helpstring("property AutoCalState")] HRESULT AutoCalState([out, retval] short* pVal);
  520. [propget, id(6), helpstring("property PeakEnergy")] HRESULT PeakEnergy([in] short index, [out, retval] float* pVal);
  521. [propget, id(7), helpstring("property MaxPeak")] HRESULT MaxPeak([out, retval] long* pVal);
  522. [id(8), helpstring("method UpdateCalibResult")] HRESULT UpdateCalibResult();
  523. };
  524. [
  525. object,
  526. uuid(5A3A410F-CD10-11D4-971B-0060B0FBBCC4),
  527. dual,
  528. helpstring("ICalibration Interface"),
  529. pointer_default(unique)
  530. ]
  531. interface ICalibration : IDispatch
  532. {
  533. [propget, id(1), helpstring("method CalibResult")] HRESULT CalibResult([out, retval] ICalibResult** ppVal);
  534. [propput, id(1), helpstring("method CalibResult")] HRESULT CalibResult([in] ICalibResult* pVal);
  535. [propput, id(2), helpstring("property CoarseGain")] HRESULT CoarseGain([in] long newVal);
  536. [propget, id(3), helpstring("property FineGain")] HRESULT FineGain([out, retval] long* pVal);
  537. [propput, id(3), helpstring("property FineGain")] HRESULT FineGain([in] long newVal);
  538. [propget, id(4), helpstring("property BLM")] HRESULT BLM([out, retval] long* pVal);
  539. [propput, id(4), helpstring("property BLM")] HRESULT BLM([in] long newVal);
  540. [propget, id(5), helpstring("property CalibConverge")] HRESULT CalibConverge([out, retval] short* pVal);
  541. [id(6), helpstring("method EdsCalib")] HRESULT EdsCalib([in] float eng1, [in] float eng2, [in] long preCnts, [in] short iter);
  542. [id(7), helpstring("method StopCalib")] HRESULT StopCalib([out, retval] long* pErr);
  543. [id(8), helpstring("method SetZero")] HRESULT SetZero([in] long zeroVal);
  544. };
  545. [
  546. object,
  547. uuid(BA238DBE-CC46-11D4-9719-0060B0FBBCC4),
  548. dual,
  549. helpstring("ITimeConstant Interface"),
  550. pointer_default(unique)
  551. ]
  552. interface ITimeConstant : IDispatch
  553. {
  554. [propget, id(1), helpstring("property Count")] HRESULT Count([out, retval] long* pVal);
  555. [propget, id(2), helpstring("property CurrentIndex")] HRESULT CurrentIndex([out, retval] long* pVal);
  556. [propput, id(2), helpstring("property CurrentIndex")] HRESULT CurrentIndex([in] long newVal);
  557. [propget, id(3), helpstring("property CurrentTc")] HRESULT CurrentTc([out, retval] float* pVal);
  558. [propput, id(3), helpstring("property CurrentTc")] HRESULT CurrentTc([in] float newVal);
  559. [propget, id(4), helpstring("property SampleTime")] HRESULT SampleTime([out, retval] float* pVal);
  560. [id(5), helpstring("method TcFromIndex")] HRESULT TcFromIndex([in] short index, [out, retval] float* pTc);
  561. [id(6), helpstring("method IndexFromTc")] HRESULT IndexFromTc([in] float tc, [out, retval] long* pIndex);
  562. };
  563. [
  564. object,
  565. uuid(FFDC56B6-BF08-4a4a-A8A9-B2F762F6340B),
  566. dual,
  567. helpstring("IEvPerChan Interface"),
  568. pointer_default(unique)
  569. ]
  570. interface IEvPerChan : IDispatch
  571. {
  572. [propget, id(1), helpstring("property Count")] HRESULT Count([out, retval] long* pVal);
  573. [propget, id(2), helpstring("property CurrentEvPerChan")] HRESULT CurrentEvPerChan([out, retval] float* pVal);
  574. [propput, id(2), helpstring("property CurrentEvPerChan")] HRESULT CurrentEvPerChan([in] float newVal);
  575. [id(3), helpstring("method EvPerChanFromIndex")] HRESULT EvPerChanFromIndex([in] short index, [out, retval] float* pEvPerChan);
  576. };
  577. [
  578. object,
  579. uuid(5A3A410C-CD10-11D4-971B-0060B0FBBCC4),
  580. dual,
  581. helpstring("IRegionOfInterest Interface"),
  582. pointer_default(unique)
  583. ]
  584. interface IRegionOfInterest : IDispatch
  585. {
  586. [propget, id(1), helpstring("property CountOfRois")] HRESULT CountOfRois([out, retval] short* pVal);
  587. [propget, id(2), helpstring("property Count")] HRESULT Count([in] short roiNum, [out, retval] long* pVal);
  588. [id(3), helpstring("method SelectSca")] HRESULT SelectSca([in] short numRoi, [in] short numSca);
  589. [id(4), helpstring("method EnablePresetCount")] HRESULT EnablePresetCount([in] short numRoi, [in] short roiEnabled);
  590. [id(5), helpstring("method DefineRoi")] HRESULT DefineRoi([in] short numRoi, [in] short startChan, [in] short endChan);
  591. [id(6), helpstring("method ClearRoi")] HRESULT ClearRoi([in] short numRoi);
  592. [id(7), helpstring("method UpdateRoiCounts")] HRESULT UpdateRoiCounts([out, retval] long* pErr);
  593. };
  594. [
  595. object,
  596. uuid(0A0787E3-8A75-11D4-96D1-0060B0FBBCC4),
  597. helpstring("IEdam Interface"),
  598. pointer_default(unique)
  599. ]
  600. interface IEdam : IUnknown
  601. {
  602. [propget, helpstring("property EdsStatus")] HRESULT EdsStatus([in] short index, [out, retval] BYTE* pVal);
  603. [propget, helpstring("property ClockTime")] HRESULT ClockTime([out, retval] float* pVal);
  604. [propget, helpstring("property LiveTime")] HRESULT LiveTime([out, retval] float* pVal);
  605. [propget, helpstring("property CfgFileName")] HRESULT CfgFileName([out, retval] BSTR* pVal);
  606. [propput, helpstring("property CfgFileName")] HRESULT CfgFileName([in] BSTR Val);
  607. [propget, helpstring("property AnalyzerType")] HRESULT AnalyzerType([out, retval] long* pVal);
  608. [propget, helpstring("property InputCps")] HRESULT InputCps([out, retval] long* pVal);
  609. [propget, helpstring("property OutputCps")] HRESULT OutputCps([out, retval] long* pVal);
  610. [propget, helpstring("property AnalyzerTemp")] HRESULT AnalyzerTemp([out, retval] float* pTemp);
  611. [propget, helpstring("property DetectorWindow")] HRESULT DetectorWindow([out, retval] WindowType* pVal);
  612. [propput, helpstring("property DetectorWindow")] HRESULT DetectorWindow([in] WindowType newVal);
  613. [propget, helpstring("property SpcCounts")] HRESULT SpcCounts([out, retval] ISpcCounts** ppVal);
  614. [propget, helpstring("property TimeConstant")] HRESULT TimeConstant([out, retval] ITimeConstant** ppVal);
  615. [propget, helpstring("property Calibration")] HRESULT Calibration([out, retval] ICalibration** ppVal);
  616. [propget, helpstring("property RoiCounts")] HRESULT RoiCounts([out, retval] IRegionOfInterest** ppVal);
  617. [propget, helpstring("property DynamicParams")] HRESULT DynamicParams([out, retval] IDynamicParams** ppVal);
  618. [propget, helpstring("property DetectorParams")] HRESULT DetectorParams([out, retval] IDetectorParams** ppVal);
  619. [propput, helpstring("property DetectorParams")] HRESULT DetectorParams([in] IDetectorParams* pVal);
  620. [propget, helpstring("property IoParams")] HRESULT IoParams([out, retval] IIoParams** ppVal);
  621. [propput, helpstring("property IoParams")] HRESULT IoParams([in] IIoParams* pVal);
  622. [propget, helpstring("property EvPerChannel")] HRESULT EvPerChannel([out, retval] short* pVal);
  623. [propput, helpstring("property EvPerChannel")] HRESULT EvPerChannel([in] short newVal);
  624. [helpstring("method ClearMemory")] HRESULT ClearMemory();
  625. [helpstring("method EdsAnal")] HRESULT EdsAnal([in] short analMode, [in] float analPreset, [out, retval] long* pErr);
  626. [helpstring("method DefineRateMeter")] HRESULT DefineRateMeter([in] short inputDev, [in] short interrupt, [in] short minActive, [in] short maxActive, [in] short threshold, [in] short minDev, [in] short maxDev);
  627. [helpstring("method XraySet")] HRESULT XraySet([in] short anal_mode, [in] long preset);
  628. [helpstring("method Reset")] HRESULT Reset();
  629. [helpstring("method ReadAllSpcCounts")] HRESULT ReadAllSpcCounts([in] short sChan, [in] short eChan, [out, retval] long pCnts[SPCCOUNTS]);
  630. [helpstring("method ReadAllRoiCounts")] HRESULT ReadAllRoiCounts([out] short* pNumRoi, [out] long counts[ROICOUNT]);
  631. //[helpstring("method EdsXanal")] HRESULT EdsXanal([out] short* pRoiNum, [out] long pCounts[ROICOUNT], [out] short* pState);
  632. [helpstring("method EdsXanal")] HRESULT EdsXanal([in] short* pRoiNum, [out, size_is(*pRoiNum)] long ppCounts[], [out] short* pState);
  633. };
  634. [
  635. object,
  636. uuid(4611822F-EEE8-4479-AC93-E01EED527826),
  637. helpstring("IEdam2 Interface"),
  638. pointer_default(unique)
  639. ]
  640. interface IEdam2 : IEdam
  641. {
  642. [propget, helpstring("property SEMParams")] HRESULT SEMParams([out, retval] ISEMParams** ppVal);
  643. [propput, helpstring("property SEMParams")] HRESULT SEMParams([in] ISEMParams* pVal);
  644. [propget, helpstring("property Data")] HRESULT Data([in] BSTR name, [out, retval] VARIANT* pVal);
  645. [propput, helpstring("property Data")] HRESULT Data([in] BSTR name, [in] VARIANT newVal);
  646. [helpstring("method GetLowHighChannel")] HRESULT GetLowHighChannel([out] short* sChan, [out] short* eChan);
  647. [helpstring("method SetLowHighChannel")] HRESULT SetLowHighChannel([in] short sChan, [in] short eChan);
  648. };
  649. [
  650. object,
  651. uuid(84ccf668-1d30-4c51-9e59-e7da8f2ac1ae),
  652. helpstring("IEdam3 Interface"),
  653. pointer_default(unique)
  654. ]
  655. interface IEdam3 : IEdam2
  656. {
  657. [propget, helpstring("property DetectorInput")] HRESULT DetectorInput([out, retval] long *pVal);
  658. [propput, helpstring("property DetectorInput")] HRESULT DetectorInput([in] long newVal);
  659. [helpstring("method ReadAllSpcCountsEx")] HRESULT ReadAllSpcCountsEx([in] long StartChan, [in] long EndChan, [in] long BuffSize, [out, size_is(BuffSize)] long *Buffer);
  660. [propget, helpstring("property SpcMapEds")] HRESULT SpcMapEds([out, retval] ISpcMapEds** ppVal);
  661. [propget, helpstring ("property AnalyzerStatus")]HRESULT AnalyzerStatus([out, retval] IAnalyzerStatus** ppVal);
  662. [propget, helpstring ("property EvPerChan")] HRESULT EvPerChan([out, retval] IEvPerChan** ppVal);
  663. [propget, helpstring ("property EdsSlide")] HRESULT EdsSlide([out, retval] IEdsSlide** ppVal);
  664. [propget, helpstring("property FrontEnd")] HRESULT FrontEnd([out, retval] EDS_FRONT_END *pVal);
  665. [propget, helpstring("property IoBoard")] HRESULT IoBoard([out, retval] EDS_IO_BOARD *pVal);
  666. [propget, helpstring("property DetectorClass")] HRESULT DetectorClass([out, retval] EDS_DETECTOR_CLASS *pVal);
  667. [propget, helpstring("property Version")] HRESULT Version([in] EDS_VERSION_INFO idx, [out, retval] long *pVal);
  668. };
  669. [
  670. uuid(BB09BBBC-CACE-11D2-901B-0080C7FCC78D),
  671. object, local, hidden, oleautomation,
  672. helpstring("Models a hidden _IEdam interface")
  673. ]
  674. interface _IEdam : IUnknown
  675. {
  676. [propget, id(1), helpstring("property EdsStatus")] HRESULT EdsStatus([in] short index, [out, retval] BYTE* pVal);
  677. [propget, id(2), helpstring("property ClockTime")] HRESULT ClockTime([out, retval] float* pVal);
  678. [propget, id(3), helpstring("property LiveTime")] HRESULT LiveTime([out, retval] float* pVal);
  679. [propget, id(4), helpstring("property CfgFileName")] HRESULT CfgFileName([out, retval] BSTR* pVal);
  680. [propput, id(4), helpstring("property CfgFileName")] HRESULT CfgFileName([in] BSTR Val);
  681. [propget, id(5), helpstring("property AnalyzerType")] HRESULT AnalyzerType([out, retval] long* pVal);
  682. [propget, id(6), helpstring("property InputCps")] HRESULT InputCps([out, retval] long* pVal);
  683. [propget, id(7), helpstring("property OutputCps")] HRESULT OutputCps([out, retval] long* pVal);
  684. [propget, id(8), helpstring("property AnalyzerTemp")] HRESULT AnalyzerTemp([out, retval] float* pTemp);
  685. [propget, id(9), helpstring("property DetectorWindow")] HRESULT DetectorWindow([out, retval] WindowType* pVal);
  686. [propput, id(9), helpstring("property DetectorWindow")] HRESULT DetectorWindow([in] WindowType newVal);
  687. [propget, id(10), helpstring("property SpcCounts")] HRESULT SpcCounts([out, retval] ISpcCounts** ppVal);
  688. [propget, id(11), helpstring("property TimeConstant")] HRESULT TimeConstant([out, retval] ITimeConstant** ppVal);
  689. [propget, id(12), helpstring("property Calibration")] HRESULT Calibration([out, retval] ICalibration** ppVal);
  690. [propget, id(13), helpstring("property RoiCounts")] HRESULT RoiCounts([out, retval] IRegionOfInterest** ppVal);
  691. [propget, id(14), helpstring("property DynamicParams")] HRESULT DynamicParams([out, retval] IDynamicParams** ppVal);
  692. [propget, id(15), helpstring("property DetectorParams")] HRESULT DetectorParams([out, retval] IDetectorParams** ppVal);
  693. [propput, id(15), helpstring("property DetectorParams")] HRESULT DetectorParams([in] IDetectorParams* pVal);
  694. [propget, id(16), helpstring("property IoParams")] HRESULT IoParams([out, retval] IIoParams** ppVal);
  695. [propput, id(16), helpstring("property IoParams")] HRESULT IoParams([in] IIoParams* pVal);
  696. [propget, id(17), helpstring("property EvPerChannel")] HRESULT EvPerChannel([out, retval] short* pVal);
  697. [propput, id(17), helpstring("property EvPerChannel")] HRESULT EvPerChannel([in] short newVal);
  698. [id(18), helpstring("method ClearMemory")] HRESULT ClearMemory();
  699. [id(19), helpstring("method EdsAnal")] HRESULT EdsAnal([in] short analMode, [in] float analPreset, [out, retval] long* pErr);
  700. [id(20), helpstring("method DefineRateMeter")] HRESULT DefineRateMeter([in] short inputDev, [in] short interrupt, [in] short minActive, [in] short maxActive, [in] short threshold, [in] short minDev, [in] short maxDev);
  701. [id(21), helpstring("method XraySet")] HRESULT XraySet([in] short anal_mode, [in] long preset);
  702. [id(22), helpstring("method Reset")] HRESULT Reset();
  703. [id(23), propget, helpstring("property SEMParams")] HRESULT SEMParams([out, retval] ISEMParams** ppVal);
  704. [id(23), propput, helpstring("property SEMParams")] HRESULT SEMParams([in] ISEMParams* pVal);
  705. [id(24), propget, helpstring("property Data")] HRESULT Data([in] BSTR name, [out, retval] VARIANT* pVal);
  706. [id(24), propput, helpstring("property Data")] HRESULT Data([in] BSTR name, [in] VARIANT newVal);
  707. [id(25), helpstring("method GetLowHighChannel")] HRESULT GetLowHighChannel([out] short* sChan, [out] short* eChan);
  708. [id(26), helpstring("method SetLowHighChannel")] HRESULT SetLowHighChannel([in] short sChan, [in] short eChan);
  709. };