dxpSITORO  1-0
NDDxp.h
Go to the documentation of this file.
1 #ifndef NDDXP_H
2 #define NDDXP_H
3 
4 #include <epicsTypes.h>
5 #include <epicsEvent.h>
6 
7 #include <asynNDArrayDriver.h>
8 
9 #define MAX_CHANNELS_PER_SYSTEM 8
10 #define DXP_MAX_SCAS 24
11 #define MAX_ATTR_NAME_LEN 256
12 
13 typedef struct moduleStatistics {
14  double realTime;
16  double reserved1;
17  double triggers;
18  double events;
19  double icr;
20  double ocr;
21  double reserved2;
22  double reserved3;
24 
25 typedef enum {
29 
30 /* These structures must be packed */
31 #pragma pack(1)
32 typedef struct falconBufferHeader {
33  epicsUInt16 tag0; /* Tag word 0 */
34  epicsUInt16 tag1; /* Tag word 1 */
35  epicsUInt16 headerSize; /* Buffer header size */
36  epicsUInt16 mappingMode; /* Mapping mode (1=Full spectrum, 2=Multiple ROI, 3=List mode) */
37  epicsUInt16 runNumber; /* Run number */
38  epicsUInt32 bufferNumber; /* Sequential buffer number, low word first */
39  epicsUInt16 bufferID; /* 0=A, 1=B */
40  epicsUInt16 numPixels; /* Number of pixels in buffer */
41  epicsUInt32 firstPixel; /* Starting pixel number, low word first */
42  epicsUInt16 moduleNumber;
43  epicsUInt16 channelID;
44  epicsUInt16 channelElement;
45  epicsUInt16 reserved1[6];
46  epicsUInt16 channelSize;
47  epicsUInt16 reserved2[3];
48  epicsUInt16 bufferErrors;
50 
51 typedef struct falconMCAPixelHeader {
52  epicsUInt16 tag0; /* Tag word 0 */
53  epicsUInt16 tag1; /* Tag word 1 */
54  epicsUInt16 headerSize; /* Buffer header size */
55  epicsUInt16 mappingMode; /* Mapping mode (1=Full spectrum, 2=Multiple ROI, 3=List mode) */
56  epicsUInt32 pixelNumber; /* Pixel number */
57  epicsUInt32 blockSize; /* Total pixel block size, low word first */
58  epicsUInt16 spectrumSize;
59  epicsUInt16 reserved1[23];
60  epicsUInt32 realTime;
61  epicsUInt32 triggerLiveTime;
62  epicsUInt32 triggers;
63  epicsUInt32 outputCounts;
65 #pragma pack()
66 
67 /* Mapping mode parameters */
68 #define NDDxpCollectModeString "DxpCollectMode"
69 #define NDDxpNDArrayModeString "DxpNDArrayMode"
70 #define NDDxpPixelsPerRunString "DxpPixelsPerRun"
71 #define NDDxpPixelsPerBufferString "DxpPixelsPerBuffer"
72 #define NDDxpAutoPixelsPerBufferString "DxpAutoPixelsPerBuffer"
73 #define NDDxpPixelAdvanceModeString "DxpPixelAdvanceMode"
74 #define NDDxpInputLogicPolarityString "DxpInputLogicPolarity"
75 #define NDDxpIgnoreGateString "DxpIgnoreGate"
76 #define NDDxpSyncCountString "DxpSyncCount"
77 
78 #define NDDxpListModeString "DxpListMode"
79 #define NDDxpCurrentPixelString "DxpCurrentPixel"
80 #define NDDxpNextPixelString "DxpNextPixel"
81 #define NDDxpBufferOverrunString "DxpBufferOverrun"
82 #define NDDxpMBytesReadString "DxpMBytesRead"
83 #define NDDxpReadRateString "DxpReadRate"
84 
85 /* Internal asyn driver parameters */
86 #define NDDxpErasedString "DxpErased"
87 #define NDDxpAcquiringString "NDDxpAcquiring" /* Internal use only !!! */
88 #define NDDxpBufferCounterString "DxpBufferCounter"
89 #define NDDxpPollTimeString "DxpPollTime"
90 #define NDDxpForceReadString "DxpForceRead"
91 
92 /* Diagnostic trace parameters */
93 #define NDDxpTraceModeString "DxpTraceMode"
94 #define NDDxpTraceTimeString "DxpTraceTime"
95 #define NDDxpTraceDataString "DxpTraceData"
96 #define NDDxpTraceTimeArrayString "DxpTraceTimeArray"
97 
98 /* Runtime statistics */
99 #define NDDxpTriggerLiveTimeString "DxpTriggerLiveTime"
100 #define NDDxpTriggersString "DxpTriggers"
101 #define NDDxpEventsString "DxpEvents"
102 #define NDDxpInputCountRateString "DxpInputCountRate"
103 #define NDDxpOutputCountRateString "DxpOutputCountRate"
104 
105 /* High-level DXP parameters */
106 #define NDDxpDetectionThresholdString "DxpDetectionThreshold"
107 #define NDDxpMinPulsePairSeparationString "DxpMinPulsePairSeparation"
108 #define NDDxpDetectionFilterString "DxpDetectionFilter"
109 #define NDDxpScaleFactorString "DxpScaleFactor"
110 #define NDDxpNumMCAChannelsString "DxpNumMCAChannels"
111 #define NDDxpMCARefreshPeriodString "DxpMCARefreshPeriod"
112 #define NDDxpPresetModeString "DxpPresetMode"
113 #define NDDxpPresetRealString "DxpPresetReal"
114 #define NDDxpPresetEventsString "DxpPresetEvents"
115 #define NDDxpPresetTriggersString "DxpPresetTriggers"
116 
117 /* Which of these to implement? */
118 #define NDDxpDetectorPolarityString "DxpDetectorPolarity"
119 #define NDDxpDecayTimeString "DxpDecayTime"
120 #define NDDxpSpectrumXAxisString "DxpSpectrumXAxis"
121 #define NDDxpTriggerOutputString "DxpTriggerOutput"
122 #define NDDxpLiveTimeOutputString "DxpLiveTimeOutput"
123 
124 /* SCA parameters */
125 #define NDDxpSCATriggerModeString "DxpSCATriggerMode"
126 #define NDDxpSCAPulseDurationString "DxpSCAPulseDuration"
127 #define NDDxpMaxSCAsString "DxpMaxSCAs"
128 #define NDDxpNumSCAsString "DxpNumSCAs"
129 #define NDDxpSCALowString "DxpSCALow"
130 #define NDDxpSCAHighString "DxpSCAHigh"
131 /* For each SCA there are 2 parameters
132  * DXPSCA$(N)Low
133  * DXPSCA$(N)High
134 */
135 
136 /* INI file parameters */
137 #define NDDxpSaveSystemFileString "DxpSaveSystemFile"
138 #define NDDxpSaveSystemString "DxpSaveSystem"
139 
140 /* Module information */
141 #define NDDxpSerialNumberString "DxpSerialNumber"
142 #define NDDxpFirmwareVersionString "DxpFirmwareVersion"
143 
144 
145 class NDDxp : public asynNDArrayDriver
146 {
147 public:
148  NDDxp(const char *portName, int nCChannels, int maxBuffers, size_t maxMemory);
149 
150  /* virtual methods to override from asynNDArrayDriver */
151  virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value);
152  virtual asynStatus writeFloat64(asynUser *pasynUser, epicsFloat64 value);
153  virtual asynStatus readInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t nElements, size_t *nIn);
154  void report(FILE *fp, int details);
155 
156  /* Local methods to this class */
157  asynStatus xia_checkError( asynUser* pasynUser, epicsInt32 xiastatus, const char *xiacmd );
158  void shutdown();
159 
160  void acquisitionTask();
161  asynStatus pollMappingMode();
162  int getChannel(asynUser *pasynUser, int *addr);
163  void getModuleInfo();
164  asynStatus setPresets(asynUser *pasynUser, int addr);
165  asynStatus setDxpParam(asynUser *pasynUser, int addr, int function, double value);
166  asynStatus getDxpParams(asynUser *pasynUser, int addr);
167  asynStatus setSCAs(asynUser *pasynUser, int addr);
168  asynStatus getSCAs(asynUser *pasynUser, int addr);
169  asynStatus getAcquisitionStatus(asynUser *pasynUser, int addr);
170  asynStatus getModuleStatistics(asynUser *pasynUser, int addr, moduleStatistics *stats);
171  asynStatus getAcquisitionStatistics(asynUser *pasynUser, int addr);
172  asynStatus getMcaData(asynUser *pasynUser, int addr);
173  asynStatus getMappingData();
174  asynStatus getTrace(asynUser* pasynUser, int addr,
175  epicsInt32* data, size_t maxLen, size_t *actualLen);
176  asynStatus configureCollectMode();
177  asynStatus setNumChannels(asynUser *pasynUser, epicsInt32 newsize, epicsInt32 *rbValue);
178  asynStatus startAcquiring(asynUser *pasynUser);
179  asynStatus stopAcquiring(asynUser *pasynUser);
180 
181 protected:
182  /* Mapping mode parameters */
184  #define FIRST_DXP_PARAM NDDxpCollectMode
193 
194  /* Used in SITORO? */
201 
202  /* Internal asyn driver parameters */
209  /* Runtime statistics */
216  /* Diagnostic trace parameters */
222  /* High-level DXP parameters */
233 
234  /* Which of these to implement? */
240 
241  /* SCA parameters */
248 
249  /* INI file parameters */
252 
253  /* Module information */
256 
257  /* Commands from MCA interface */
258  int mcaData; /* int32Array, write/read */
259  int mcaStartAcquire; /* int32, write */
260  int mcaStopAcquire; /* int32, write */
261  int mcaErase; /* int32, write */
262  int mcaReadStatus; /* int32, write */
263  int mcaChannelAdvanceSource; /* int32, write */
264  int mcaNumChannels; /* int32, write */
265  int mcaAcquireMode; /* int32, write */
266  int mcaSequence; /* int32, write */
267  int mcaPrescale; /* int32, write */
268  int mcaPresetSweeps; /* int32, write */
269  int mcaPresetLowChannel; /* int32, write */
270  int mcaPresetHighChannel; /* int32, write */
271  int mcaDwellTime; /* float64, write/read */
272  int mcaPresetLiveTime; /* float64, write */
273  int mcaPresetRealTime; /* float64, write */
274  int mcaPresetCounts; /* float64, write */
275  int mcaAcquiring; /* int32, read */
276  int mcaElapsedLiveTime; /* float64, read */
277  int mcaElapsedRealTime; /* float64, read */
278  int mcaElapsedCounts; /* float64, read */
279 
280 private:
281  /* Data */
282  epicsUInt32 **pMcaRaw;
283  epicsUInt16 *pMapRaw;
284  epicsFloat64 *tmpStats;
285 
286  int nChannels;
287  unsigned int numModules;
288  int *channelsPerModule;
289  int *firstChanOnModule;
290  int maxSCAs;
291 
292  epicsEvent *cmdStartEvent;
293  epicsEvent *cmdStopEvent;
294  epicsEvent *stoppedEvent;
295 
296  epicsUInt32 *currentBuf;
297  int traceLength;
298  epicsInt32 *traceBuffer;
299  epicsFloat64 *traceTimeBuffer;
300  epicsFloat64 *spectrumXAxisBuffer;
301 
303 
304  bool polling;
305  int uniqueId;
306  char attrRealTimeName [MAX_CHANNELS_PER_SYSTEM][MAX_ATTR_NAME_LEN];
307  char attrRealTimeDescription [MAX_CHANNELS_PER_SYSTEM][MAX_ATTR_NAME_LEN];
308  char attrLiveTimeName [MAX_CHANNELS_PER_SYSTEM][MAX_ATTR_NAME_LEN];
309  char attrLiveTimeDescription [MAX_CHANNELS_PER_SYSTEM][MAX_ATTR_NAME_LEN];
310  char attrTriggersName [MAX_CHANNELS_PER_SYSTEM][MAX_ATTR_NAME_LEN];
311  char attrTriggersDescription [MAX_CHANNELS_PER_SYSTEM][MAX_ATTR_NAME_LEN];
312  char attrOutputCountsName [MAX_CHANNELS_PER_SYSTEM][MAX_ATTR_NAME_LEN];
313  char attrOutputCountsDescription[MAX_CHANNELS_PER_SYSTEM][MAX_ATTR_NAME_LEN];
314 
315 };
316 
317 #ifdef __cplusplus
318 extern "C"
319 {
320 #endif
321 
322 int NDDxpConfig(const char *portName, int nChannels, int maxBuffers, size_t maxMemory);
323 
324 #ifdef __cplusplus
325 }
326 #endif
327 
328 #endif
int NDDxpCurrentPixel
&lt; Change list mode variant (0=Gate; 1=Sync; 2=Clock) (int32 read/write) addr: all/any ...
Definition: NDDxp.h:196
epicsUInt16 reserved1[6]
Definition: NDDxp.h:45
int NDDxpCollectMode
Definition: NDDxp.h:183
int NDDxpForceRead
&lt; Status/data polling time in seconds
Definition: NDDxp.h:207
int NDDxpInputLogicPolarity
&lt; Mapping mode only: pixel advance mode (int)
Definition: NDDxp.h:190
int NDDxpPresetMode
Definition: NDDxp.h:229
int NDDxpErased
Definition: NDDxp.h:203
epicsUInt16 bufferErrors
Definition: NDDxp.h:48
asynStatus setPresets(asynUser *pasynUser, int addr)
Definition: NDDxp.cpp:626
int NDDxpIgnoreGate
Definition: NDDxp.h:191
int NDDxpSCALow[DXP_MAX_SCAS]
Definition: NDDxp.h:246
int NDDxpListMode
Definition: NDDxp.h:195
int mcaPresetHighChannel
Definition: NDDxp.h:270
double realTime
Definition: NDDxp.h:14
asynStatus getMappingData()
Reads the mapping data for all of the modules in the system.
Definition: NDDxp.cpp:1377
double events
Definition: NDDxp.h:18
epicsUInt16 mappingMode
Definition: NDDxp.h:36
int mcaElapsedLiveTime
Definition: NDDxp.h:276
asynStatus pollMappingMode()
Check if the current mapping buffer is full in which case it reads out the data.
Definition: NDDxp.cpp:1742
Definition: NDDxp.h:145
int NDDxpInputCountRate
&lt; total number of events registered (double)
Definition: NDDxp.h:213
int mcaReadStatus
Definition: NDDxp.h:262
int NDDxpPresetTriggers
Definition: NDDxp.h:232
epicsUInt16 spectrumSize
Definition: NDDxp.h:58
epicsUInt32 firstPixel
Definition: NDDxp.h:41
int NDDxpDecayTime
Definition: NDDxp.h:236
int mcaNumChannels
Definition: NDDxp.h:264
int NDDxpSCAPulseDuration
Definition: NDDxp.h:243
double triggerLiveTime
Definition: NDDxp.h:15
virtual asynStatus readInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t nElements, size_t *nIn)
Called when asyn clients call pasynInt32Array-&gt;read().
Definition: NDDxp.cpp:541
int NDDxpPixelsPerBuffer
&lt; Preset value how many pixels to acquire in one run (r/w) mapping mode
Definition: NDDxp.h:187
double icr
Definition: NDDxp.h:19
int NDDxpTriggerOutput
Definition: NDDxp.h:238
int NDDxpMBytesRead
Definition: NDDxp.h:199
int NDDxpTriggers
&lt; live time in seconds (double)
Definition: NDDxp.h:211
int NDDxpNextPixel
&lt; Mapping mode only: read the current pixel that is being acquired into (int)
Definition: NDDxp.h:197
int NDDxpSyncCount
Definition: NDDxp.h:192
struct moduleStatistics moduleStatistics
asynStatus setDxpParam(asynUser *pasynUser, int addr, int function, double value)
Definition: NDDxp.cpp:694
epicsUInt16 moduleNumber
Definition: NDDxp.h:42
int NDDxpMinPulsePairSeparation
Definition: NDDxp.h:224
dxpNDArrayMode_t
Definition: NDDxp.h:25
epicsUInt32 bufferNumber
Definition: NDDxp.h:38
int NDDxpSCATriggerMode
Definition: NDDxp.h:242
epicsUInt16 tag1
Definition: NDDxp.h:34
double triggers
Definition: NDDxp.h:17
int NDDxpSpectrumXAxis
Definition: NDDxp.h:237
epicsUInt16 mappingMode
Definition: NDDxp.h:55
epicsUInt32 realTime
Definition: NDDxp.h:60
int mcaSequence
Definition: NDDxp.h:266
asynStatus getTrace(asynUser *pasynUser, int addr, epicsInt32 *data, size_t maxLen, size_t *actualLen)
Definition: NDDxp.cpp:1543
int NDDxpSerialNumber
Definition: NDDxp.h:254
double reserved1
Definition: NDDxp.h:16
asynStatus getMcaData(asynUser *pasynUser, int addr)
Definition: NDDxp.cpp:1318
asynStatus getAcquisitionStatistics(asynUser *pasynUser, int addr)
Definition: NDDxp.cpp:1086
asynStatus stopAcquiring(asynUser *pasynUser)
int NDDxpNDArrayMode
Definition: NDDxp.h:185
char * portName
The name of this asyn port.
Definition: asynPortDriver.h:173
int NDDxpFirmwareVersion
Definition: NDDxp.h:255
epicsUInt32 pixelNumber
Definition: NDDxp.h:56
int NDDxpTraceTimeArray
&lt; The trace array data (read)
Definition: NDDxp.h:220
int mcaStartAcquire
Definition: NDDxp.h:259
int NDDxpPresetReal
Definition: NDDxp.h:230
int NDDxpSaveSystemFile
Definition: NDDxp.h:250
int mcaAcquireMode
Definition: NDDxp.h:265
int mcaPresetLowChannel
Definition: NDDxp.h:269
int NDDxpTraceTime
&lt; Select what type of trace to do: ADC, baseline hist, .
Definition: NDDxp.h:218
asynStatus getAcquisitionStatus(asynUser *pasynUser, int addr)
Definition: NDDxp.cpp:1032
struct falconBufferHeader falconBufferHeader
epicsUInt16 numPixels
Definition: NDDxp.h:40
int NDDxpDetectorPolarity
Definition: NDDxp.h:235
This is the class from which NDArray drivers are derived; implements the asynGenericPointer functions...
Definition: asynNDArrayDriver.h:110
epicsUInt32 blockSize
Definition: NDDxp.h:57
epicsUInt16 headerSize
Definition: NDDxp.h:54
int mcaDwellTime
Definition: NDDxp.h:271
int NDDxpPresetEvents
Definition: NDDxp.h:231
Definition: NDDxp.h:32
epicsUInt32 triggerLiveTime
Definition: NDDxp.h:61
asynStatus setNumChannels(asynUser *pasynUser, epicsInt32 newsize, epicsInt32 *rbValue)
Definition: NDDxp.cpp:826
struct falconMCAPixelHeader falconMCAPixelHeader
int mcaPresetLiveTime
Definition: NDDxp.h:272
asynStatus getModuleStatistics(asynUser *pasynUser, int addr, moduleStatistics *stats)
Definition: NDDxp.cpp:1067
asynStatus xia_checkError(asynUser *pasynUser, epicsInt32 xiastatus, const char *xiacmd)
Definition: NDDxp.cpp:1809
asynStatus getDxpParams(asynUser *pasynUser, int addr)
Definition: NDDxp.cpp:1188
int mcaPresetSweeps
Definition: NDDxp.h:268
int NDDxpSCAHigh[DXP_MAX_SCAS]
Definition: NDDxp.h:247
void shutdown()
Definition: NDDxp.cpp:1819
epicsUInt16 reserved1[23]
Definition: NDDxp.h:59
NDDxp(const char *portName, int nCChannels, int maxBuffers, size_t maxMemory)
Definition: NDDxp.cpp:118
epicsUInt16 channelID
Definition: NDDxp.h:43
int NDDxpPixelsPerRun
&lt; NDArray mode (=Raw buffers, 1=MCA spectra)
Definition: NDDxp.h:186
int NDDxpReadRate
Definition: NDDxp.h:200
Definition: NDDxp.h:26
#define MAX_CHANNELS_PER_SYSTEM
Definition: NDDxp.h:9
int NDDxpMaxSCAs
Definition: NDDxp.h:244
#define MAX_ATTR_NAME_LEN
Definition: NDDxp.h:11
epicsUInt16 bufferID
Definition: NDDxp.h:39
int NDDxpDetectionFilter
Definition: NDDxp.h:225
epicsUInt16 channelElement
Definition: NDDxp.h:44
int NDDxpScaleFactor
Definition: NDDxp.h:226
int NDDxpPollTime
&lt; Count how many buffers have been collected (read) mapping mode
Definition: NDDxp.h:206
int NDDxpTraceData
&lt; Set the trace sample time in us.
Definition: NDDxp.h:219
epicsUInt16 tag1
Definition: NDDxp.h:53
double ocr
Definition: NDDxp.h:20
int NDDxpEvents
&lt; number of triggers received (double)
Definition: NDDxp.h:212
int mcaData
Definition: NDDxp.h:258
int mcaPrescale
Definition: NDDxp.h:267
Definition: NDDxp.h:51
int NDDxpAutoPixelsPerBuffer
Definition: NDDxp.h:188
epicsUInt16 tag0
Definition: NDDxp.h:33
int NDDxpLiveTimeOutput
Definition: NDDxp.h:239
asynStatus setSCAs(asynUser *pasynUser, int addr)
Definition: NDDxp.cpp:735
int mcaStopAcquire
Definition: NDDxp.h:260
int NDDxpSaveSystem
Definition: NDDxp.h:251
int mcaErase
Definition: NDDxp.h:261
epicsUInt32 triggers
Definition: NDDxp.h:62
epicsUInt32 outputCounts
Definition: NDDxp.h:63
void acquisitionTask()
Thread used to poll the hardware for status and data.
Definition: NDDxp.cpp:1642
int mcaAcquiring
Definition: NDDxp.h:275
asynStatus configureCollectMode()
Definition: NDDxp.cpp:875
int NDDxpNumSCAs
Definition: NDDxp.h:245
epicsUInt16 tag0
Definition: NDDxp.h:52
int NDDxpBufferOverrun
&lt; Mapping mode only: force a pixel increment in the mapping buffer (write only int).
Definition: NDDxp.h:198
int NDDxpConfig(const char *portName, int nChannels, int maxBuffers, size_t maxMemory)
Definition: NDDxp.cpp:110
epicsUInt16 reserved2[3]
Definition: NDDxp.h:47
int NDDxpTraceMode
&lt; output count rate in Hz (double)
Definition: NDDxp.h:217
int NDDxpAcquiring
&lt; Erased flag.
Definition: NDDxp.h:204
int mcaPresetCounts
Definition: NDDxp.h:274
int mcaChannelAdvanceSource
Definition: NDDxp.h:263
int NDDxpNumMCAChannels
Definition: NDDxp.h:227
Definition: NDDxp.h:27
int getChannel(asynUser *pasynUser, int *addr)
Definition: NDDxp.cpp:616
void getModuleInfo()
Definition: NDDxp.cpp:1840
int mcaElapsedCounts
Definition: NDDxp.h:278
int mcaPresetRealTime
Definition: NDDxp.h:273
epicsUInt16 channelSize
Definition: NDDxp.h:46
int NDDxpTriggerLiveTime
&lt; Force reading MCA spectra - used for mcaData when addr=ALL
Definition: NDDxp.h:210
double reserved2
Definition: NDDxp.h:21
int NDDxpMCARefreshPeriod
Definition: NDDxp.h:228
double reserved3
Definition: NDDxp.h:22
Definition: NDDxp.h:13
int NDDxpBufferCounter
&lt; Internal acquiring flag, not exposed via drvUser
Definition: NDDxp.h:205
asynStatus getSCAs(asynUser *pasynUser, int addr)
Definition: NDDxp.cpp:793
asynStatus startAcquiring(asynUser *pasynUser)
Definition: NDDxp.cpp:1593
#define DXP_MAX_SCAS
Definition: NDDxp.h:10
epicsUInt16 runNumber
Definition: NDDxp.h:37
void report(FILE *fp, int details)
Report status of the driver.
Definition: NDDxp.cpp:1802
virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value)
Called when asyn clients call pasynInt32-&gt;write().
Definition: NDDxp.cpp:357
epicsUInt16 headerSize
Definition: NDDxp.h:35
virtual asynStatus writeFloat64(asynUser *pasynUser, epicsFloat64 value)
Called when asyn clients call pasynFloat64-&gt;write().
Definition: NDDxp.cpp:500
int NDDxpDetectionThreshold
&lt; The trace timebase array (read)
Definition: NDDxp.h:223
int NDDxpPixelAdvanceMode
Definition: NDDxp.h:189
int mcaElapsedRealTime
Definition: NDDxp.h:277
int NDDxpOutputCountRate
&lt; input count rate in Hz (double)
Definition: NDDxp.h:214