-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpixie16.h
More file actions
276 lines (205 loc) · 12.7 KB
/
pixie16.h
File metadata and controls
276 lines (205 loc) · 12.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
/* SPDX-License-Identifier: Apache-2.0 */
/*
* Copyright 2021 XIA LLC, All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/** @file pixie16.h
* @brief C wrappers for the C++ API that expose the same signature as the legacy code
*/
#ifndef PIXIE_H
#define PIXIE_H
#include <stddef.h>
#include <pixie/os_compat.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef XIA_PIXIE_WINDOWS
#define DEPRECATED(x, y, z) __pragma(message("warning: " y " will be deprecated on " z)) x
#else
#define DO_PRAGMA(m) _Pragma (#m)
#define DEPRECATED(x, y, z) DO_PRAGMA(message ("warning: " y " will be deprecated on " z)) x
#endif
#define PIXIE16_API_MOD_CONFIG_MAX_STRING (256)
#define PIXIE16_API_MOD_CONFIG_MAX_DEVICES (6)
#define PIXIE16_API_MOD_CONFIG_MAX_DEVICE_STRING (16)
struct module_config {
unsigned short adc_bit_resolution;
unsigned short adc_sampling_frequency;
char fw_revision[PIXIE16_API_MOD_CONFIG_MAX_STRING];
char fw_tag[PIXIE16_API_MOD_CONFIG_MAX_STRING];
char fw_type[PIXIE16_API_MOD_CONFIG_MAX_STRING];
char fw_device[PIXIE16_API_MOD_CONFIG_MAX_DEVICES][PIXIE16_API_MOD_CONFIG_MAX_DEVICE_STRING];
char fw_device_file[PIXIE16_API_MOD_CONFIG_MAX_DEVICES][PIXIE16_API_MOD_CONFIG_MAX_STRING];
unsigned short number;
unsigned short number_of_channels;
unsigned short revision;
unsigned int serial_number;
unsigned short slot;
};
struct module_fifo_config {
size_t bandwidth_mb_per_sec;
size_t buffers;
size_t dma_trigger_level_bytes;
size_t hold_usecs;
size_t idle_wait_usecs;
size_t run_wait_usecs;
};
struct module_fifo_stats {
size_t in;
size_t out;
size_t dma_in;
size_t overflows;
size_t dropped;
size_t hw_overflows;
};
PIXIE_EXPORT double PIXIE_API IEEEFloating2Decimal(unsigned int IEEEFloatingNumber);
PIXIE_EXPORT unsigned int PIXIE_API Decimal2IEEEFloating(double DecimalNumber);
PIXIE_EXPORT unsigned int PIXIE_API Pixie16GetStatisticsSize(void);
PIXIE_EXPORT int PIXIE_API PixieGetReturnCodeText(int return_code, char* buf,
unsigned int buf_size);
PIXIE_EXPORT int PIXIE_API PixieGetHistogramLength(unsigned short mod_num, unsigned short chan_num,
unsigned int* hist_length);
PIXIE_EXPORT int PIXIE_API PixieGetTraceLength(unsigned short mod_num, unsigned short chan_num,
unsigned int* trace_length);
PIXIE_EXPORT int PIXIE_API PixieGetMaxNumBaselines(unsigned short mod_num, unsigned short chan_num,
unsigned int* max_num_baselines);
PIXIE_EXPORT int PIXIE_API Pixie16AcquireADCTrace(unsigned short ModNum);
PIXIE_EXPORT int PIXIE_API Pixie16AcquireBaselines(unsigned short ModNum);
PIXIE_EXPORT int PIXIE_API Pixie16AdjustOffsets(unsigned short ModNum);
PIXIE_EXPORT int PIXIE_API Pixie16BLcutFinder(unsigned short ModNum, unsigned short ChanNum,
unsigned int* BLcut);
PIXIE_EXPORT int PIXIE_API Pixie16BootModule(const char* ComFPGAConfigFile,
const char* SPFPGAConfigFile,
const char* TrigFPGAConfigFile,
const char* DSPCodeFile, const char* DSPParFile,
const char* DSPVarFile, unsigned short ModNum,
unsigned short BootPattern);
PIXIE_EXPORT int PIXIE_API Pixie16RebootModule(const char* DSPParFile, unsigned short ModNum,
unsigned short BootPattern);
DEPRECATED(PIXIE_EXPORT int PIXIE_API Pixie16BootModuleFirmware(const char* DSPParFile,
unsigned short ModNum,
unsigned short BootPattern),
"Pixie16BootModuleFirmware", "2027-03-13");
PIXIE_EXPORT int PIXIE_API Pixie16CheckExternalFIFOStatus(unsigned int* nFIFOWords,
unsigned short ModNum);
PIXIE_EXPORT int PIXIE_API Pixie16CheckRunStatus(unsigned short ModNum);
PIXIE_EXPORT double PIXIE_API Pixie16ComputeInputCountRate(unsigned int* Statistics,
unsigned short ModNum,
unsigned short ChanNum);
PIXIE_EXPORT double PIXIE_API Pixie16ComputeLiveTime(unsigned int* Statistics,
unsigned short ModNum, unsigned short ChanNum);
PIXIE_EXPORT double PIXIE_API Pixie16ComputeOutputCountRate(unsigned int* Statistics,
unsigned short ModNum,
unsigned short ChanNum);
PIXIE_EXPORT double PIXIE_API Pixie16ComputeRawInputCount(unsigned int* Statistics,
unsigned short ModNum,
unsigned short ChanNum);
PIXIE_EXPORT double PIXIE_API Pixie16ComputeRawOutputCount(unsigned int* Statistics,
unsigned short ModNum,
unsigned short ChanNum);
PIXIE_EXPORT double PIXIE_API Pixie16ComputeRealTime(unsigned int* Statistics,
unsigned short ModNum);
PIXIE_EXPORT int PIXIE_API Pixie16CopyDSPParameters(unsigned short BitMask,
unsigned short SourceModule,
unsigned short SourceChannel,
unsigned short* DestinationMask);
PIXIE_EXPORT int PIXIE_API Pixie16EndRun(unsigned short ModNum);
PIXIE_EXPORT int PIXIE_API Pixie16ExitSystem(unsigned short ModNum);
PIXIE_EXPORT int PIXIE_API Pixie16InitSystem(unsigned short NumModules, unsigned short* PXISlotMap,
unsigned short OfflineMode);
PIXIE_EXPORT int PIXIE_API Pixie16LoadModuleFirmware(const char* SearchPath);
PIXIE_EXPORT int PIXIE_API Pixie16SetModuleFirmware(const char* FwFile, unsigned int ModNum, const char* Device);
PIXIE_EXPORT int PIXIE_API Pixie16ReadDataFromExternalFIFO(unsigned int* ExtFIFO_Data,
unsigned int nFIFOWords,
unsigned short ModNum);
PIXIE_EXPORT int PIXIE_API Pixie16LoadDSPParametersFromFile(const char* FileName);
PIXIE_EXPORT int PIXIE_API Pixie16ReadHistogramFromModule(unsigned int* Histogram,
unsigned int NumWords,
unsigned short ModNum,
unsigned short ChanNum);
PIXIE_EXPORT int PIXIE_API Pixie16ReadModuleInfo(unsigned short ModNum, unsigned short* ModRev,
unsigned int* ModSerNum,
unsigned short* ModADCBits,
unsigned short* ModADCMSPS);
PIXIE_EXPORT int PIXIE_API PixieGetModuleInfo(unsigned short mod_num, struct module_config* cfg);
PIXIE_EXPORT int PIXIE_API Pixie16ReadSglChanADCTrace(unsigned short* Trace_Buffer,
unsigned int Trace_Length,
unsigned short ModNum,
unsigned short ChanNum);
PIXIE_EXPORT int PIXIE_API Pixie16ReadSglChanBaselines(double* Baselines, double* TimeStamps,
unsigned short NumBases,
unsigned short ModNum,
unsigned short ChanNum);
PIXIE_EXPORT int PIXIE_API Pixie16ReadSglChanPar(const char* ChanParName, double* ChanParData,
unsigned short ModNum, unsigned short ChanNum);
PIXIE_EXPORT int PIXIE_API Pixie16ReadSglModPar(const char* ModParName, unsigned int* ModParData,
unsigned short ModNum);
PIXIE_EXPORT int PIXIE_API Pixie16ReadStatisticsFromModule(unsigned int* Statistics,
unsigned short ModNum);
PIXIE_EXPORT int PIXIE_API Pixie16SaveDSPParametersToFile(const char* FileName);
PIXIE_EXPORT int PIXIE_API Pixie16SetDACs(unsigned short ModNum);
PIXIE_EXPORT int PIXIE_API Pixie16StartHistogramRun(unsigned short ModNum, unsigned short mode);
PIXIE_EXPORT int PIXIE_API Pixie16StartListModeRun(unsigned short ModNum, unsigned short RunType,
unsigned short mode);
PIXIE_EXPORT int PIXIE_API Pixie16TauFinder(unsigned short ModNum, double* Tau);
PIXIE_EXPORT int PIXIE_API Pixie16WriteSglChanPar(const char* ChanParName, double ChanParData,
unsigned short ModNum, unsigned short ChanNum);
PIXIE_EXPORT int PIXIE_API Pixie16WriteSglModPar(const char* ModParName, unsigned int ModParData,
unsigned short ModNum);
enum PIXIE_BOOT_MODE {
PIXIE_BOOT_PROBE,
PIXIE_BOOT_RESET_LOAD,
PIXIE_BOOT_SETTINGS_LOAD
};
PIXIE_EXPORT int PIXIE_API PixieBootCrate(const char* settings_file,
const enum PIXIE_BOOT_MODE boot_mode);
PIXIE_EXPORT int PIXIE_API PixieGetFifoConfiguration(unsigned short mod_num,
struct module_fifo_config* fifo_config);
PIXIE_EXPORT int PIXIE_API PixieRegisterCrateFirmware(const unsigned int version, const int revision,
const int adc_msps, const int adc_bits,
const char* device, const char* path);
PIXIE_EXPORT int PIXIE_API PixieRegisterFirmware(const unsigned int version, const int revision,
const int adc_msps, const int adc_bits,
const char* device, const char* path,
unsigned short ModNum);
PIXIE_EXPORT int PIXIE_API PixieSetFifoConfiguration(unsigned short mod_num,
struct module_fifo_config* fifo_config);
PIXIE_EXPORT int PIXIE_API PixieReadRunFifoStats(unsigned short mod_num,
struct module_fifo_stats* fifo_stats);
enum PIXIE_INSTALL_PATH {
PIXIE_PATH_FIRMWARE_DEFAULT
};
PIXIE_EXPORT const char* PIXIE_API PixieGetInstallationPath(const enum PIXIE_INSTALL_PATH opt, ...);
enum PIXIE_SYSCTL_FORMAT {
PIXIE_SYSCTL_FORMAT_TEXT,
PIXIE_SYSCTL_FORMAT_JSON,
};
PIXIE_EXPORT int PIXIE_API PixieSysControlOpen(const char* query, const enum PIXIE_SYSCTL_FORMAT format);
PIXIE_EXPORT int PIXIE_API PixieSysControlRead(char* buffer, size_t* size);
PIXIE_EXPORT int PIXIE_API PixieSysControlSize(size_t* size);
PIXIE_EXPORT int PIXIE_API PixieSysControlClose(void);
PIXIE_EXPORT int PIXIE_API PixieSysControlGet(const char* path, char* value, size_t size);
PIXIE_EXPORT int PIXIE_API PixieSysControlGetInt(const char* path, int* value);
PIXIE_EXPORT int PIXIE_API PixieSysControlGetDouble(const char* path, double* value);
PIXIE_EXPORT int PIXIE_API PixieSysControlSet(const char* path, const char* value);
PIXIE_EXPORT int PIXIE_API PixieSysControlSetInt(const char* path, const int value);
PIXIE_EXPORT int PIXIE_API PixieSysControlSetDouble(const char* path, const double value);
PIXIE_EXPORT int PIXIE_API PixieSysControlSetValues(const char* values,
const enum PIXIE_SYSCTL_FORMAT format);
PIXIE_EXPORT int PIXIE_API PixieSysControlSetFileValues(const char* filename,
const enum PIXIE_SYSCTL_FORMAT format);
#ifdef __cplusplus
}
#endif
#endif /* PIXIE_H */