#define SPCCOUNTS 4096 #define ROICOUNT 48 import "oaidl.idl"; import "ocidl.idl"; cpp_quote("#ifndef EDS_ANALYZER_TYPE") typedef [v1_enum] enum EDS_ANALYZER_TYPE { EDS_ANALYZER_NONE = 0, EDS_ANALYZER_EDI1 = 1, EDS_ANALYZER_EDI2 = 2, EDS_ANALYZER_DPP2 = 3 } EDS_ANALYZER_TYPE; cpp_quote("#endif //EDS_ANALYZER_TYPE") cpp_quote("#ifndef EDS_FRONT_END") typedef [v1_enum] enum EDS_FRONT_END { FE_NONE = 0, FE_FA1 = 1, FE_FA2 = 2, FE_DPP2 = 3 } EDS_FRONT_END; cpp_quote("#endif //EDS_FRONT_END") cpp_quote("#ifndef EDS_IO_BOARD") typedef [v1_enum] enum EDS_IO_BOARD { IO_NONE = 0, IO_STD = 1, IO_UMS = 2, IO_UMS_RTEM = 3, IO_DPP2 = 4 } EDS_IO_BOARD; cpp_quote("#endif //EDS_IO_BOARD") cpp_quote("#ifndef EDS_VERSION_INFO") typedef [v1_enum] enum EDS_VERSION_INFO { VER_EDI2_GLUE_FPGA = 1, VER_EDI2_EDX_FPGA = 2, VER_EDI2_SEM_FPGA = 3, VER_EDI2_DSP = 4, VER_COPPER_REV = 5, VER_EDI1_FIRMWARE_REV = 6, VER_EDI1_EDX_BUILD = 7, VER_EDI1_SEM_BUILD = 8, VER_FA = 9, VER_IO = 10, VER_DRIVER_MAJOR = 11, VER_DRIVER_MINOR = 12, VER_DRIVER_TYPE = 13, VER_OBSOLETE_14 = 14, VER_DPP2_GLUE_FPGA = 15, VER_DPP2_EDX_FPGA = 16, VER_DPP2_DSP = 17 } EDS_VERSION_INFO; cpp_quote("#endif //EDS_VERSION_INFO") cpp_quote("#ifndef EDS_DETECTOR_CLASS") typedef [v1_enum] enum EDS_DETECTOR_CLASS { DET_SILI_194 = 0, DET_SILI_DIGITAL = 1, DET_SDD = 2, DET_WDS = 3 } EDS_DETECTOR_CLASS; cpp_quote("#endif //EDS_DETECTOR_CLASS") cpp_quote("#ifndef EdsSlideType") typedef [v1_enum] enum EdsSlideType { NONE = 0, RTEM = 1, UMS1 = 2, UMS2 = 3, } EdsSlideType; cpp_quote("#endif //EdsSlideType") cpp_quote("#ifndef EdsSlideStatus") typedef [v1_enum] enum EdsSlideStatus { SlideOut = 0, SlideIn = 1, SlideMovingOut = 2, SlideMovingIn = 3, SlideHighCount = 4, SlideNoPower = 5, SlideMid = 6, SlideStopped = 7, SlideError = 8, SlideInit = 9, SlideMoveMidIn = 10, SlideMoveMidOut = 11, SlideWatchDog = 12, SlideMoveWDog = 13 } EdsSlideStatus; cpp_quote("#endif //EdsSlideStatus") [ object, uuid(5B7C6E84-5B18-469b-9F0C-B819FA44B0B6), helpstring("IEdsSlide - Base Support"), pointer_default(unique) ] interface IEdsSlide : IUnknown { // Base Support RTEM and Above [propget, helpstring("property Type")] HRESULT Type([out, retval] EdsSlideType *pVal); [propget, helpstring("property Status")] HRESULT Status([out, retval] EdsSlideStatus *pVal); [propget, helpstring("property HighCount")] HRESULT HighCount([out, retval] long *pVal); [propput, helpstring("property HighCount")] HRESULT HighCount([in] long Val); [propget, helpstring("property Threshold")] HRESULT Threshold([out, retval] long *pVal); [propput, helpstring("property Threshold")] HRESULT Threshold([in] long Val); [propget, helpstring("property FlashRate")] HRESULT FlashRate([out, retval] long *pVal); [propput, helpstring("property FlashRate")] HRESULT FlashRate([in] long Val); [propget, helpstring("property WatchDogEnable")] HRESULT WatchDogEnable([out, retval] long *pVal); [propput, helpstring("property WatchDogEnable")] HRESULT WatchDogEnable([in] long Val); // UMS-2 and above [propget, helpstring("property Position")] HRESULT Position([out, retval] float *pVal); // Base methods [helpstring("method Reset")] HRESULT Reset(); [helpstring("method MoveIn")] HRESULT MoveIn(); [helpstring("method MoveOut")] HRESULT MoveOut(); [helpstring("method WatchDogReset")] HRESULT WatchDogReset(); // UMS-1 and Above [helpstring("method MovePosition")] HRESULT MovePosition([in] float Val); // UMS-2 and above [helpstring("method Calibrate")] HRESULT Calibrate(); [helpstring("method Jog")] HRESULT Jog([in] long Val); [propget, helpstring("property MaxScale")] HRESULT MaxScale([out, retval] float* posInMm); }; [ object, uuid(8A574EDE-5286-4FD5-BCD6-A870F263983B), helpstring("ISlideConfig - Base Support"), pointer_default(unique) ] interface ISlideConfig : IUnknown { [propget, helpstring("property Type")] HRESULT Type([out, retval] EdsSlideType *pVal); [propget, helpstring("property Status")] HRESULT Status([out, retval] EdsSlideStatus *pVal); [propget, helpstring("property HighCount")] HRESULT HighCount([out, retval] long *pVal); [propput, helpstring("property HighCount")] HRESULT HighCount([in] long Val); [propget, helpstring("property Threshold")] HRESULT Threshold([out, retval] long *pVal); [propput, helpstring("property Threshold")] HRESULT Threshold([in] long Val); [propget, helpstring("property FlashRate")] HRESULT FlashRate([out, retval] long *pVal); [propput, helpstring("property FlashRate")] HRESULT FlashRate([in] long Val); [propget, helpstring("property HighSpeed")] HRESULT HighSpeed([out, retval] long *pVal); [propput, helpstring("property HighSpeed")] HRESULT HighSpeed([in] long Val); [propget, helpstring("property MediumSpeed")] HRESULT MediumSpeed([out, retval] long *pVal); [propput, helpstring("property MediumSpeed")] HRESULT MediumSpeed([in] long Val); [propget, helpstring("property LowSpeed")] HRESULT LowSpeed([out, retval] long *pVal); [propput, helpstring("property LowSpeed")] HRESULT LowSpeed([in] long Val); [propget, helpstring("property Threshold10")] HRESULT Threshold10([out, retval] long *pVal); [propput, helpstring("property Threshold10")] HRESULT Threshold10([in] long Val); [propget, helpstring("property Threshold25")] HRESULT Threshold25([out, retval] long *pVal); [propput, helpstring("property Threshold25")] HRESULT Threshold25([in] long Val); [propget, helpstring("property Threshold75")] HRESULT Threshold75([out, retval] long *pVal); [propput, helpstring("property Threshold75")] HRESULT Threshold75([in] long Val); [propget, helpstring("property Threshold90")] HRESULT Threshold90([out, retval] long *pVal); [propput, helpstring("property Threshold90")] HRESULT Threshold90([in] long Val); [propget, helpstring("property Threshold100")] HRESULT Threshold100([out, retval] long *pVal); [propput, helpstring("property Threshold100")] HRESULT Threshold100([in] long Val); [propget, helpstring("property Threshold110")] HRESULT Threshold110([out, retval] long *pVal); [propput, helpstring("property Threshold110")] HRESULT Threshold110([in] long Val); [propget, helpstring("property Setup Mode")] HRESULT SetupMode([out, retval] BOOL *pVal); [propput, helpstring("property Setup Mode")] HRESULT SetupMode([in] BOOL Val); }; cpp_quote("#ifndef EdsSlideInitStatus") typedef [v1_enum] enum EdsSlideInitStatus { SlideInitError = -1, SlideInitNone = 0, SlideInitOut = 1, SlideInitIn = 2, SlideInitMovingOut = 3, SlideInitMovingIn = 4, SlideInitMid = 5, SlideInitStopped = 6 } EdsSlideInitStatus; cpp_quote("#endif //EdsSlideInitStatus") [ object, uuid(10DD6BDC-3B5C-4294-8F9F-85D5D42DFE4E), helpstring("IEdsSlideEx - Base Support"), pointer_default(unique) ] interface IEdsSlideEx : IUnknown { [propget, helpstring("property Type")] HRESULT Type([out, retval] EdsSlideType *pVal); [propget, helpstring("property Status")] HRESULT Status([out, retval] EdsSlideStatus *pVal); [propget, helpstring("property WatchDogEnable")] HRESULT WatchDogEnable([out, retval] long *pVal); [propput, helpstring("property WatchDogEnable")] HRESULT WatchDogEnable([in] long Val); [propget, helpstring("property Position")] HRESULT Position([out, retval] float *pVal); [propget, helpstring("property MaxScale")] HRESULT MaxScale([out, retval] float* posInMm); [propget, helpstring("property InitStatus")] HRESULT InitStatus([out, retval] EdsSlideInitStatus *pVal); [helpstring("method Reset")] HRESULT Reset(); [helpstring("method MoveIn")] HRESULT MoveIn(); [helpstring("method MoveOut")] HRESULT MoveOut(); [helpstring("method WatchDogReset")] HRESULT WatchDogReset(); [helpstring("method MovePosition")] HRESULT MovePosition([in] float Val); [helpstring("method Calibrate")] HRESULT Calibrate(); }; cpp_quote("#ifndef WindowType") typedef enum WindowType { Std = 1, UTW = 2, SuperUTW = 3, Econ34Open = 4, Econ34 = 5, Econ56Open = 6, Econ56 = 7, TEMEcon = 8, StdSapphire = 11, UTWSapphire = 12, SUTWSapphire = 13, Econ34OpenSapphire = 14, Econ34Sapphire = 15, Econ56OpenSapphire = 16, Econ56Sapphire = 17, TEMEconSapphire = 18 } WindowType; cpp_quote("#endif //WindowType") [ object, uuid(EDB8F64C-F503-4c09-A81A-07F1CC5D50E4), helpstring("IAnalyzerStatus Interface"), pointer_default(unique) ] interface IAnalyzerStatus : IUnknown { [propget, helpstring("property AnalyzerTemp")] HRESULT AnalyzerTemp([out, retval] float *pVal); [propget, helpstring("property PreAmpTemp")] HRESULT PreAmpTemp([out, retval] float *pVal); [propget, helpstring("property HVStatus")] HRESULT HVStatus([out, retval] long *pVal); [propget, helpstring("property SerialLo")] HRESULT SerialLo([out, retval] long *pVal); [propget, helpstring("property SerialHi")] HRESULT SerialHi([out, retval] long *pVal); [propget, helpstring("property SerialNumber")] HRESULT SerialNumber([out, retval] BSTR *pVal); }; [ object, uuid(164B511F-8B1F-11D4-96D2-0060B0FBBCC4), dual, helpstring("ISpcCounts Interface"), pointer_default(unique) ] interface ISpcCounts : IDispatch { [propget, id(1), helpstring("property StartChannel")] HRESULT StartChannel([out, retval] short* pVal); [propput, id(1), helpstring("property StartChannel")] HRESULT StartChannel([in] short newVal); [propget, id(2), helpstring("property EndChannel")] HRESULT EndChannel([out, retval] short* pVal); [propput, id(2), helpstring("property EndChannel")] HRESULT EndChannel([in] short newVal); [id(3), helpstring("method GetAt")] HRESULT GetAt([in] short index, [out, retval] long* pCounts); [id(4), helpstring("method SetAt")] HRESULT SetAt([in] short index, [in] long counts); [id(5), helpstring("method UpdateSpcCounts")] HRESULT UpdateSpcCounts([in] short sChan, [in] short eChan, [out, retval] long* pErr); }; [ object, uuid(8F4E71C7-6BB4-474C-9B81-D8A44C9A5260), dual, helpstring("ISpcCounts2 Interface"), pointer_default(unique) ] interface ISpcCounts2 : ISpcCounts { [propget, id(6), helpstring("property Counts")] HRESULT Counts([out, retval] VARIANT* pVal); [propput, id(6), helpstring("property Counts")] HRESULT Counts([in] VARIANT newVal); } [ object, uuid(A11D2A64-8DA1-11D4-96D5-0060B0FBBCC4), dual, helpstring("IDynamicParams Interface"), pointer_default(unique) ] interface IDynamicParams : IDispatch { [propget, id(1), helpstring("property FineGain")] HRESULT FineGain([out, retval] long *pVal); [propput, id(1), helpstring("property FineGain")] HRESULT FineGain([in] long newVal); [propget, id(2), helpstring("property Zero")] HRESULT Zero([out, retval] long *pVal); [propput, id(2), helpstring("property Zero")] HRESULT Zero([in] long newVal); [propget, id(3), helpstring("property BLM")] HRESULT BLM([out, retval] long *pVal); [propput, id(3), helpstring("property BLM")] HRESULT BLM([in] long newVal); [propget, id(4), helpstring("property EdiTimeConst")] HRESULT EdiTimeConst([out, retval] long *pVal); [propput, id(4), helpstring("property EdiTimeConst")] HRESULT EdiTimeConst([in] long newVal); [propget, id(5), helpstring("property CoarseGain")] HRESULT CoarseGain([out, retval] long *pVal); [propput, id(5), helpstring("property CoarseGain")] HRESULT CoarseGain([in] long newVal); [propget, id(6), helpstring("property PeakShift")] HRESULT PeakShift([out, retval] long *pVal); [propput, id(6), helpstring("property PeakShift")] HRESULT PeakShift([in] long newVal); [propget, id(7), helpstring("property HVCutOff")] HRESULT HVCutOff([out, retval] long *pVal); [propput, id(7), helpstring("property HVCutOff")] HRESULT HVCutOff([in] long newVal); [propget, id(8), helpstring("property Resolution")] HRESULT Resolution([out, retval] float *pVal); [propput, id(8), helpstring("property Resolution")] HRESULT Resolution([in] float newVal); [propget, id(9), helpstring("property RejectTimeOut")] HRESULT RejectTimeOut([out, retval] long *pVal); [propput, id(9), helpstring("property RejectTimeOut")] HRESULT RejectTimeOut([in] long newVal); [propget, id(10), helpstring("property BusyTimeOut")] HRESULT BusyTimeOut([out, retval] long *pVal); [propput, id(10), helpstring("property BusyTimeOut")] HRESULT BusyTimeOut([in] long newVal); [propget, id(11), helpstring("property OverVoltageTimeOut")] HRESULT OverVoltageTimeOut([out, retval] long *pVal); [propput, id(11), helpstring("property OverVoltageTimeOut")] HRESULT OverVoltageTimeOut([in] long newVal); [propget, id(12), helpstring("property Inhibit0TimeOut")] HRESULT Inhibit0TimeOut([out, retval] long *pVal); [propput, id(12), helpstring("property Inhibit0TimeOut")] HRESULT Inhibit0TimeOut([in] long newVal); [propget, id(13), helpstring("property Inhibit1TimeOut")] HRESULT Inhibit1TimeOut([out, retval] long *pVal); [propput, id(13), helpstring("property Inhibit1TimeOut")] HRESULT Inhibit1TimeOut([in] long newVal); [propget, id(14), helpstring("property FATimeConst")] HRESULT FATimeConst([out, retval] long *pVal); [propput, id(14), helpstring("property FATimeConst")] HRESULT FATimeConst([in] long newVal); [propget, id(15), helpstring("property HighSpeedDiscEna")] HRESULT HighSpeedDiscEna([out, retval] long *pVal); [propput, id(15), helpstring("property HighSpeedDiscEna")] HRESULT HighSpeedDiscEna([in] long newVal); [propget, id(16), helpstring("property MediumSpeedDiscEna")] HRESULT MediumSpeedDiscEna([out, retval] long *pVal); [propput, id(16), helpstring("property MediumSpeedDiscEna")] HRESULT MediumSpeedDiscEna([in] long newVal); [propget, id(17), helpstring("property LowSpeedDiscEna")] HRESULT LowSpeedDiscEna([out, retval] long *pVal); [propput, id(17), helpstring("property LowSpeedDiscEna")] HRESULT LowSpeedDiscEna([in] long newVal); [propget, id(18), helpstring("property HighSpeedDisc")] HRESULT HighSpeedDisc([out, retval] long *pVal); [propput, id(18), helpstring("property HighSpeedDisc")] HRESULT HighSpeedDisc([in] long newVal); [propget, id(19), helpstring("property MediumSpeedDisc")] HRESULT MediumSpeedDisc([out, retval] long *pVal); [propput, id(19), helpstring("property MediumSpeedDisc")] HRESULT MediumSpeedDisc([in] long newVal); [propget, id(20), helpstring("property LowSpeedDisc")] HRESULT LowSpeedDisc([out, retval] long *pVal); [propput, id(20), helpstring("property LowSpeedDisc")] HRESULT LowSpeedDisc([in] long newVal); [propget, id(21), helpstring("property LowerLevelChannel")] HRESULT LowerLevelChannel([out, retval] long *pVal); [propput, id(21), helpstring("property LowerLevelChannel")] HRESULT LowerLevelChannel([in] long newVal); [propget, id(22), helpstring("property UpperLevelChannel")] HRESULT UpperLevelChannel([out, retval] long *pVal); [propput, id(22), helpstring("property UpperLevelChannel")] HRESULT UpperLevelChannel([in] long newVal); [propget, id(23), helpstring("property EvPerChan")] HRESULT EvPerChan([out, retval] long *pVal); [propput, id(23), helpstring("property EvPerChan")] HRESULT EvPerChan([in] long newVal); [propget, id(24), helpstring("property EnergyBlr")] HRESULT EnergyBlr([out, retval] long *pVal); [propput, id(24), helpstring("property EnergyBlr")] HRESULT EnergyBlr([in] long newVal); [propget, id(25), helpstring("property MediumBlr")] HRESULT MediumBlr([out, retval] long *pVal); [propput, id(25), helpstring("property MediumBlr")] HRESULT MediumBlr([in] long newVal); [propget, id(26), helpstring("property PreAmpResetUpperLim")] HRESULT PreAmpResetUpperLim([out, retval] long *pVal); [propput, id(26), helpstring("property PreAmpResetUpperLim")] HRESULT PreAmpResetUpperLim([in] long newVal); [propget, id(27), helpstring("property PreAmpResetLowerLim")] HRESULT PreAmpResetLowerLim([out, retval] long *pVal); [propput, id(27), helpstring("property PreAmpResetLowerLim")] HRESULT PreAmpResetLowerLim([in] long newVal); [id(28), helpstring("method Update")] HRESULT Update(); }; [ object, uuid(62EE134D-C561-11D4-970E-0060B0FBBCC4), dual, helpstring("IDetectorParams Interface"), pointer_default(unique) ] interface IDetectorParams : IDispatch { [propget, id(1), helpstring("property StartKev")] HRESULT StartKev([out, retval] float* pVal); [propput, id(1), helpstring("property StartKev")] HRESULT StartKev([in] float newVal); [propget, id(2), helpstring("property EndKev")] HRESULT EndKev([out, retval] float* pVal); [propput, id(2), helpstring("property EndKev")] HRESULT EndKev([in] float newVal); [propget, id(3), helpstring("property LiveTime")] HRESULT LiveTime([out, retval] float* pVal); [propput, id(3), helpstring("property LiveTime")] HRESULT LiveTime([in] float newVal); [propget, id(4), helpstring("property StageTilt")] HRESULT StageTilt([out, retval] float* pVal); [propput, id(4), helpstring("property StageTilt")] HRESULT StageTilt([in] float newVal); [propget, id(5), helpstring("property TakeoffAngle")] HRESULT TakeoffAngle([out, retval] float* pVal); [propput, id(5), helpstring("property TakeoffAngle")] HRESULT TakeoffAngle([in] float newVal); [propget, id(6), helpstring("property BeamFact")] HRESULT BeamFact([out, retval] float* pVal); [propput, id(6), helpstring("property BeamFact")] HRESULT BeamFact([in] float newVal); [propget, id(7), helpstring("property DetRes")] HRESULT DetRes([out, retval] float* pVal); [propput, id(7), helpstring("property DetRes")] HRESULT DetRes([in] float newVal); [propget, id(8), helpstring("property DetType")] HRESULT DetType([out, retval] long* pVal); [propput, id(8), helpstring("property DetType")] HRESULT DetType([in] long newVal); [propget, id(9), helpstring("property ParThick")] HRESULT ParThick([out, retval] float* pVal); [propput, id(9), helpstring("property ParThick")] HRESULT ParThick([in] float newVal); [propget, id(10), helpstring("property AlThick")] HRESULT AlThick([out, retval] float* pVal); [propput, id(10), helpstring("property AlThick")] HRESULT AlThick([in] float newVal); [propget, id(11), helpstring("property BeThick")] HRESULT BeThick([out, retval] float* pVal); [propput, id(11), helpstring("property BeThick")] HRESULT BeThick([in] float newVal); [propget, id(12), helpstring("property AuThick")] HRESULT AuThick([out, retval] float* pVal); [propput, id(12), helpstring("property AuThick")] HRESULT AuThick([in] float newVal); [propget, id(13), helpstring("property SiDead")] HRESULT SiDead([out, retval] float* pVal); [propput, id(13), helpstring("property SiDead")] HRESULT SiDead([in] float newVal); [propget, id(14), helpstring("property SiLive")] HRESULT SiLive([out, retval] float* pVal); [propput, id(14), helpstring("property SiLive")] HRESULT SiLive([in] float newVal); [propget, id(15), helpstring("property XRayInc")] HRESULT XRayInc([out, retval] float* pVal); [propput, id(15), helpstring("property XRayInc")] HRESULT XRayInc([in] float newVal); [propget, id(16), helpstring("property Azimuth")] HRESULT Azimuth([out, retval] float* pVal); [propput, id(16), helpstring("property Azimuth")] HRESULT Azimuth([in] float newVal); [propget, id(17), helpstring("property Elevation")] HRESULT Elevation([out, retval] float* pVal); [propput, id(17), helpstring("property Elevation")] HRESULT Elevation([in] float newVal); [propget, id(18), helpstring("property B_Coeff")] HRESULT B_Coeff([out, retval] float* pVal); [propput, id(18), helpstring("property B_Coeff")] HRESULT B_Coeff([in] float newVal); [propget, id(19), helpstring("property C_Coeff")] HRESULT C_Coeff([out, retval] float* pVal); [propput, id(19), helpstring("property C_Coeff")] HRESULT C_Coeff([in] float newVal); [propget, id(20), helpstring("property TailMax")] HRESULT TailMax([out, retval] float* pVal); [propput, id(20), helpstring("property TailMax")] HRESULT TailMax([in] float newVal); [propget, id(21), helpstring("property TailHeight")] HRESULT TailHeight([out, retval] float* pVal); [propput, id(21), helpstring("property TailHeight")] HRESULT TailHeight([in] float newVal); [propget, id(22), helpstring("property AccVolt")] HRESULT AccVolt([out, retval] float* pVal); [propput, id(22), helpstring("property AccVolt")] HRESULT AccVolt([in] float newVal); [propget, id(23), helpstring("property ApThick")] HRESULT ApThick([out, retval] float* pVal); [propput, id(23), helpstring("property ApThick")] HRESULT ApThick([in] float newVal); }; cpp_quote("#ifndef ParamStructType") typedef struct ParamStructType { float strt_kev; float end_kev; float live_time; float stg_tilt; float toff_ang; float beam_fact; float det_res; long det_type; float par_thick; float al_thick; float be_thick; float au_thick; float si_dead; float si_live; float xray_inc; float azimuth; float elevation; float b_coeff; float c_coeff; float tail_max; float tail_height; float acc_volt; float ap_thick; } ParamStructType; cpp_quote("#endif //ParamStructType") [ object, uuid(19E5EA7E-B45F-47AB-AB02-055FF721BB8A), helpstring("IDetectorParamsStruct Interface"), pointer_default(unique) ] interface IDetectorParamsStruct : IUnknown { [helpstring("method GetParamStruct")] HRESULT GetParamStruct([out] ParamStructType* pVal); [helpstring("method SetParamStruct")] HRESULT SetParamStruct([in] ParamStructType newVal); }; [ object, uuid(A11D2A66-8DA1-11D4-96D5-0060B0FBBCC4), dual, helpstring("IIoParams Interface"), pointer_default(unique) ] interface IIoParams : IDispatch { [propget, id(1), helpstring("property RTEMFlashRate")] HRESULT RTEMFlashRate([out, retval] long *pVal); [propput, id(1), helpstring("property RTEMFlashRate")] HRESULT RTEMFlashRate([in] long newVal); [propget, id(2), helpstring("property RTEMCountRate")] HRESULT RTEMCountRate([out, retval] long *pVal); [propput, id(2), helpstring("property RTEMCountRate")] HRESULT RTEMCountRate([in] long newVal); [propget, id(3), helpstring("property RTEMThreshold")] HRESULT RTEMThreshold([out, retval] long *pVal); [propput, id(3), helpstring("property RTEMThreshold")] HRESULT RTEMThreshold([in] long newVal); [propget, id(4), helpstring("property InterruptEnable")] HRESULT InterruptEnable([out, retval] long *pVal); [propput, id(4), helpstring("property InterruptEnable")] HRESULT InterruptEnable([in] long newVal); [propget, id(5), helpstring("property SCAOffset")] HRESULT SCAOffset([out, retval] long *pVal); [propput, id(5), helpstring("property SCAOffset")] HRESULT SCAOffset([in] long newVal); [propget, id(6), helpstring("property SCAGain")] HRESULT SCAGain([out, retval] long *pVal); [propput, id(6), helpstring("property SCAGain")] HRESULT SCAGain([in] long newVal); [propget, id(7), helpstring("property SCAPulseWidth")] HRESULT SCAPulseWidth([out, retval] long *pVal); [propput, id(7), helpstring("property SCAPulseWidth")] HRESULT SCAPulseWidth([in] long newVal); [propget, id(8), helpstring("property SCAPolarity")] HRESULT SCAPolarity([out, retval] long *pVal); [propput, id(8), helpstring("property SCAPolarity")] HRESULT SCAPolarity([in] long newVal); [propget, id(9), helpstring("property RateMeterOffset")] HRESULT RateMeterOffset([out, retval] long *pVal); [propput, id(9), helpstring("property RateMeterOffset")] HRESULT RateMeterOffset([in] long newVal); [propget, id(10), helpstring("property RateMeterGain")] HRESULT RateMeterGain([out, retval] long *pVal); [propput, id(10), helpstring("property RateMeterGain")] HRESULT RateMeterGain([in] long newVal); [propget, id(11), helpstring("property RateMeterTimeConst")] HRESULT RateMeterTimeConst([out, retval] long *pVal); [propput, id(11), helpstring("property RateMeterTimeConst")] HRESULT RateMeterTimeConst([in] long newVal); [propget, id(12), helpstring("property RatemeterPolarity")] HRESULT RatemeterPolarity([out, retval] long *pVal); [propput, id(12), helpstring("property RatemeterPolarity")] HRESULT RatemeterPolarity([in] long newVal); [propget, id(13), helpstring("property RateMeterIntEna")] HRESULT RateMeterIntEna([out, retval] long *pVal); [propput, id(13), helpstring("property RateMeterIntEna")] HRESULT RateMeterIntEna([in] long newVal); [propget, id(14), helpstring("property SCAOnVoltage")] HRESULT SCAOnVoltage([out, retval] long *pVal); [propput, id(14), helpstring("property SCAOnVoltage")] HRESULT SCAOnVoltage([in] long newVal); [propget, id(15), helpstring("property SCAOffVoltage")] HRESULT SCAOffVoltage([out, retval] long *pVal); [propput, id(15), helpstring("property SCAOffVoltage")] HRESULT SCAOffVoltage([in] long newVal); [propget, id(16), helpstring("property DSCAPulseWidth")] HRESULT DSCAPulseWidth([out, retval] long *pVal); [propput, id(16), helpstring("property DSCAPulseWidth")] HRESULT DSCAPulseWidth([in] long newVal); [propget, id(17), helpstring("property DSCAPolarity")] HRESULT DSCAPolarity([out, retval] long *pVal); [propput, id(17), helpstring("property DSCAPolarity")] HRESULT DSCAPolarity([in] long newVal); [propget, id(18), helpstring("property RateMeterOffVoltage")] HRESULT RateMeterOffVoltage([out, retval] long *pVal); [propput, id(18), helpstring("property RateMeterOffVoltage")] HRESULT RateMeterOffVoltage([in] long newVal); [propget, id(19), helpstring("property RateMeterOnVoltage")] HRESULT RateMeterOnVoltage([out, retval] long *pVal); [propput, id(19), helpstring("property RateMeterOnVoltage")] HRESULT RateMeterOnVoltage([in] long newVal); }; [ object, uuid(17979EE7-CE5C-46B1-B41B-C2032409F58E), dual, helpstring("ISEMParams Interface"), pointer_default(unique) ] interface ISEMParams : IDispatch { [propget, id(1), helpstring("property IntersectDistance")] HRESULT IntersectDistance([out, retval] float *pVal); [propput, id(1), helpstring("property IntersectDistance")] HRESULT IntersectDistance([in] float newVal); [propget, id(2), helpstring("property ScaleSetting")] HRESULT ScaleSetting([out, retval] float *pVal); [propput, id(2), helpstring("property ScaleSetting")] HRESULT ScaleSetting([in] float newVal); }; [ object, uuid(FD8CA06F-A8AC-468E-ACE3-740F6AC00AEC), helpstring("ISpcMapEds Interface"), pointer_default(unique) ] interface ISpcMapEds : IUnknown { // [helpstring("method AttachEvent")] HRESULT AttachEvent(); // [helpstring("method DetachEvent")] HRESULT DetachEvent(); // [propget, helpstring("property PointsPerLine")] HRESULT PointsPerLine([out, retval] long *pVal); // [propput, helpstring("property PointsPerLine")] HRESULT PointsPerLine([in] long newVal); [helpstring("method SyncEol")] HRESULT SyncEol(); [helpstring("method GetEdsData")] HRESULT GetEdsData([out] long* BuffSize, [out, size_is(, *BuffSize)] long **ppBuffer); [helpstring("method StartLine")] HRESULT StartLine(); [helpstring("method Setup")] HRESULT Setup([in] long NumPoints); [helpstring("method CleanUp")] HRESULT CleanUp(); }; [ object, uuid(BA238DC0-CC46-11D4-9719-0060B0FBBCC4), dual, helpstring("ICalibResult Interface"), pointer_default(unique) ] interface ICalibResult : IDispatch { [propget, id(1), helpstring("property Zero")] HRESULT Zero([out, retval] long* pVal); [propput, id(1), helpstring("property Zero")] HRESULT Zero([in] long newVal); [propget, id(2), helpstring("property FineGain")] HRESULT FineGain([out, retval] long* pVal); [propput, id(2), helpstring("property FineGain")] HRESULT FineGain([in] long newVal); [propget, id(3), helpstring("property CoarseGain")] HRESULT CoarseGain([out, retval] long* pVal); [propput, id(3), helpstring("property CoarseGain")] HRESULT CoarseGain([in] long newVal); [propget, id(4), helpstring("property Resolution")] HRESULT Resolution([out, retval] float* pVal); [propput, id(4), helpstring("property Resolution")] HRESULT Resolution([in] float newVal); [propget, id(5), helpstring("property AutoCalState")] HRESULT AutoCalState([out, retval] short* pVal); [propget, id(6), helpstring("property PeakEnergy")] HRESULT PeakEnergy([in] short index, [out, retval] float* pVal); [propget, id(7), helpstring("property MaxPeak")] HRESULT MaxPeak([out, retval] long* pVal); [id(8), helpstring("method UpdateCalibResult")] HRESULT UpdateCalibResult(); }; [ object, uuid(5A3A410F-CD10-11D4-971B-0060B0FBBCC4), dual, helpstring("ICalibration Interface"), pointer_default(unique) ] interface ICalibration : IDispatch { [propget, id(1), helpstring("method CalibResult")] HRESULT CalibResult([out, retval] ICalibResult** ppVal); [propput, id(1), helpstring("method CalibResult")] HRESULT CalibResult([in] ICalibResult* pVal); [propput, id(2), helpstring("property CoarseGain")] HRESULT CoarseGain([in] long newVal); [propget, id(3), helpstring("property FineGain")] HRESULT FineGain([out, retval] long* pVal); [propput, id(3), helpstring("property FineGain")] HRESULT FineGain([in] long newVal); [propget, id(4), helpstring("property BLM")] HRESULT BLM([out, retval] long* pVal); [propput, id(4), helpstring("property BLM")] HRESULT BLM([in] long newVal); [propget, id(5), helpstring("property CalibConverge")] HRESULT CalibConverge([out, retval] short* pVal); [id(6), helpstring("method EdsCalib")] HRESULT EdsCalib([in] float eng1, [in] float eng2, [in] long preCnts, [in] short iter); [id(7), helpstring("method StopCalib")] HRESULT StopCalib([out, retval] long* pErr); [id(8), helpstring("method SetZero")] HRESULT SetZero([in] long zeroVal); }; [ object, uuid(BA238DBE-CC46-11D4-9719-0060B0FBBCC4), dual, helpstring("ITimeConstant Interface"), pointer_default(unique) ] interface ITimeConstant : IDispatch { [propget, id(1), helpstring("property Count")] HRESULT Count([out, retval] long* pVal); [propget, id(2), helpstring("property CurrentIndex")] HRESULT CurrentIndex([out, retval] long* pVal); [propput, id(2), helpstring("property CurrentIndex")] HRESULT CurrentIndex([in] long newVal); [propget, id(3), helpstring("property CurrentTc")] HRESULT CurrentTc([out, retval] float* pVal); [propput, id(3), helpstring("property CurrentTc")] HRESULT CurrentTc([in] float newVal); [propget, id(4), helpstring("property SampleTime")] HRESULT SampleTime([out, retval] float* pVal); [id(5), helpstring("method TcFromIndex")] HRESULT TcFromIndex([in] short index, [out, retval] float* pTc); [id(6), helpstring("method IndexFromTc")] HRESULT IndexFromTc([in] float tc, [out, retval] long* pIndex); }; [ object, uuid(FFDC56B6-BF08-4a4a-A8A9-B2F762F6340B), dual, helpstring("IEvPerChan Interface"), pointer_default(unique) ] interface IEvPerChan : IDispatch { [propget, id(1), helpstring("property Count")] HRESULT Count([out, retval] long* pVal); [propget, id(2), helpstring("property CurrentEvPerChan")] HRESULT CurrentEvPerChan([out, retval] float* pVal); [propput, id(2), helpstring("property CurrentEvPerChan")] HRESULT CurrentEvPerChan([in] float newVal); [id(3), helpstring("method EvPerChanFromIndex")] HRESULT EvPerChanFromIndex([in] short index, [out, retval] float* pEvPerChan); }; [ object, uuid(5A3A410C-CD10-11D4-971B-0060B0FBBCC4), dual, helpstring("IRegionOfInterest Interface"), pointer_default(unique) ] interface IRegionOfInterest : IDispatch { [propget, id(1), helpstring("property CountOfRois")] HRESULT CountOfRois([out, retval] short* pVal); [propget, id(2), helpstring("property Count")] HRESULT Count([in] short roiNum, [out, retval] long* pVal); [id(3), helpstring("method SelectSca")] HRESULT SelectSca([in] short numRoi, [in] short numSca); [id(4), helpstring("method EnablePresetCount")] HRESULT EnablePresetCount([in] short numRoi, [in] short roiEnabled); [id(5), helpstring("method DefineRoi")] HRESULT DefineRoi([in] short numRoi, [in] short startChan, [in] short endChan); [id(6), helpstring("method ClearRoi")] HRESULT ClearRoi([in] short numRoi); [id(7), helpstring("method UpdateRoiCounts")] HRESULT UpdateRoiCounts([out, retval] long* pErr); }; [ object, uuid(0A0787E3-8A75-11D4-96D1-0060B0FBBCC4), helpstring("IEdam Interface"), pointer_default(unique) ] interface IEdam : IUnknown { [propget, helpstring("property EdsStatus")] HRESULT EdsStatus([in] short index, [out, retval] BYTE* pVal); [propget, helpstring("property ClockTime")] HRESULT ClockTime([out, retval] float* pVal); [propget, helpstring("property LiveTime")] HRESULT LiveTime([out, retval] float* pVal); [propget, helpstring("property CfgFileName")] HRESULT CfgFileName([out, retval] BSTR* pVal); [propput, helpstring("property CfgFileName")] HRESULT CfgFileName([in] BSTR Val); [propget, helpstring("property AnalyzerType")] HRESULT AnalyzerType([out, retval] long* pVal); [propget, helpstring("property InputCps")] HRESULT InputCps([out, retval] long* pVal); [propget, helpstring("property OutputCps")] HRESULT OutputCps([out, retval] long* pVal); [propget, helpstring("property AnalyzerTemp")] HRESULT AnalyzerTemp([out, retval] float* pTemp); [propget, helpstring("property DetectorWindow")] HRESULT DetectorWindow([out, retval] WindowType* pVal); [propput, helpstring("property DetectorWindow")] HRESULT DetectorWindow([in] WindowType newVal); [propget, helpstring("property SpcCounts")] HRESULT SpcCounts([out, retval] ISpcCounts** ppVal); [propget, helpstring("property TimeConstant")] HRESULT TimeConstant([out, retval] ITimeConstant** ppVal); [propget, helpstring("property Calibration")] HRESULT Calibration([out, retval] ICalibration** ppVal); [propget, helpstring("property RoiCounts")] HRESULT RoiCounts([out, retval] IRegionOfInterest** ppVal); [propget, helpstring("property DynamicParams")] HRESULT DynamicParams([out, retval] IDynamicParams** ppVal); [propget, helpstring("property DetectorParams")] HRESULT DetectorParams([out, retval] IDetectorParams** ppVal); [propput, helpstring("property DetectorParams")] HRESULT DetectorParams([in] IDetectorParams* pVal); [propget, helpstring("property IoParams")] HRESULT IoParams([out, retval] IIoParams** ppVal); [propput, helpstring("property IoParams")] HRESULT IoParams([in] IIoParams* pVal); [propget, helpstring("property EvPerChannel")] HRESULT EvPerChannel([out, retval] short* pVal); [propput, helpstring("property EvPerChannel")] HRESULT EvPerChannel([in] short newVal); [helpstring("method ClearMemory")] HRESULT ClearMemory(); [helpstring("method EdsAnal")] HRESULT EdsAnal([in] short analMode, [in] float analPreset, [out, retval] long* pErr); [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); [helpstring("method XraySet")] HRESULT XraySet([in] short anal_mode, [in] long preset); [helpstring("method Reset")] HRESULT Reset(); [helpstring("method ReadAllSpcCounts")] HRESULT ReadAllSpcCounts([in] short sChan, [in] short eChan, [out, retval] long pCnts[SPCCOUNTS]); [helpstring("method ReadAllRoiCounts")] HRESULT ReadAllRoiCounts([out] short* pNumRoi, [out] long counts[ROICOUNT]); //[helpstring("method EdsXanal")] HRESULT EdsXanal([out] short* pRoiNum, [out] long pCounts[ROICOUNT], [out] short* pState); [helpstring("method EdsXanal")] HRESULT EdsXanal([in] short* pRoiNum, [out, size_is(*pRoiNum)] long ppCounts[], [out] short* pState); }; [ object, uuid(4611822F-EEE8-4479-AC93-E01EED527826), helpstring("IEdam2 Interface"), pointer_default(unique) ] interface IEdam2 : IEdam { [propget, helpstring("property SEMParams")] HRESULT SEMParams([out, retval] ISEMParams** ppVal); [propput, helpstring("property SEMParams")] HRESULT SEMParams([in] ISEMParams* pVal); [propget, helpstring("property Data")] HRESULT Data([in] BSTR name, [out, retval] VARIANT* pVal); [propput, helpstring("property Data")] HRESULT Data([in] BSTR name, [in] VARIANT newVal); [helpstring("method GetLowHighChannel")] HRESULT GetLowHighChannel([out] short* sChan, [out] short* eChan); [helpstring("method SetLowHighChannel")] HRESULT SetLowHighChannel([in] short sChan, [in] short eChan); }; [ object, uuid(84ccf668-1d30-4c51-9e59-e7da8f2ac1ae), helpstring("IEdam3 Interface"), pointer_default(unique) ] interface IEdam3 : IEdam2 { [propget, helpstring("property DetectorInput")] HRESULT DetectorInput([out, retval] long *pVal); [propput, helpstring("property DetectorInput")] HRESULT DetectorInput([in] long newVal); [helpstring("method ReadAllSpcCountsEx")] HRESULT ReadAllSpcCountsEx([in] long StartChan, [in] long EndChan, [in] long BuffSize, [out, size_is(BuffSize)] long *Buffer); [propget, helpstring("property SpcMapEds")] HRESULT SpcMapEds([out, retval] ISpcMapEds** ppVal); [propget, helpstring ("property AnalyzerStatus")]HRESULT AnalyzerStatus([out, retval] IAnalyzerStatus** ppVal); [propget, helpstring ("property EvPerChan")] HRESULT EvPerChan([out, retval] IEvPerChan** ppVal); [propget, helpstring ("property EdsSlide")] HRESULT EdsSlide([out, retval] IEdsSlide** ppVal); [propget, helpstring("property FrontEnd")] HRESULT FrontEnd([out, retval] EDS_FRONT_END *pVal); [propget, helpstring("property IoBoard")] HRESULT IoBoard([out, retval] EDS_IO_BOARD *pVal); [propget, helpstring("property DetectorClass")] HRESULT DetectorClass([out, retval] EDS_DETECTOR_CLASS *pVal); [propget, helpstring("property Version")] HRESULT Version([in] EDS_VERSION_INFO idx, [out, retval] long *pVal); }; [ uuid(BB09BBBC-CACE-11D2-901B-0080C7FCC78D), object, local, hidden, oleautomation, helpstring("Models a hidden _IEdam interface") ] interface _IEdam : IUnknown { [propget, id(1), helpstring("property EdsStatus")] HRESULT EdsStatus([in] short index, [out, retval] BYTE* pVal); [propget, id(2), helpstring("property ClockTime")] HRESULT ClockTime([out, retval] float* pVal); [propget, id(3), helpstring("property LiveTime")] HRESULT LiveTime([out, retval] float* pVal); [propget, id(4), helpstring("property CfgFileName")] HRESULT CfgFileName([out, retval] BSTR* pVal); [propput, id(4), helpstring("property CfgFileName")] HRESULT CfgFileName([in] BSTR Val); [propget, id(5), helpstring("property AnalyzerType")] HRESULT AnalyzerType([out, retval] long* pVal); [propget, id(6), helpstring("property InputCps")] HRESULT InputCps([out, retval] long* pVal); [propget, id(7), helpstring("property OutputCps")] HRESULT OutputCps([out, retval] long* pVal); [propget, id(8), helpstring("property AnalyzerTemp")] HRESULT AnalyzerTemp([out, retval] float* pTemp); [propget, id(9), helpstring("property DetectorWindow")] HRESULT DetectorWindow([out, retval] WindowType* pVal); [propput, id(9), helpstring("property DetectorWindow")] HRESULT DetectorWindow([in] WindowType newVal); [propget, id(10), helpstring("property SpcCounts")] HRESULT SpcCounts([out, retval] ISpcCounts** ppVal); [propget, id(11), helpstring("property TimeConstant")] HRESULT TimeConstant([out, retval] ITimeConstant** ppVal); [propget, id(12), helpstring("property Calibration")] HRESULT Calibration([out, retval] ICalibration** ppVal); [propget, id(13), helpstring("property RoiCounts")] HRESULT RoiCounts([out, retval] IRegionOfInterest** ppVal); [propget, id(14), helpstring("property DynamicParams")] HRESULT DynamicParams([out, retval] IDynamicParams** ppVal); [propget, id(15), helpstring("property DetectorParams")] HRESULT DetectorParams([out, retval] IDetectorParams** ppVal); [propput, id(15), helpstring("property DetectorParams")] HRESULT DetectorParams([in] IDetectorParams* pVal); [propget, id(16), helpstring("property IoParams")] HRESULT IoParams([out, retval] IIoParams** ppVal); [propput, id(16), helpstring("property IoParams")] HRESULT IoParams([in] IIoParams* pVal); [propget, id(17), helpstring("property EvPerChannel")] HRESULT EvPerChannel([out, retval] short* pVal); [propput, id(17), helpstring("property EvPerChannel")] HRESULT EvPerChannel([in] short newVal); [id(18), helpstring("method ClearMemory")] HRESULT ClearMemory(); [id(19), helpstring("method EdsAnal")] HRESULT EdsAnal([in] short analMode, [in] float analPreset, [out, retval] long* pErr); [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); [id(21), helpstring("method XraySet")] HRESULT XraySet([in] short anal_mode, [in] long preset); [id(22), helpstring("method Reset")] HRESULT Reset(); [id(23), propget, helpstring("property SEMParams")] HRESULT SEMParams([out, retval] ISEMParams** ppVal); [id(23), propput, helpstring("property SEMParams")] HRESULT SEMParams([in] ISEMParams* pVal); [id(24), propget, helpstring("property Data")] HRESULT Data([in] BSTR name, [out, retval] VARIANT* pVal); [id(24), propput, helpstring("property Data")] HRESULT Data([in] BSTR name, [in] VARIANT newVal); [id(25), helpstring("method GetLowHighChannel")] HRESULT GetLowHighChannel([out] short* sChan, [out] short* eChan); [id(26), helpstring("method SetLowHighChannel")] HRESULT SetLowHighChannel([in] short sChan, [in] short eChan); };