pico_sys_dynamic/
ps5000a.rs

1pub const DIGITAL_PORT_SERIAL_LENGTH: u32 = 10;
2pub const DIGITAL_PORT_CALIBRATION_DATE_LENGTH: u32 = 8;
3pub const PS5000A_MAX_VALUE_8BIT: u32 = 32512;
4pub const PS5000A_MIN_VALUE_8BIT: i32 = -32512;
5pub const PS5000A_MAX_VALUE_16BIT: u32 = 32767;
6pub const PS5000A_MIN_VALUE_16BIT: i32 = -32767;
7pub const PS5000A_EXT_MAX_VALUE: u32 = 32767;
8pub const PS5000A_EXT_MIN_VALUE: i32 = -32767;
9pub const PS5X42A_MAX_SIG_GEN_BUFFER_SIZE: u32 = 16384;
10pub const PS5X43A_MAX_SIG_GEN_BUFFER_SIZE: u32 = 32768;
11pub const PS5X44A_MAX_SIG_GEN_BUFFER_SIZE: u32 = 49152;
12pub const PS5X4XD_MAX_SIG_GEN_BUFFER_SIZE: u32 = 32768;
13pub const MIN_SIG_GEN_BUFFER_SIZE: u32 = 1;
14pub const MIN_DWELL_COUNT: u32 = 3;
15pub const MAX_SWEEPS_SHOTS: u32 = 1073741823;
16pub const AWG_DAC_FREQUENCY: f64 = 200000000.0;
17pub const PS5000AB_DDS_FREQUENCY: f64 = 200000000.0;
18pub const PS5000D_DDS_FREQUENCY: f64 = 100000000.0;
19pub const AWG_PHASE_ACCUMULATOR: f64 = 4294967296.0;
20pub const MAX_ANALOGUE_OFFSET_50MV_200MV: f64 = 0.25;
21pub const MIN_ANALOGUE_OFFSET_50MV_200MV: f64 = -0.25;
22pub const MAX_ANALOGUE_OFFSET_500MV_2V: f64 = 2.5;
23pub const MIN_ANALOGUE_OFFSET_500MV_2V: f64 = -2.5;
24pub const MAX_ANALOGUE_OFFSET_5V_20V: f64 = 20.0;
25pub const MIN_ANALOGUE_OFFSET_5V_20V: f64 = -20.0;
26pub const PS5244A_MAX_ETS_CYCLES: u32 = 500;
27pub const PS5244A_MAX_ETS_INTERLEAVE: u32 = 40;
28pub const PS5243A_MAX_ETS_CYCLES: u32 = 250;
29pub const PS5243A_MAX_ETS_INTERLEAVE: u32 = 20;
30pub const PS5242A_MAX_ETS_CYCLES: u32 = 125;
31pub const PS5242A_MAX_ETS_INTERLEAVE: u32 = 10;
32pub const PS5X44D_MAX_ETS_CYCLES: u32 = 500;
33pub const PS5X44D_MAX_ETS_INTERLEAVE: u32 = 80;
34pub const PS5X43D_MAX_ETS_CYCLES: u32 = 250;
35pub const PS5X43D_MAX_ETS_INTERLEAVE: u32 = 40;
36pub const PS5X42D_MAX_ETS_CYCLES: u32 = 125;
37pub const PS5X42D_MAX_ETS_INTERLEAVE: u32 = 5;
38pub const PS5000A_SHOT_SWEEP_TRIGGER_CONTINUOUS_RUN: u32 = 4294967295;
39pub const PS5000A_SINE_MAX_FREQUENCY: f64 = 20000000.0;
40pub const PS5000A_SQUARE_MAX_FREQUENCY: f64 = 20000000.0;
41pub const PS5000A_TRIANGLE_MAX_FREQUENCY: f64 = 20000000.0;
42pub const PS5000A_SINC_MAX_FREQUENCY: f64 = 20000000.0;
43pub const PS5000A_RAMP_MAX_FREQUENCY: f64 = 20000000.0;
44pub const PS5000A_HALF_SINE_MAX_FREQUENCY: f64 = 20000000.0;
45pub const PS5000A_GAUSSIAN_MAX_FREQUENCY: f64 = 20000000.0;
46pub const PS5000A_MIN_FREQUENCY: f64 = 0.03;
47
48pub type PICO_POINTER = *mut ::std::os::raw::c_void;
49pub type PICO_INFO = u32;
50pub type PICO_STATUS = u32;
51pub const enPicoStringValue_PICO_SV_MEMORY: enPicoStringValue = 0;
52pub const enPicoStringValue_PICO_SV_MEMORY_NO_OF_SEGMENTS: enPicoStringValue = 1;
53pub const enPicoStringValue_PICO_SV_MEMORY_MAX_SAMPLES: enPicoStringValue = 2;
54pub const enPicoStringValue_PICO_SV_NO_OF_CHANNELS: enPicoStringValue = 3;
55pub const enPicoStringValue_PICO_SV_ARRAY_OF_CHANNELS: enPicoStringValue = 4;
56pub const enPicoStringValue_PICO_SV_CHANNEL: enPicoStringValue = 5;
57pub const enPicoStringValue_PICO_SV_CHANNEL_NAME: enPicoStringValue = 6;
58pub const enPicoStringValue_PICO_SV_CHANNEL_RANGE: enPicoStringValue = 7;
59pub const enPicoStringValue_PICO_SV_CHANNEL_COUPLING: enPicoStringValue = 8;
60pub const enPicoStringValue_PICO_SV_CHANNEL_ENABLED: enPicoStringValue = 9;
61pub const enPicoStringValue_PICO_SV_CHANNEL_ANALOGUE_OFFSET: enPicoStringValue = 10;
62pub const enPicoStringValue_PICO_SV_CHANNEL_FILTER: enPicoStringValue = 11;
63pub const enPicoStringValue_PICO_SV_TRIGGER: enPicoStringValue = 12;
64pub const enPicoStringValue_PICO_SV_TRIGGER_AUXIO_OUTPUT_ENABLED: enPicoStringValue = 13;
65pub const enPicoStringValue_PICO_SV_TRIGGER_AUTO_TRIGGER_MICROSECONDS: enPicoStringValue = 14;
66pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES: enPicoStringValue = 15;
67pub const enPicoStringValue_PICO_SV_NO_OF_TRIGGER_PROPERTIES: enPicoStringValue = 16;
68pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_CHANNEL: enPicoStringValue = 17;
69pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_UPPER: enPicoStringValue = 18;
70pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_UPPER_HYSTERESIS:
71    enPicoStringValue = 19;
72pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_LOWER: enPicoStringValue = 20;
73pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_LOWER_HYSTERESIS:
74    enPicoStringValue = 21;
75pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_MODE: enPicoStringValue = 22;
76pub const enPicoStringValue_PICO_SV_TRIGGER_ARRAY_OF_BLOCK_CONDITIONS: enPicoStringValue = 23;
77pub const enPicoStringValue_PICO_SV_TRIGGER_NO_OF_BLOCK_CONDITIONS: enPicoStringValue = 24;
78pub const enPicoStringValue_PICO_SV_TRIGGER_CONDITIONS: enPicoStringValue = 25;
79pub const enPicoStringValue_PICO_SV_TRIGGER_NO_OF_CONDITIONS: enPicoStringValue = 26;
80pub const enPicoStringValue_PICO_SV_TRIGGER_CONDITION_SOURCE: enPicoStringValue = 27;
81pub const enPicoStringValue_PICO_SV_TRIGGER_CONDITION_STATE: enPicoStringValue = 28;
82pub const enPicoStringValue_PICO_SV_TRIGGER_DIRECTION: enPicoStringValue = 29;
83pub const enPicoStringValue_PICO_SV_TRIGGER_NO_OF_DIRECTIONS: enPicoStringValue = 30;
84pub const enPicoStringValue_PICO_SV_TRIGGER_DIRECTION_CHANNEL: enPicoStringValue = 31;
85pub const enPicoStringValue_PICO_SV_TRIGGER_DIRECTION_DIRECTION: enPicoStringValue = 32;
86pub const enPicoStringValue_PICO_SV_TRIGGER_DELAY: enPicoStringValue = 33;
87pub const enPicoStringValue_PICO_SV_TRIGGER_DELAY_MS: enPicoStringValue = 34;
88pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER: enPicoStringValue = 35;
89pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER_ENABLED: enPicoStringValue = 36;
90pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER_CHANNEL: enPicoStringValue = 37;
91pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER_RANGE: enPicoStringValue = 38;
92pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER_TRESHOLDMAJOR: enPicoStringValue = 39;
93pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER_TRESHOLDMINOR: enPicoStringValue = 40;
94pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_PROPERTIES: enPicoStringValue = 41;
95pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_PROPERTIES_DIRECTION: enPicoStringValue = 42;
96pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_PROPERTIES_LOWER: enPicoStringValue = 43;
97pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_PROPERTIES_UPPER: enPicoStringValue = 44;
98pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_PROPERTIES_TYPE: enPicoStringValue = 45;
99pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_ARRAY_OF_BLOCK_CONDITIONS: enPicoStringValue = 46;
100pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_NO_OF_BLOCK_CONDITIONS: enPicoStringValue = 47;
101pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_CONDITIONS: enPicoStringValue = 48;
102pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_NO_OF_CONDITIONS: enPicoStringValue = 49;
103pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_CONDITIONS_SOURCE: enPicoStringValue = 50;
104pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_CONDITIONS_STATE: enPicoStringValue = 51;
105pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES: enPicoStringValue = 52;
106pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_PRE_TRIGGER_SAMPLES: enPicoStringValue = 53;
107pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_POST_TRIGGER_SAMPLES: enPicoStringValue = 54;
108pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_TIMEBASE: enPicoStringValue = 55;
109pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_NO_OF_CAPTURES: enPicoStringValue = 56;
110pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_RESOLUTION: enPicoStringValue = 57;
111pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED: enPicoStringValue = 58;
112pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_DOWN_SAMPLE_RATIO:
113    enPicoStringValue = 59;
114pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_DOWN_SAMPLE_RATIO_MODE:
115    enPicoStringValue = 60;
116pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_REQUERSTED_NO_OF_SAMPLES:
117    enPicoStringValue = 61;
118pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_SEGMENT_INDEX_FROM:
119    enPicoStringValue = 62;
120pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_SEGMENT_INDEX_TO:
121    enPicoStringValue = 63;
122pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR: enPicoStringValue = 64;
123pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN: enPicoStringValue = 65;
124pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN_WAVE_TYPE: enPicoStringValue = 66;
125pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN_START_FREQUENCY: enPicoStringValue =
126    67;
127pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN_STOP_FREQUENCY: enPicoStringValue =
128    68;
129pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN_INCREMENT: enPicoStringValue = 69;
130pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN_DWELL_TIME: enPicoStringValue = 70;
131pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG: enPicoStringValue = 71;
132pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_START_DELTA_PHASE: enPicoStringValue = 72;
133pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_STOP_DELTA_PHASE: enPicoStringValue = 73;
134pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_DELTA_PHASE_INCREMENT: enPicoStringValue =
135    74;
136pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_DWELL_COUNT: enPicoStringValue = 75;
137pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_INDEX_MODE: enPicoStringValue = 76;
138pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_WAVEFORM_SIZE: enPicoStringValue = 77;
139pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_ARRAY_OF_AWG_WAVEFORM_VALUES:
140    enPicoStringValue = 78;
141pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_OFFSET_VOLTAGE: enPicoStringValue = 79;
142pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_PK_TO_PK: enPicoStringValue = 80;
143pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_OPERATION: enPicoStringValue = 81;
144pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_SHOTS: enPicoStringValue = 82;
145pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_SWEEPS: enPicoStringValue = 83;
146pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_SWEEP_TYPE: enPicoStringValue = 84;
147pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_TRIGGER_TYPE: enPicoStringValue = 85;
148pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_TRIGGER_SOURCE: enPicoStringValue = 86;
149pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_EXT_IN_THRESHOLD: enPicoStringValue = 87;
150pub const enPicoStringValue_PICO_SV_ETS: enPicoStringValue = 88;
151pub const enPicoStringValue_PICO_SV_ETS_STATE: enPicoStringValue = 89;
152pub const enPicoStringValue_PICO_SV_ETS_CYCLE: enPicoStringValue = 90;
153pub const enPicoStringValue_PICO_SV_ETS_INTERLEAVE: enPicoStringValue = 91;
154pub const enPicoStringValue_PICO_SV_ETS_SAMPLE_TIME_PICOSECONDS: enPicoStringValue = 92;
155pub type enPicoStringValue = ::std::os::raw::c_uint;
156pub use self::enPicoStringValue as PICO_STRING_VALUE;
157#[repr(C, packed)]
158#[derive(Debug, Copy, Clone)]
159pub struct tPicoVersion {
160    pub major_: i16,
161    pub minor_: i16,
162    pub revision_: i16,
163    pub build_: i16,
164}
165
166pub type PICO_VERSION = tPicoVersion;
167pub const enPicoRatioMode_PICO_RATIO_MODE_AGGREGATE: enPicoRatioMode = 1;
168pub const enPicoRatioMode_PICO_RATIO_MODE_DECIMATE: enPicoRatioMode = 2;
169pub const enPicoRatioMode_PICO_RATIO_MODE_AVERAGE: enPicoRatioMode = 4;
170pub const enPicoRatioMode_PICO_RATIO_MODE_DISTRIBUTION: enPicoRatioMode = 8;
171pub const enPicoRatioMode_PICO_RATIO_MODE_SUM: enPicoRatioMode = 16;
172pub const enPicoRatioMode_PICO_RATIO_MODE_TRIGGER_DATA_FOR_TIME_CALCULATION: enPicoRatioMode =
173    268435456;
174pub const enPicoRatioMode_PICO_RATIO_MODE_SEGMENT_HEADER: enPicoRatioMode = 536870912;
175pub const enPicoRatioMode_PICO_RATIO_MODE_TRIGGER: enPicoRatioMode = 1073741824;
176pub const enPicoRatioMode_PICO_RATIO_MODE_RAW: enPicoRatioMode = 2147483648;
177pub type enPicoRatioMode = ::std::os::raw::c_uint;
178pub use self::enPicoRatioMode as PICO_RATIO_MODE;
179pub const enPicoChannel_PICO_CHANNEL_A: enPicoChannel = 0;
180pub const enPicoChannel_PICO_CHANNEL_B: enPicoChannel = 1;
181pub const enPicoChannel_PICO_CHANNEL_C: enPicoChannel = 2;
182pub const enPicoChannel_PICO_CHANNEL_D: enPicoChannel = 3;
183pub const enPicoChannel_PICO_CHANNEL_E: enPicoChannel = 4;
184pub const enPicoChannel_PICO_CHANNEL_F: enPicoChannel = 5;
185pub const enPicoChannel_PICO_CHANNEL_G: enPicoChannel = 6;
186pub const enPicoChannel_PICO_CHANNEL_H: enPicoChannel = 7;
187pub const enPicoChannel_PICO_PORT0: enPicoChannel = 128;
188pub const enPicoChannel_PICO_PORT1: enPicoChannel = 129;
189pub const enPicoChannel_PICO_PORT2: enPicoChannel = 130;
190pub const enPicoChannel_PICO_PORT3: enPicoChannel = 131;
191pub const enPicoChannel_PICO_EXTERNAL: enPicoChannel = 1000;
192pub const enPicoChannel_PICO_TRIGGER_AUX: enPicoChannel = 1001;
193pub const enPicoChannel_PICO_PULSE_WIDTH_SOURCE: enPicoChannel = 268435456;
194pub const enPicoChannel_PICO_DIGITAL_SOURCE: enPicoChannel = 268435457;
195pub type enPicoChannel = ::std::os::raw::c_uint;
196pub use self::enPicoChannel as PICO_CHANNEL;
197pub const enPicoChannelFlags_PICO_CHANNEL_A_FLAGS: enPicoChannelFlags = 1;
198pub const enPicoChannelFlags_PICO_CHANNEL_B_FLAGS: enPicoChannelFlags = 2;
199pub const enPicoChannelFlags_PICO_CHANNEL_C_FLAGS: enPicoChannelFlags = 4;
200pub const enPicoChannelFlags_PICO_CHANNEL_D_FLAGS: enPicoChannelFlags = 8;
201pub const enPicoChannelFlags_PICO_CHANNEL_E_FLAGS: enPicoChannelFlags = 16;
202pub const enPicoChannelFlags_PICO_CHANNEL_F_FLAGS: enPicoChannelFlags = 32;
203pub const enPicoChannelFlags_PICO_CHANNEL_G_FLAGS: enPicoChannelFlags = 64;
204pub const enPicoChannelFlags_PICO_CHANNEL_H_FLAGS: enPicoChannelFlags = 128;
205pub const enPicoChannelFlags_PICO_PORT0_FLAGS: enPicoChannelFlags = 65536;
206pub const enPicoChannelFlags_PICO_PORT1_FLAGS: enPicoChannelFlags = 131072;
207pub const enPicoChannelFlags_PICO_PORT2_FLAGS: enPicoChannelFlags = 262144;
208pub const enPicoChannelFlags_PICO_PORT3_FLAGS: enPicoChannelFlags = 524288;
209pub type enPicoChannelFlags = ::std::os::raw::c_uint;
210pub use self::enPicoChannelFlags as PICO_CHANNEL_FLAGS;
211pub const enPicoPortDigitalChannel_PICO_PORT_DIGITAL_CHANNEL0: enPicoPortDigitalChannel = 0;
212pub const enPicoPortDigitalChannel_PICO_PORT_DIGITAL_CHANNEL1: enPicoPortDigitalChannel = 1;
213pub const enPicoPortDigitalChannel_PICO_PORT_DIGITAL_CHANNEL2: enPicoPortDigitalChannel = 2;
214pub const enPicoPortDigitalChannel_PICO_PORT_DIGITAL_CHANNEL3: enPicoPortDigitalChannel = 3;
215pub const enPicoPortDigitalChannel_PICO_PORT_DIGITAL_CHANNEL4: enPicoPortDigitalChannel = 4;
216pub const enPicoPortDigitalChannel_PICO_PORT_DIGITAL_CHANNEL5: enPicoPortDigitalChannel = 5;
217pub const enPicoPortDigitalChannel_PICO_PORT_DIGITAL_CHANNEL6: enPicoPortDigitalChannel = 6;
218pub const enPicoPortDigitalChannel_PICO_PORT_DIGITAL_CHANNEL7: enPicoPortDigitalChannel = 7;
219pub type enPicoPortDigitalChannel = ::std::os::raw::c_uint;
220pub use self::enPicoPortDigitalChannel as PICO_PORT_DIGITAL_CHANNEL;
221pub const enPicoDataType_PICO_INT8_T: enPicoDataType = 0;
222pub const enPicoDataType_PICO_INT16_T: enPicoDataType = 1;
223pub const enPicoDataType_PICO_INT32_T: enPicoDataType = 2;
224pub const enPicoDataType_PICO_UINT32_T: enPicoDataType = 3;
225pub const enPicoDataType_PICO_INT64_T: enPicoDataType = 4;
226pub type enPicoDataType = ::std::os::raw::c_uint;
227pub use self::enPicoDataType as PICO_DATA_TYPE;
228pub const enPicoCoupling_PICO_AC: enPicoCoupling = 0;
229pub const enPicoCoupling_PICO_DC: enPicoCoupling = 1;
230pub const enPicoCoupling_PICO_DC_50OHM: enPicoCoupling = 50;
231pub type enPicoCoupling = ::std::os::raw::c_uint;
232pub use self::enPicoCoupling as PICO_COUPLING;
233pub const enPicoBandwidthLimiterFlags_PICO_BW_FULL_FLAG: enPicoBandwidthLimiterFlags = 1;
234pub const enPicoBandwidthLimiterFlags_PICO_BW_20KHZ_FLAG: enPicoBandwidthLimiterFlags = 2;
235pub const enPicoBandwidthLimiterFlags_PICO_BW_100KHZ_FLAG: enPicoBandwidthLimiterFlags = 4;
236pub const enPicoBandwidthLimiterFlags_PICO_BW_1MHZ_FLAG: enPicoBandwidthLimiterFlags = 8;
237pub const enPicoBandwidthLimiterFlags_PICO_BW_20MHZ_FLAG: enPicoBandwidthLimiterFlags = 16;
238pub type enPicoBandwidthLimiterFlags = ::std::os::raw::c_uint;
239pub use self::enPicoBandwidthLimiterFlags as PICO_BANDWIDTH_LIMITER_FLAGS;
240pub const enPicoBandwidthLimiter_PICO_BW_FULL: enPicoBandwidthLimiter = 0;
241pub const enPicoBandwidthLimiter_PICO_BW_100KHZ: enPicoBandwidthLimiter = 100000;
242pub const enPicoBandwidthLimiter_PICO_BW_20KHZ: enPicoBandwidthLimiter = 20000;
243pub const enPicoBandwidthLimiter_PICO_BW_1MHZ: enPicoBandwidthLimiter = 1000000;
244pub const enPicoBandwidthLimiter_PICO_BW_20MHZ: enPicoBandwidthLimiter = 20000000;
245pub const enPicoBandwidthLimiter_PICO_BW_25MHZ: enPicoBandwidthLimiter = 25000000;
246pub const enPicoBandwidthLimiter_PICO_BW_50MHZ: enPicoBandwidthLimiter = 50000000;
247pub const enPicoBandwidthLimiter_PICO_BW_200MHZ: enPicoBandwidthLimiter = 200000000;
248pub const enPicoBandwidthLimiter_PICO_BW_250MHZ: enPicoBandwidthLimiter = 250000000;
249pub const enPicoBandwidthLimiter_PICO_BW_500MHZ: enPicoBandwidthLimiter = 500000000;
250pub type enPicoBandwidthLimiter = ::std::os::raw::c_uint;
251pub use self::enPicoBandwidthLimiter as PICO_BANDWIDTH_LIMITER;
252pub const enPicoPulseWidthType_PICO_PW_TYPE_NONE: enPicoPulseWidthType = 0;
253pub const enPicoPulseWidthType_PICO_PW_TYPE_LESS_THAN: enPicoPulseWidthType = 1;
254pub const enPicoPulseWidthType_PICO_PW_TYPE_GREATER_THAN: enPicoPulseWidthType = 2;
255pub const enPicoPulseWidthType_PICO_PW_TYPE_IN_RANGE: enPicoPulseWidthType = 3;
256pub const enPicoPulseWidthType_PICO_PW_TYPE_OUT_OF_RANGE: enPicoPulseWidthType = 4;
257pub type enPicoPulseWidthType = ::std::os::raw::c_uint;
258pub use self::enPicoPulseWidthType as PICO_PULSE_WIDTH_TYPE;
259pub const enPicoSweepType_PICO_UP: enPicoSweepType = 0;
260pub const enPicoSweepType_PICO_DOWN: enPicoSweepType = 1;
261pub const enPicoSweepType_PICO_UPDOWN: enPicoSweepType = 2;
262pub const enPicoSweepType_PICO_DOWNUP: enPicoSweepType = 3;
263pub type enPicoSweepType = ::std::os::raw::c_uint;
264pub use self::enPicoSweepType as PICO_SWEEP_TYPE;
265pub const enPicoWaveType_PICO_SINE: enPicoWaveType = 17;
266pub const enPicoWaveType_PICO_SQUARE: enPicoWaveType = 18;
267pub const enPicoWaveType_PICO_TRIANGLE: enPicoWaveType = 19;
268pub const enPicoWaveType_PICO_RAMP_UP: enPicoWaveType = 20;
269pub const enPicoWaveType_PICO_RAMP_DOWN: enPicoWaveType = 21;
270pub const enPicoWaveType_PICO_SINC: enPicoWaveType = 22;
271pub const enPicoWaveType_PICO_GAUSSIAN: enPicoWaveType = 23;
272pub const enPicoWaveType_PICO_HALF_SINE: enPicoWaveType = 24;
273pub const enPicoWaveType_PICO_DC_VOLTAGE: enPicoWaveType = 1024;
274pub const enPicoWaveType_PICO_PWM: enPicoWaveType = 4096;
275pub const enPicoWaveType_PICO_WHITENOISE: enPicoWaveType = 8193;
276pub const enPicoWaveType_PICO_PRBS: enPicoWaveType = 8194;
277pub const enPicoWaveType_PICO_ARBITRARY: enPicoWaveType = 268435456;
278pub type enPicoWaveType = ::std::os::raw::c_uint;
279pub use self::enPicoWaveType as PICO_WAVE_TYPE;
280pub const enPicoSigGenTrigType_PICO_SIGGEN_RISING: enPicoSigGenTrigType = 0;
281pub const enPicoSigGenTrigType_PICO_SIGGEN_FALLING: enPicoSigGenTrigType = 1;
282pub const enPicoSigGenTrigType_PICO_SIGGEN_GATE_HIGH: enPicoSigGenTrigType = 2;
283pub const enPicoSigGenTrigType_PICO_SIGGEN_GATE_LOW: enPicoSigGenTrigType = 3;
284pub type enPicoSigGenTrigType = ::std::os::raw::c_uint;
285pub use self::enPicoSigGenTrigType as PICO_SIGGEN_TRIG_TYPE;
286pub const enPicoSigGenTrigSource_PICO_SIGGEN_NONE: enPicoSigGenTrigSource = 0;
287pub const enPicoSigGenTrigSource_PICO_SIGGEN_SCOPE_TRIG: enPicoSigGenTrigSource = 1;
288pub const enPicoSigGenTrigSource_PICO_SIGGEN_AUX_IN: enPicoSigGenTrigSource = 2;
289pub const enPicoSigGenTrigSource_PICO_SIGGEN_EXT_IN: enPicoSigGenTrigSource = 3;
290pub const enPicoSigGenTrigSource_PICO_SIGGEN_SOFT_TRIG: enPicoSigGenTrigSource = 4;
291pub const enPicoSigGenTrigSource_PICO_SIGGEN_TRIGGER_RAW: enPicoSigGenTrigSource = 5;
292pub type enPicoSigGenTrigSource = ::std::os::raw::c_uint;
293pub use self::enPicoSigGenTrigSource as PICO_SIGGEN_TRIG_SOURCE;
294pub const enPicoSigGenFilterState_PICO_SIGGEN_FILTER_AUTO: enPicoSigGenFilterState = 0;
295pub const enPicoSigGenFilterState_PICO_SIGGEN_FILTER_OFF: enPicoSigGenFilterState = 1;
296pub const enPicoSigGenFilterState_PICO_SIGGEN_FILTER_ON: enPicoSigGenFilterState = 2;
297pub type enPicoSigGenFilterState = ::std::os::raw::c_uint;
298pub use self::enPicoSigGenFilterState as PICO_SIGGEN_FILTER_STATE;
299pub const enPicoSigGenParameter_PICO_SIGGEN_PARAM_OUTPUT_VOLTS: enPicoSigGenParameter = 0;
300pub const enPicoSigGenParameter_PICO_SIGGEN_PARAM_SAMPLE: enPicoSigGenParameter = 1;
301pub const enPicoSigGenParameter_PICO_SIGGEN_PARAM_BUFFER_LENGTH: enPicoSigGenParameter = 2;
302pub type enPicoSigGenParameter = ::std::os::raw::c_uint;
303pub use self::enPicoSigGenParameter as PICO_SIGGEN_PARAMETER;
304pub const enPicoTimeUnits_PICO_FS: enPicoTimeUnits = 0;
305pub const enPicoTimeUnits_PICO_PS: enPicoTimeUnits = 1;
306pub const enPicoTimeUnits_PICO_NS: enPicoTimeUnits = 2;
307pub const enPicoTimeUnits_PICO_US: enPicoTimeUnits = 3;
308pub const enPicoTimeUnits_PICO_MS: enPicoTimeUnits = 4;
309pub const enPicoTimeUnits_PICO_S: enPicoTimeUnits = 5;
310pub type enPicoTimeUnits = ::std::os::raw::c_uint;
311pub use self::enPicoTimeUnits as PICO_TIME_UNITS;
312pub const enPicoThresholdDirection_PICO_ABOVE: enPicoThresholdDirection = 0;
313pub const enPicoThresholdDirection_PICO_BELOW: enPicoThresholdDirection = 1;
314pub const enPicoThresholdDirection_PICO_RISING: enPicoThresholdDirection = 2;
315pub const enPicoThresholdDirection_PICO_FALLING: enPicoThresholdDirection = 3;
316pub const enPicoThresholdDirection_PICO_RISING_OR_FALLING: enPicoThresholdDirection = 4;
317pub const enPicoThresholdDirection_PICO_ABOVE_LOWER: enPicoThresholdDirection = 5;
318pub const enPicoThresholdDirection_PICO_BELOW_LOWER: enPicoThresholdDirection = 6;
319pub const enPicoThresholdDirection_PICO_RISING_LOWER: enPicoThresholdDirection = 7;
320pub const enPicoThresholdDirection_PICO_FALLING_LOWER: enPicoThresholdDirection = 8;
321pub const enPicoThresholdDirection_PICO_INSIDE: enPicoThresholdDirection = 0;
322pub const enPicoThresholdDirection_PICO_OUTSIDE: enPicoThresholdDirection = 1;
323pub const enPicoThresholdDirection_PICO_ENTER: enPicoThresholdDirection = 2;
324pub const enPicoThresholdDirection_PICO_EXIT: enPicoThresholdDirection = 3;
325pub const enPicoThresholdDirection_PICO_ENTER_OR_EXIT: enPicoThresholdDirection = 4;
326pub const enPicoThresholdDirection_PICO_POSITIVE_RUNT: enPicoThresholdDirection = 9;
327pub const enPicoThresholdDirection_PICO_NEGATIVE_RUNT: enPicoThresholdDirection = 10;
328pub const enPicoThresholdDirection_PICO_LOGIC_LOWER: enPicoThresholdDirection = 1000;
329pub const enPicoThresholdDirection_PICO_LOGIC_UPPER: enPicoThresholdDirection = 1001;
330pub const enPicoThresholdDirection_PICO_NONE: enPicoThresholdDirection = 2;
331pub type enPicoThresholdDirection = ::std::os::raw::c_uint;
332pub use self::enPicoThresholdDirection as PICO_THRESHOLD_DIRECTION;
333pub const enPicoThresholdMode_PICO_LEVEL: enPicoThresholdMode = 0;
334pub const enPicoThresholdMode_PICO_WINDOW: enPicoThresholdMode = 1;
335pub type enPicoThresholdMode = ::std::os::raw::c_uint;
336pub use self::enPicoThresholdMode as PICO_THRESHOLD_MODE;
337pub const enPicoEtsMode_PICO_ETS_OFF: enPicoEtsMode = 0;
338pub const enPicoEtsMode_PICO_ETS_FAST: enPicoEtsMode = 1;
339pub const enPicoEtsMode_PICO_ETS_SLOW: enPicoEtsMode = 2;
340pub type enPicoEtsMode = ::std::os::raw::c_uint;
341pub use self::enPicoEtsMode as PICO_ETS_MODE;
342pub const enPicoIndexMode_PICO_SINGLE: enPicoIndexMode = 0;
343pub const enPicoIndexMode_PICO_DUAL: enPicoIndexMode = 1;
344pub const enPicoIndexMode_PICO_QUAD: enPicoIndexMode = 2;
345pub type enPicoIndexMode = ::std::os::raw::c_uint;
346pub use self::enPicoIndexMode as PICO_INDEX_MODE;
347pub const enPicoAction_PICO_CLEAR_ALL: enPicoAction = 1;
348pub const enPicoAction_PICO_ADD: enPicoAction = 2;
349pub const enPicoAction_PICO_CLEAR_THIS_DATA_BUFFER: enPicoAction = 4096;
350pub const enPicoAction_PICO_CLEAR_WAVEFORM_DATA_BUFFERS: enPicoAction = 8192;
351pub const enPicoAction_PICO_CLEAR_WAVEFORM_READ_DATA_BUFFERS: enPicoAction = 16384;
352pub type enPicoAction = ::std::os::raw::c_uint;
353pub use self::enPicoAction as PICO_ACTION;
354pub const enPicoTriggerState_PICO_CONDITION_DONT_CARE: enPicoTriggerState = 0;
355pub const enPicoTriggerState_PICO_CONDITION_TRUE: enPicoTriggerState = 1;
356pub const enPicoTriggerState_PICO_CONDITION_FALSE: enPicoTriggerState = 2;
357pub type enPicoTriggerState = ::std::os::raw::c_uint;
358pub use self::enPicoTriggerState as PICO_TRIGGER_STATE;
359pub const enPicoDeviceResolution_PICO_DR_8BIT: enPicoDeviceResolution = 0;
360pub const enPicoDeviceResolution_PICO_DR_12BIT: enPicoDeviceResolution = 1;
361pub const enPicoDeviceResolution_PICO_DR_14BIT: enPicoDeviceResolution = 2;
362pub const enPicoDeviceResolution_PICO_DR_15BIT: enPicoDeviceResolution = 3;
363pub const enPicoDeviceResolution_PICO_DR_16BIT: enPicoDeviceResolution = 4;
364pub const enPicoDeviceResolution_PICO_DR_10BIT: enPicoDeviceResolution = 10;
365pub type enPicoDeviceResolution = ::std::os::raw::c_uint;
366pub use self::enPicoDeviceResolution as PICO_DEVICE_RESOLUTION;
367pub const enPicoReadSelection_PICO_READSELECTION_NONE: enPicoReadSelection = 0;
368pub const enPicoReadSelection_PICO_TRIGGER_READ: enPicoReadSelection = 1;
369pub const enPicoReadSelection_PICO_DATA_READ1: enPicoReadSelection = 2;
370pub const enPicoReadSelection_PICO_DATA_READ2: enPicoReadSelection = 3;
371pub const enPicoReadSelection_PICO_DATA_READ3: enPicoReadSelection = 4;
372pub type enPicoReadSelection = ::std::os::raw::c_uint;
373pub use self::enPicoReadSelection as PICO_READ_SELECTION;
374pub const enPicoTrimAction_PICO_OLDEST: enPicoTrimAction = 0;
375pub const enPicoTrimAction_PICO_RECENT: enPicoTrimAction = 1;
376pub type enPicoTrimAction = ::std::os::raw::c_uint;
377pub use self::enPicoTrimAction as PICO_TRIM_ACTION;
378pub const enPicoDigitalPortHysteresis_PICO_VERY_HIGH_400MV: enPicoDigitalPortHysteresis = 0;
379pub const enPicoDigitalPortHysteresis_PICO_HIGH_200MV: enPicoDigitalPortHysteresis = 1;
380pub const enPicoDigitalPortHysteresis_PICO_NORMAL_100MV: enPicoDigitalPortHysteresis = 2;
381pub const enPicoDigitalPortHysteresis_PICO_LOW_50MV: enPicoDigitalPortHysteresis = 3;
382pub type enPicoDigitalPortHysteresis = ::std::os::raw::c_uint;
383pub use self::enPicoDigitalPortHysteresis as PICO_DIGITAL_PORT_HYSTERESIS;
384pub const enPicoDigitalDirection_PICO_DIGITAL_DONT_CARE: enPicoDigitalDirection = 0;
385pub const enPicoDigitalDirection_PICO_DIGITAL_DIRECTION_LOW: enPicoDigitalDirection = 1;
386pub const enPicoDigitalDirection_PICO_DIGITAL_DIRECTION_HIGH: enPicoDigitalDirection = 2;
387pub const enPicoDigitalDirection_PICO_DIGITAL_DIRECTION_RISING: enPicoDigitalDirection = 3;
388pub const enPicoDigitalDirection_PICO_DIGITAL_DIRECTION_FALLING: enPicoDigitalDirection = 4;
389pub const enPicoDigitalDirection_PICO_DIGITAL_DIRECTION_RISING_OR_FALLING: enPicoDigitalDirection =
390    5;
391pub const enPicoDigitalDirection_PICO_DIGITAL_MAX_DIRECTION: enPicoDigitalDirection = 6;
392pub type enPicoDigitalDirection = ::std::os::raw::c_uint;
393pub use self::enPicoDigitalDirection as PICO_DIGITAL_DIRECTION;
394pub const enPicoConditionsInfo_PICO_CLEAR_CONDITIONS: enPicoConditionsInfo = 1;
395pub const enPicoConditionsInfo_PICO_ADD_CONDITION: enPicoConditionsInfo = 2;
396pub type enPicoConditionsInfo = ::std::os::raw::c_uint;
397pub use self::enPicoConditionsInfo as PICO_CONDITIONS_INFO;
398pub const enPicoClockReference_PICO_INTERNAL_REF: enPicoClockReference = 0;
399pub const enPicoClockReference_PICO_EXTERNAL_REF: enPicoClockReference = 1;
400pub type enPicoClockReference = ::std::os::raw::c_uint;
401pub use self::enPicoClockReference as PICO_CLOCK_REFERENCE;
402pub const enPicoTriggerWithinPreTrigger_PICO_DISABLE: enPicoTriggerWithinPreTrigger = 0;
403pub const enPicoTriggerWithinPreTrigger_PICO_ARM: enPicoTriggerWithinPreTrigger = 1;
404pub type enPicoTriggerWithinPreTrigger = ::std::os::raw::c_uint;
405pub use self::enPicoTriggerWithinPreTrigger as PICO_TRIGGER_WITHIN_PRE_TRIGGER;
406pub const tPicoTemperatureReference_PICO_TEMPERATURE_UNINITIALISED: tPicoTemperatureReference = 0;
407pub const tPicoTemperatureReference_PICO_TEMPERATURE_NORMAL: tPicoTemperatureReference = 1;
408pub const tPicoTemperatureReference_PICO_TEMPERATURE_WARNING: tPicoTemperatureReference = 2;
409pub const tPicoTemperatureReference_PICO_TEMPERATURE_CRITICAL: tPicoTemperatureReference = 3;
410pub type tPicoTemperatureReference = ::std::os::raw::c_uint;
411pub use self::tPicoTemperatureReference as PICO_TEMPERATURE_REFERENCE;
412pub const enPicoDigitalPort_PICO_DIGITAL_PORT_NONE: enPicoDigitalPort = 0;
413pub const enPicoDigitalPort_PICO_DIGITAL_PORT_MSO_POD: enPicoDigitalPort = 1000;
414pub const enPicoDigitalPort_PICO_DIGITAL_PORT_UNKNOWN_DEVICE: enPicoDigitalPort = -2;
415pub type enPicoDigitalPort = ::std::os::raw::c_int;
416pub use self::enPicoDigitalPort as PICO_DIGITAL_PORT;
417pub type PicoConnectProbe = i32;
418pub const enPicoConnectProbe_PICO_CONNECT_PROBE_NONE: enPicoConnectProbe = 0;
419pub const enPicoConnectProbe_PICO_CONNECT_PROBE_D9_BNC: enPicoConnectProbe = 4000;
420pub const enPicoConnectProbe_PICO_CONNECT_PROBE_D9_2X_BNC: enPicoConnectProbe = 4001;
421pub const enPicoConnectProbe_PICO_CONNECT_PROBE_DIFFERENTIAL: enPicoConnectProbe = 4002;
422pub const enPicoConnectProbe_PICO_CONNECT_PROBE_CURRENT_CLAMP_200_2KA: enPicoConnectProbe = 4003;
423pub const enPicoConnectProbe_PICO_CONNECT_PROBE_CURRENT_CLAMP_40A: enPicoConnectProbe = 4004;
424pub const enPicoConnectProbe_PICO_CONNECT_PROBE_CAT3_HV_1KV: enPicoConnectProbe = 4005;
425pub const enPicoConnectProbe_PICO_CONNECT_PROBE_CURRENT_CLAMP_2000ARMS: enPicoConnectProbe = 4006;
426pub const enPicoConnectProbe_PICO_BNC_PLUS_PREMIUM_TEST_LEAD_BLUE: enPicoConnectProbe = 4404;
427pub const enPicoConnectProbe_PICO_BNC_PLUS_PREMIUM_TEST_LEAD_RED: enPicoConnectProbe = 4405;
428pub const enPicoConnectProbe_PICO_BNC_PLUS_PREMIUM_TEST_LEAD_GREEN: enPicoConnectProbe = 4406;
429pub const enPicoConnectProbe_PICO_BNC_PLUS_PREMIUM_TEST_LEAD_YELLOW: enPicoConnectProbe = 4407;
430pub const enPicoConnectProbe_PICO_BNC_PLUS_COP_PROBE: enPicoConnectProbe = 4408;
431pub const enPicoConnectProbe_PICO_BNC_PLUS_TEMPERATURE_PROBE: enPicoConnectProbe = 5000;
432pub const enPicoConnectProbe_PICO_BNC_PLUS_100A_CURRENT_CLAMP: enPicoConnectProbe = 5003;
433pub const enPicoConnectProbe_PICO_BNC_PLUS_HT_PICKUP: enPicoConnectProbe = 5005;
434pub const enPicoConnectProbe_PICO_BNC_PLUS_X10_SCOPE_PROBE: enPicoConnectProbe = 5006;
435pub const enPicoConnectProbe_PICO_BNC_PLUS_2000A_CURRENT_CLAMP: enPicoConnectProbe = 5007;
436pub const enPicoConnectProbe_PICO_BNC_PLUS_PRESSURE_SENSOR: enPicoConnectProbe = 5008;
437pub const enPicoConnectProbe_PICO_BNC_PLUS_RESISTANCE_LEAD: enPicoConnectProbe = 5009;
438pub const enPicoConnectProbe_PICO_BNC_PLUS_60A_CURRENT_CLAMP: enPicoConnectProbe = 5010;
439pub const enPicoConnectProbe_PICO_BNC_PLUS_OPTICAL_SENSOR: enPicoConnectProbe = 5011;
440pub const enPicoConnectProbe_PICO_BNC_PLUS_60A_CURRENT_CLAMP_V2: enPicoConnectProbe = 5012;
441pub const enPicoConnectProbe_PICO_PASSIVE_PROBE_X10: enPicoConnectProbe = 6000;
442pub const enPicoConnectProbe_PICO_CONNECT_PROBE_INTELLIGENT: enPicoConnectProbe = -3;
443pub const enPicoConnectProbe_PICO_CONNECT_PROBE_UNKNOWN_PROBE: enPicoConnectProbe = -2;
444pub const enPicoConnectProbe_PICO_CONNECT_PROBE_FAULT_PROBE: enPicoConnectProbe = -1;
445pub type enPicoConnectProbe = ::std::os::raw::c_int;
446pub use self::enPicoConnectProbe as PICO_CONNECT_PROBE;
447pub const enPicoConnectProbeRange_PICO_X1_PROBE_10MV: enPicoConnectProbeRange = 0;
448pub const enPicoConnectProbeRange_PICO_X1_PROBE_20MV: enPicoConnectProbeRange = 1;
449pub const enPicoConnectProbeRange_PICO_X1_PROBE_50MV: enPicoConnectProbeRange = 2;
450pub const enPicoConnectProbeRange_PICO_X1_PROBE_100MV: enPicoConnectProbeRange = 3;
451pub const enPicoConnectProbeRange_PICO_X1_PROBE_200MV: enPicoConnectProbeRange = 4;
452pub const enPicoConnectProbeRange_PICO_X1_PROBE_500MV: enPicoConnectProbeRange = 5;
453pub const enPicoConnectProbeRange_PICO_X1_PROBE_1V: enPicoConnectProbeRange = 6;
454pub const enPicoConnectProbeRange_PICO_X1_PROBE_2V: enPicoConnectProbeRange = 7;
455pub const enPicoConnectProbeRange_PICO_X1_PROBE_5V: enPicoConnectProbeRange = 8;
456pub const enPicoConnectProbeRange_PICO_X1_PROBE_10V: enPicoConnectProbeRange = 9;
457pub const enPicoConnectProbeRange_PICO_X1_PROBE_20V: enPicoConnectProbeRange = 10;
458pub const enPicoConnectProbeRange_PICO_X1_PROBE_50V: enPicoConnectProbeRange = 11;
459pub const enPicoConnectProbeRange_PICO_X1_PROBE_100V: enPicoConnectProbeRange = 12;
460pub const enPicoConnectProbeRange_PICO_X1_PROBE_200V: enPicoConnectProbeRange = 13;
461pub const enPicoConnectProbeRange_PICO_X1_PROBE_RANGES: enPicoConnectProbeRange = 14;
462pub const enPicoConnectProbeRange_PICO_X10_PROBE_100MV: enPicoConnectProbeRange = 32;
463pub const enPicoConnectProbeRange_PICO_X10_PROBE_200MV: enPicoConnectProbeRange = 33;
464pub const enPicoConnectProbeRange_PICO_X10_PROBE_500MV: enPicoConnectProbeRange = 34;
465pub const enPicoConnectProbeRange_PICO_X10_PROBE_1V: enPicoConnectProbeRange = 35;
466pub const enPicoConnectProbeRange_PICO_X10_PROBE_2V: enPicoConnectProbeRange = 36;
467pub const enPicoConnectProbeRange_PICO_X10_PROBE_5V: enPicoConnectProbeRange = 37;
468pub const enPicoConnectProbeRange_PICO_X10_PROBE_10V: enPicoConnectProbeRange = 38;
469pub const enPicoConnectProbeRange_PICO_X10_PROBE_20V: enPicoConnectProbeRange = 39;
470pub const enPicoConnectProbeRange_PICO_X10_PROBE_50V: enPicoConnectProbeRange = 40;
471pub const enPicoConnectProbeRange_PICO_X10_PROBE_100V: enPicoConnectProbeRange = 41;
472pub const enPicoConnectProbeRange_PICO_X10_PROBE_200V: enPicoConnectProbeRange = 42;
473pub const enPicoConnectProbeRange_PICO_X10_PROBE_500V: enPicoConnectProbeRange = 43;
474pub const enPicoConnectProbeRange_PICO_X10_PROBE_RANGES: enPicoConnectProbeRange = 12;
475pub const enPicoConnectProbeRange_PICO_PS4000A_RESISTANCE_315K: enPicoConnectProbeRange = 512;
476pub const enPicoConnectProbeRange_PICO_PS4000A_RESISTANCE_1100K: enPicoConnectProbeRange = 513;
477pub const enPicoConnectProbeRange_PICO_PS4000A_RESISTANCE_10M: enPicoConnectProbeRange = 514;
478pub const enPicoConnectProbeRange_PICO_PS4000A_MAX_RESISTANCE_RANGES: enPicoConnectProbeRange = 3;
479pub const enPicoConnectProbeRange_PICO_PS4000A_RESISTANCE_ADCV_FLAG: enPicoConnectProbeRange =
480    268435456;
481pub const enPicoConnectProbeRange_PICO_CONNECT_PROBE_OFF: enPicoConnectProbeRange = 1024;
482pub const enPicoConnectProbeRange_PICO_D9_BNC_10MV: enPicoConnectProbeRange = 0;
483pub const enPicoConnectProbeRange_PICO_D9_BNC_20MV: enPicoConnectProbeRange = 1;
484pub const enPicoConnectProbeRange_PICO_D9_BNC_50MV: enPicoConnectProbeRange = 2;
485pub const enPicoConnectProbeRange_PICO_D9_BNC_100MV: enPicoConnectProbeRange = 3;
486pub const enPicoConnectProbeRange_PICO_D9_BNC_200MV: enPicoConnectProbeRange = 4;
487pub const enPicoConnectProbeRange_PICO_D9_BNC_500MV: enPicoConnectProbeRange = 5;
488pub const enPicoConnectProbeRange_PICO_D9_BNC_1V: enPicoConnectProbeRange = 6;
489pub const enPicoConnectProbeRange_PICO_D9_BNC_2V: enPicoConnectProbeRange = 7;
490pub const enPicoConnectProbeRange_PICO_D9_BNC_5V: enPicoConnectProbeRange = 8;
491pub const enPicoConnectProbeRange_PICO_D9_BNC_10V: enPicoConnectProbeRange = 9;
492pub const enPicoConnectProbeRange_PICO_D9_BNC_20V: enPicoConnectProbeRange = 10;
493pub const enPicoConnectProbeRange_PICO_D9_BNC_50V: enPicoConnectProbeRange = 11;
494pub const enPicoConnectProbeRange_PICO_D9_BNC_100V: enPicoConnectProbeRange = 12;
495pub const enPicoConnectProbeRange_PICO_D9_BNC_200V: enPicoConnectProbeRange = 13;
496pub const enPicoConnectProbeRange_PICO_MAX_D9_BNC_RANGES: enPicoConnectProbeRange = 14;
497pub const enPicoConnectProbeRange_PICO_D9_2X_BNC_10MV: enPicoConnectProbeRange = 0;
498pub const enPicoConnectProbeRange_PICO_D9_2X_BNC_20MV: enPicoConnectProbeRange = 1;
499pub const enPicoConnectProbeRange_PICO_D9_2X_BNC_50MV: enPicoConnectProbeRange = 2;
500pub const enPicoConnectProbeRange_PICO_D9_2X_BNC_100MV: enPicoConnectProbeRange = 3;
501pub const enPicoConnectProbeRange_PICO_D9_2X_BNC_200MV: enPicoConnectProbeRange = 4;
502pub const enPicoConnectProbeRange_PICO_D9_2X_BNC_500MV: enPicoConnectProbeRange = 5;
503pub const enPicoConnectProbeRange_PICO_D9_2X_BNC_1V: enPicoConnectProbeRange = 6;
504pub const enPicoConnectProbeRange_PICO_D9_2X_BNC_2V: enPicoConnectProbeRange = 7;
505pub const enPicoConnectProbeRange_PICO_D9_2X_BNC_5V: enPicoConnectProbeRange = 8;
506pub const enPicoConnectProbeRange_PICO_D9_2X_BNC_10V: enPicoConnectProbeRange = 9;
507pub const enPicoConnectProbeRange_PICO_D9_2X_BNC_20V: enPicoConnectProbeRange = 10;
508pub const enPicoConnectProbeRange_PICO_D9_2X_BNC_50V: enPicoConnectProbeRange = 11;
509pub const enPicoConnectProbeRange_PICO_D9_2X_BNC_100V: enPicoConnectProbeRange = 12;
510pub const enPicoConnectProbeRange_PICO_D9_2X_BNC_200V: enPicoConnectProbeRange = 13;
511pub const enPicoConnectProbeRange_PICO_MAX_D9_2X_BNC_RANGES: enPicoConnectProbeRange = 14;
512pub const enPicoConnectProbeRange_PICO_DIFFERENTIAL_10MV: enPicoConnectProbeRange = 0;
513pub const enPicoConnectProbeRange_PICO_DIFFERENTIAL_20MV: enPicoConnectProbeRange = 1;
514pub const enPicoConnectProbeRange_PICO_DIFFERENTIAL_50MV: enPicoConnectProbeRange = 2;
515pub const enPicoConnectProbeRange_PICO_DIFFERENTIAL_100MV: enPicoConnectProbeRange = 3;
516pub const enPicoConnectProbeRange_PICO_DIFFERENTIAL_200MV: enPicoConnectProbeRange = 4;
517pub const enPicoConnectProbeRange_PICO_DIFFERENTIAL_500MV: enPicoConnectProbeRange = 5;
518pub const enPicoConnectProbeRange_PICO_DIFFERENTIAL_1V: enPicoConnectProbeRange = 6;
519pub const enPicoConnectProbeRange_PICO_DIFFERENTIAL_2V: enPicoConnectProbeRange = 7;
520pub const enPicoConnectProbeRange_PICO_DIFFERENTIAL_5V: enPicoConnectProbeRange = 8;
521pub const enPicoConnectProbeRange_PICO_DIFFERENTIAL_10V: enPicoConnectProbeRange = 9;
522pub const enPicoConnectProbeRange_PICO_DIFFERENTIAL_20V: enPicoConnectProbeRange = 10;
523pub const enPicoConnectProbeRange_PICO_DIFFERENTIAL_50V: enPicoConnectProbeRange = 11;
524pub const enPicoConnectProbeRange_PICO_DIFFERENTIAL_100V: enPicoConnectProbeRange = 12;
525pub const enPicoConnectProbeRange_PICO_DIFFERENTIAL_200V: enPicoConnectProbeRange = 13;
526pub const enPicoConnectProbeRange_PICO_MAX_DIFFERENTIAL_RANGES: enPicoConnectProbeRange = 14;
527pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_200A_2kA_1A: enPicoConnectProbeRange = 4000;
528pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_200A_2kA_2A: enPicoConnectProbeRange = 4001;
529pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_200A_2kA_5A: enPicoConnectProbeRange = 4002;
530pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_200A_2kA_10A: enPicoConnectProbeRange = 4003;
531pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_200A_2kA_20A: enPicoConnectProbeRange = 4004;
532pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_200A_2kA_50A: enPicoConnectProbeRange = 4005;
533pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_200A_2kA_100A: enPicoConnectProbeRange = 4006;
534pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_200A_2kA_200A: enPicoConnectProbeRange = 4007;
535pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_200A_2kA_500A: enPicoConnectProbeRange = 4008;
536pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_200A_2kA_1000A: enPicoConnectProbeRange = 4009;
537pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_200A_2kA_2000A: enPicoConnectProbeRange = 4010;
538pub const enPicoConnectProbeRange_PICO_MAX_CURRENT_CLAMP_200A_2kA_RANGES: enPicoConnectProbeRange =
539    11;
540pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_40A_100mA: enPicoConnectProbeRange = 5000;
541pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_40A_200mA: enPicoConnectProbeRange = 5001;
542pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_40A_500mA: enPicoConnectProbeRange = 5002;
543pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_40A_1A: enPicoConnectProbeRange = 5003;
544pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_40A_2A: enPicoConnectProbeRange = 5004;
545pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_40A_5A: enPicoConnectProbeRange = 5005;
546pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_40A_10A: enPicoConnectProbeRange = 5006;
547pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_40A_20A: enPicoConnectProbeRange = 5007;
548pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_40A_40A: enPicoConnectProbeRange = 5008;
549pub const enPicoConnectProbeRange_PICO_MAX_CURRENT_CLAMP_40A_RANGES: enPicoConnectProbeRange = 9;
550pub const enPicoConnectProbeRange_PICO_1KV_2_5V: enPicoConnectProbeRange = 6003;
551pub const enPicoConnectProbeRange_PICO_1KV_5V: enPicoConnectProbeRange = 6004;
552pub const enPicoConnectProbeRange_PICO_1KV_12_5V: enPicoConnectProbeRange = 6005;
553pub const enPicoConnectProbeRange_PICO_1KV_25V: enPicoConnectProbeRange = 6006;
554pub const enPicoConnectProbeRange_PICO_1KV_50V: enPicoConnectProbeRange = 6007;
555pub const enPicoConnectProbeRange_PICO_1KV_125V: enPicoConnectProbeRange = 6008;
556pub const enPicoConnectProbeRange_PICO_1KV_250V: enPicoConnectProbeRange = 6009;
557pub const enPicoConnectProbeRange_PICO_1KV_500V: enPicoConnectProbeRange = 6010;
558pub const enPicoConnectProbeRange_PICO_1KV_1000V: enPicoConnectProbeRange = 6011;
559pub const enPicoConnectProbeRange_PICO_MAX_1KV_RANGES: enPicoConnectProbeRange = 9;
560pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_2000ARMS_10A: enPicoConnectProbeRange = 6500;
561pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_2000ARMS_20A: enPicoConnectProbeRange = 6501;
562pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_2000ARMS_50A: enPicoConnectProbeRange = 6502;
563pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_2000ARMS_100A: enPicoConnectProbeRange = 6503;
564pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_2000ARMS_200A: enPicoConnectProbeRange = 6504;
565pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_2000ARMS_500A: enPicoConnectProbeRange = 6505;
566pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_2000ARMS_1000A: enPicoConnectProbeRange = 6506;
567pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_2000ARMS_2000A: enPicoConnectProbeRange = 6507;
568pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_2000ARMS_5000A: enPicoConnectProbeRange = 6508;
569pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_2000ARMS_RANGES: enPicoConnectProbeRange = 9;
570pub const enPicoConnectProbeRange_PICO_RESISTANCE_LEAD_NEG5_TO_20OHM: enPicoConnectProbeRange =
571    7000;
572pub const enPicoConnectProbeRange_PICO_RESISTANCE_LEAD_NEG50_TO_200OHM: enPicoConnectProbeRange =
573    7001;
574pub const enPicoConnectProbeRange_PICO_RESISTANCE_LEAD_NEG500_TO_2KOHM: enPicoConnectProbeRange =
575    7002;
576pub const enPicoConnectProbeRange_PICO_RESISTANCE_LEAD_NEG5K_TO_20KOHM: enPicoConnectProbeRange =
577    7003;
578pub const enPicoConnectProbeRange_PICO_RESISTANCE_LEAD_NEG50K_TO_LEAD_200KOHM:
579    enPicoConnectProbeRange = 7004;
580pub const enPicoConnectProbeRange_PICO_RESISTANCE_LEAD_NEG500K_TO_LEAD_2MOHM:
581    enPicoConnectProbeRange = 7005;
582pub const enPicoConnectProbeRange_PICO_RESISTANCE_LEAD_DIODE_TEST: enPicoConnectProbeRange = 7006;
583pub const enPicoConnectProbeRange_PICO_MAX_RESISTANCE_LEAD_RANGES: enPicoConnectProbeRange = 6;
584pub const enPicoConnectProbeRange_PICO_HT_NEG3_TO_5KV: enPicoConnectProbeRange = 8950;
585pub const enPicoConnectProbeRange_PICO_HT_NEG3_TO_10KV: enPicoConnectProbeRange = 8951;
586pub const enPicoConnectProbeRange_PICO_HT_NEG5_TO_20KV: enPicoConnectProbeRange = 8952;
587pub const enPicoConnectProbeRange_PICO_HT_NEG5_TO_50KV: enPicoConnectProbeRange = 8953;
588pub const enPicoConnectProbeRange_PICO_HT_NEG5_TO_100KV: enPicoConnectProbeRange = 8954;
589pub const enPicoConnectProbeRange_PICO_HT_NEG3_TO_5KV_INVERTED: enPicoConnectProbeRange = 8955;
590pub const enPicoConnectProbeRange_PICO_HT_NEG3_TO_10KV_INVERTED: enPicoConnectProbeRange = 8956;
591pub const enPicoConnectProbeRange_PICO_HT_NEG5_TO_20KV_INVERTED: enPicoConnectProbeRange = 8957;
592pub const enPicoConnectProbeRange_PICO_HT_NEG5_TO_50KV_INVERTED: enPicoConnectProbeRange = 8958;
593pub const enPicoConnectProbeRange_PICO_HT_NEG5_TO_100KV_INVERTED: enPicoConnectProbeRange = 8959;
594pub const enPicoConnectProbeRange_PICO_MAX_HT_RANGES: enPicoConnectProbeRange = 10;
595pub const enPicoConnectProbeRange_PICO_TEMPERATURE_NEG50_TO_150DEGC: enPicoConnectProbeRange = 9000;
596pub const enPicoConnectProbeRange_PICO_PRESSURE_SENSOR_NEG100000_TO_150000_PASCALS:
597    enPicoConnectProbeRange = 9100;
598pub const enPicoConnectProbeRange_PICO_PRESSURE_SENSOR_NEG100000_TO_400000_PASCALS:
599    enPicoConnectProbeRange = 9101;
600pub const enPicoConnectProbeRange_PICO_PRESSURE_SENSOR_NEG200000_TO_800000_PASCALS:
601    enPicoConnectProbeRange = 9102;
602pub const enPicoConnectProbeRange_PICO_PRESSURE_SENSOR_NEG400000_TO_1600000_PASCALS:
603    enPicoConnectProbeRange = 9103;
604pub const enPicoConnectProbeRange_PICO_PRESSURE_SENSOR_NEG400000_TO_3400000_PASCALS:
605    enPicoConnectProbeRange = 9104;
606pub const enPicoConnectProbeRange_PICO_PRESSURE_SENSOR_NEG150000_TO_1350000_PASCALS:
607    enPicoConnectProbeRange = 9105;
608pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_100A_2_5A: enPicoConnectProbeRange = 10000;
609pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_100A_5A: enPicoConnectProbeRange = 10001;
610pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_100A_10A: enPicoConnectProbeRange = 10002;
611pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_100A_25A: enPicoConnectProbeRange = 10003;
612pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_100A_50A: enPicoConnectProbeRange = 10004;
613pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_100A_100A: enPicoConnectProbeRange = 10005;
614pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_60A_2A: enPicoConnectProbeRange = 10500;
615pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_60A_5A: enPicoConnectProbeRange = 10501;
616pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_60A_10A: enPicoConnectProbeRange = 10502;
617pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_60A_20A: enPicoConnectProbeRange = 10503;
618pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_60A_50A: enPicoConnectProbeRange = 10504;
619pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_60A_60A: enPicoConnectProbeRange = 10505;
620pub const enPicoConnectProbeRange_PICO_OPTICAL_SENSOR_10V: enPicoConnectProbeRange = 10550;
621pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_60A_V2_0_5A: enPicoConnectProbeRange = 10600;
622pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_60A_V2_1A: enPicoConnectProbeRange = 10601;
623pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_60A_V2_2A: enPicoConnectProbeRange = 10602;
624pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_60A_V2_5A: enPicoConnectProbeRange = 10603;
625pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_60A_V2_10A: enPicoConnectProbeRange = 10604;
626pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_60A_V2_20A: enPicoConnectProbeRange = 10605;
627pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_60A_V2_50A: enPicoConnectProbeRange = 10606;
628pub const enPicoConnectProbeRange_PICO_CURRENT_CLAMP_60A_V2_60A: enPicoConnectProbeRange = 10607;
629pub type enPicoConnectProbeRange = ::std::os::raw::c_uint;
630pub use self::enPicoConnectProbeRange as PICO_CONNECT_PROBE_RANGE;
631#[repr(C, packed)]
632#[derive(Debug, Copy, Clone)]
633pub struct tPicoTriggerInfo {
634    pub status: PICO_STATUS,
635    pub segmentIndex: u64,
636    pub triggerIndex: u64,
637    pub triggerTime: f64,
638    pub timeUnits: PICO_TIME_UNITS,
639    pub missedTriggers: u64,
640    pub timeStampCounter: u64,
641}
642
643pub type PICO_TRIGGER_INFO = tPicoTriggerInfo;
644#[repr(C, packed)]
645#[derive(Debug, Copy, Clone)]
646pub struct tPicoTriggerChannelProperties {
647    pub thresholdUpper: i16,
648    pub thresholdUpperHysteresis: u16,
649    pub thresholdLower: i16,
650    pub thresholdLowerHysteresis: u16,
651    pub channel: PICO_CHANNEL,
652}
653
654pub type PICO_TRIGGER_CHANNEL_PROPERTIES = tPicoTriggerChannelProperties;
655#[repr(C, packed)]
656#[derive(Debug, Copy, Clone)]
657pub struct tPicoCondition {
658    pub source: PICO_CHANNEL,
659    pub condition: PICO_TRIGGER_STATE,
660}
661
662pub type PICO_CONDITION = tPicoCondition;
663#[repr(C, packed)]
664#[derive(Debug, Copy, Clone)]
665pub struct tPicoDirection {
666    pub channel: PICO_CHANNEL,
667    pub direction: PICO_THRESHOLD_DIRECTION,
668    pub thresholdMode: PICO_THRESHOLD_MODE,
669}
670
671pub type PICO_DIRECTION = tPicoDirection;
672#[repr(C, packed)]
673#[derive(Debug, Copy, Clone)]
674pub struct tPicoUserProbeInteractions {
675    pub connected_: u16,
676    pub channel_: PICO_CHANNEL,
677    pub enabled_: u16,
678    pub probeName_: PicoConnectProbe,
679    pub requiresPower_: u8,
680    pub isPowered_: u8,
681    pub status_: PICO_STATUS,
682    pub probeOff_: PICO_CONNECT_PROBE_RANGE,
683    pub rangeFirst_: PICO_CONNECT_PROBE_RANGE,
684    pub rangeLast_: PICO_CONNECT_PROBE_RANGE,
685    pub rangeCurrent_: PICO_CONNECT_PROBE_RANGE,
686    pub couplingFirst_: PICO_COUPLING,
687    pub couplingLast_: PICO_COUPLING,
688    pub couplingCurrent_: PICO_COUPLING,
689    pub filterFlags_: PICO_BANDWIDTH_LIMITER_FLAGS,
690    pub filterCurrent_: PICO_BANDWIDTH_LIMITER_FLAGS,
691    pub defaultFilter_: PICO_BANDWIDTH_LIMITER,
692}
693pub type PICO_USER_PROBE_INTERACTIONS = tPicoUserProbeInteractions;
694#[repr(C, packed)]
695#[derive(Debug, Copy, Clone)]
696pub struct tPicoDataBuffers {
697    pub channel_: PICO_CHANNEL,
698    pub waveform_: u64,
699    pub downSampleRatioMode_: PICO_RATIO_MODE,
700    pub read_: PICO_READ_SELECTION,
701    pub bufferMax_: PICO_POINTER,
702    pub bufferMin_: PICO_POINTER,
703    pub dataType_: PICO_DATA_TYPE,
704    pub nDistributionPoints_: u32,
705}
706
707pub type PICO_DATA_BUFFERS = tPicoDataBuffers;
708#[repr(C, packed)]
709#[derive(Debug, Copy, Clone)]
710pub struct tPicoStreamingDataInfo {
711    pub channel_: PICO_CHANNEL,
712    pub mode_: PICO_RATIO_MODE,
713    pub type_: PICO_DATA_TYPE,
714    pub noOfSamples_: i32,
715    pub bufferIndex_: u64,
716    pub startIndex_: i32,
717    pub overflow_: i16,
718}
719
720pub type PICO_STREAMING_DATA_INFO = tPicoStreamingDataInfo;
721#[repr(C, packed)]
722#[derive(Debug, Copy, Clone)]
723pub struct tPicoStreamingDataTriggerInfo {
724    pub triggerAt_: u64,
725    pub triggered_: i16,
726    pub autoStop_: i16,
727}
728
729pub type PICO_STREAMING_DATA_TRIGGER_INFO = tPicoStreamingDataTriggerInfo;
730#[repr(C, packed)]
731#[derive(Debug, Copy, Clone)]
732pub struct tPicoScalingFactors {
733    pub channel: PICO_CHANNEL,
734    pub range: PICO_CONNECT_PROBE_RANGE,
735    pub offset: i16,
736    pub scalingFactor: f64,
737}
738
739pub type PICO_SCALING_FACTORS_VALUES = tPicoScalingFactors;
740#[repr(C, packed)]
741#[derive(Debug, Copy, Clone)]
742pub struct tProbeApp {
743    pub id_: i32,
744    pub appMajorVersion_: i32,
745    pub appMinorVersion_: i32,
746}
747
748pub type PROBE_APP = tProbeApp;
749#[repr(C, packed)]
750#[derive(Debug, Copy, Clone)]
751pub struct tDigitalChannelDirections {
752    pub channel: PICO_PORT_DIGITAL_CHANNEL,
753    pub direction: PICO_DIGITAL_DIRECTION,
754}
755
756pub type PICO_DIGITAL_CHANNEL_DIRECTIONS = tDigitalChannelDirections;
757#[repr(C, packed)]
758#[derive(Debug, Copy, Clone)]
759pub struct tPicoDigitalPortInteractions {
760    pub connected_: u16,
761    pub channel_: PICO_CHANNEL,
762    pub digitalPortName_: PICO_DIGITAL_PORT,
763    pub status_: PICO_STATUS,
764    pub serial_: [i8; 10usize],
765    pub calibrationDate_: [i8; 8usize],
766}
767
768pub type PICO_DIGITAL_PORT_INTERACTIONS = tPicoDigitalPortInteractions;
769#[repr(C, packed)]
770#[derive(Debug, Copy, Clone)]
771pub struct tPicoChannelOvervoltageTripped {
772    pub channel_: PICO_CHANNEL,
773    pub tripped_: u8,
774}
775
776pub type PICO_CHANNEL_OVERVOLTAGE_TRIPPED = tPicoChannelOvervoltageTripped;
777pub type PicoUpdateFirmwareProgress =
778    ::std::option::Option<extern "C" fn(handle: i16, progress: u16)>;
779pub type PicoProbeInteractions = ::std::option::Option<
780    extern "C" fn(
781        handle: i16,
782        status: PICO_STATUS,
783        probes: *mut PICO_USER_PROBE_INTERACTIONS,
784        nProbes: u32,
785    ),
786>;
787pub type PicoDataReadyUsingReads = ::std::option::Option<
788    extern "C" fn(
789        handle: i16,
790        read: PICO_READ_SELECTION,
791        status: PICO_STATUS,
792        fromSegmentIndex: u64,
793        toSegmentIndex: u64,
794        pParameter: PICO_POINTER,
795    ),
796>;
797pub type PicoExternalReferenceInteractions = ::std::option::Option<
798    extern "C" fn(handle: i16, status: PICO_STATUS, reference: PICO_CLOCK_REFERENCE),
799>;
800pub type PicoAWGOverrangeInteractions =
801    ::std::option::Option<extern "C" fn(handle: i16, status: PICO_STATUS)>;
802pub type PicoTemperatureSensorInteractions = ::std::option::Option<
803    extern "C" fn(handle: i16, temperatureStatus: PICO_TEMPERATURE_REFERENCE),
804>;
805pub const enPS5000ADeviceResolution_PS5000A_DR_8BIT: enPS5000ADeviceResolution = 0;
806pub const enPS5000ADeviceResolution_PS5000A_DR_12BIT: enPS5000ADeviceResolution = 1;
807pub const enPS5000ADeviceResolution_PS5000A_DR_14BIT: enPS5000ADeviceResolution = 2;
808pub const enPS5000ADeviceResolution_PS5000A_DR_15BIT: enPS5000ADeviceResolution = 3;
809pub const enPS5000ADeviceResolution_PS5000A_DR_16BIT: enPS5000ADeviceResolution = 4;
810pub type enPS5000ADeviceResolution = ::std::os::raw::c_uint;
811pub use self::enPS5000ADeviceResolution as PS5000A_DEVICE_RESOLUTION;
812pub const enPS5000AExtraOperations_PS5000A_ES_OFF: enPS5000AExtraOperations = 0;
813pub const enPS5000AExtraOperations_PS5000A_WHITENOISE: enPS5000AExtraOperations = 1;
814pub const enPS5000AExtraOperations_PS5000A_PRBS: enPS5000AExtraOperations = 2;
815pub type enPS5000AExtraOperations = ::std::os::raw::c_uint;
816pub use self::enPS5000AExtraOperations as PS5000A_EXTRA_OPERATIONS;
817pub const enPS5000ABandwidthLimiter_PS5000A_BW_FULL: enPS5000ABandwidthLimiter = 0;
818pub const enPS5000ABandwidthLimiter_PS5000A_BW_20MHZ: enPS5000ABandwidthLimiter = 1;
819pub type enPS5000ABandwidthLimiter = ::std::os::raw::c_uint;
820pub use self::enPS5000ABandwidthLimiter as PS5000A_BANDWIDTH_LIMITER;
821pub const enPS5000ACoupling_PS5000A_AC: enPS5000ACoupling = 0;
822pub const enPS5000ACoupling_PS5000A_DC: enPS5000ACoupling = 1;
823pub type enPS5000ACoupling = ::std::os::raw::c_uint;
824pub use self::enPS5000ACoupling as PS5000A_COUPLING;
825pub const enPS5000AChannel_PS5000A_CHANNEL_A: enPS5000AChannel = 0;
826pub const enPS5000AChannel_PS5000A_CHANNEL_B: enPS5000AChannel = 1;
827pub const enPS5000AChannel_PS5000A_CHANNEL_C: enPS5000AChannel = 2;
828pub const enPS5000AChannel_PS5000A_CHANNEL_D: enPS5000AChannel = 3;
829pub const enPS5000AChannel_PS5000A_EXTERNAL: enPS5000AChannel = 4;
830pub const enPS5000AChannel_PS5000A_MAX_CHANNELS: enPS5000AChannel = 4;
831pub const enPS5000AChannel_PS5000A_TRIGGER_AUX: enPS5000AChannel = 5;
832pub const enPS5000AChannel_PS5000A_MAX_TRIGGER_SOURCES: enPS5000AChannel = 6;
833pub const enPS5000AChannel_PS5000A_DIGITAL_PORT0: enPS5000AChannel = 128;
834pub const enPS5000AChannel_PS5000A_DIGITAL_PORT1: enPS5000AChannel = 129;
835pub const enPS5000AChannel_PS5000A_DIGITAL_PORT2: enPS5000AChannel = 130;
836pub const enPS5000AChannel_PS5000A_DIGITAL_PORT3: enPS5000AChannel = 131;
837pub const enPS5000AChannel_PS5000A_PULSE_WIDTH_SOURCE: enPS5000AChannel = 268435456;
838pub type enPS5000AChannel = ::std::os::raw::c_uint;
839pub use self::enPS5000AChannel as PS5000A_CHANNEL;
840pub const enPS5000AChannelFlags_PS5000A_CHANNEL_A_FLAGS: enPS5000AChannelFlags = 1;
841pub const enPS5000AChannelFlags_PS5000A_CHANNEL_B_FLAGS: enPS5000AChannelFlags = 2;
842pub const enPS5000AChannelFlags_PS5000A_CHANNEL_C_FLAGS: enPS5000AChannelFlags = 4;
843pub const enPS5000AChannelFlags_PS5000A_CHANNEL_D_FLAGS: enPS5000AChannelFlags = 8;
844pub const enPS5000AChannelFlags_PS5000A_PORT0_FLAGS: enPS5000AChannelFlags = 65536;
845pub const enPS5000AChannelFlags_PS5000A_PORT1_FLAGS: enPS5000AChannelFlags = 131072;
846pub const enPS5000AChannelFlags_PS5000A_PORT2_FLAGS: enPS5000AChannelFlags = 262144;
847pub const enPS5000AChannelFlags_PS5000A_PORT3_FLAGS: enPS5000AChannelFlags = 524288;
848pub type enPS5000AChannelFlags = ::std::os::raw::c_uint;
849pub use self::enPS5000AChannelFlags as PS5000A_CHANNEL_FLAGS;
850pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_0: enPS5000ADigitalChannel = 0;
851pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_1: enPS5000ADigitalChannel = 1;
852pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_2: enPS5000ADigitalChannel = 2;
853pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_3: enPS5000ADigitalChannel = 3;
854pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_4: enPS5000ADigitalChannel = 4;
855pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_5: enPS5000ADigitalChannel = 5;
856pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_6: enPS5000ADigitalChannel = 6;
857pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_7: enPS5000ADigitalChannel = 7;
858pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_8: enPS5000ADigitalChannel = 8;
859pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_9: enPS5000ADigitalChannel = 9;
860pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_10: enPS5000ADigitalChannel = 10;
861pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_11: enPS5000ADigitalChannel = 11;
862pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_12: enPS5000ADigitalChannel = 12;
863pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_13: enPS5000ADigitalChannel = 13;
864pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_14: enPS5000ADigitalChannel = 14;
865pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_15: enPS5000ADigitalChannel = 15;
866pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_16: enPS5000ADigitalChannel = 16;
867pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_17: enPS5000ADigitalChannel = 17;
868pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_18: enPS5000ADigitalChannel = 18;
869pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_19: enPS5000ADigitalChannel = 19;
870pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_20: enPS5000ADigitalChannel = 20;
871pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_21: enPS5000ADigitalChannel = 21;
872pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_22: enPS5000ADigitalChannel = 22;
873pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_23: enPS5000ADigitalChannel = 23;
874pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_24: enPS5000ADigitalChannel = 24;
875pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_25: enPS5000ADigitalChannel = 25;
876pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_26: enPS5000ADigitalChannel = 26;
877pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_27: enPS5000ADigitalChannel = 27;
878pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_28: enPS5000ADigitalChannel = 28;
879pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_29: enPS5000ADigitalChannel = 29;
880pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_30: enPS5000ADigitalChannel = 30;
881pub const enPS5000ADigitalChannel_PS5000A_DIGITAL_CHANNEL_31: enPS5000ADigitalChannel = 31;
882pub const enPS5000ADigitalChannel_PS5000A_MAX_DIGITAL_CHANNELS: enPS5000ADigitalChannel = 32;
883pub type enPS5000ADigitalChannel = ::std::os::raw::c_uint;
884pub use self::enPS5000ADigitalChannel as PS5000A_DIGITAL_CHANNEL;
885pub const enPS5000ADigitalDirection_PS5000A_DIGITAL_DONT_CARE: enPS5000ADigitalDirection = 0;
886pub const enPS5000ADigitalDirection_PS5000A_DIGITAL_DIRECTION_LOW: enPS5000ADigitalDirection = 1;
887pub const enPS5000ADigitalDirection_PS5000A_DIGITAL_DIRECTION_HIGH: enPS5000ADigitalDirection = 2;
888pub const enPS5000ADigitalDirection_PS5000A_DIGITAL_DIRECTION_RISING: enPS5000ADigitalDirection = 3;
889pub const enPS5000ADigitalDirection_PS5000A_DIGITAL_DIRECTION_FALLING: enPS5000ADigitalDirection =
890    4;
891pub const enPS5000ADigitalDirection_PS5000A_DIGITAL_DIRECTION_RISING_OR_FALLING:
892    enPS5000ADigitalDirection = 5;
893pub const enPS5000ADigitalDirection_PS5000A_DIGITAL_MAX_DIRECTION: enPS5000ADigitalDirection = 6;
894pub type enPS5000ADigitalDirection = ::std::os::raw::c_uint;
895pub use self::enPS5000ADigitalDirection as PS5000A_DIGITAL_DIRECTION;
896pub const enPS5000ARange_PS5000A_10MV: enPS5000ARange = 0;
897pub const enPS5000ARange_PS5000A_20MV: enPS5000ARange = 1;
898pub const enPS5000ARange_PS5000A_50MV: enPS5000ARange = 2;
899pub const enPS5000ARange_PS5000A_100MV: enPS5000ARange = 3;
900pub const enPS5000ARange_PS5000A_200MV: enPS5000ARange = 4;
901pub const enPS5000ARange_PS5000A_500MV: enPS5000ARange = 5;
902pub const enPS5000ARange_PS5000A_1V: enPS5000ARange = 6;
903pub const enPS5000ARange_PS5000A_2V: enPS5000ARange = 7;
904pub const enPS5000ARange_PS5000A_5V: enPS5000ARange = 8;
905pub const enPS5000ARange_PS5000A_10V: enPS5000ARange = 9;
906pub const enPS5000ARange_PS5000A_20V: enPS5000ARange = 10;
907pub const enPS5000ARange_PS5000A_50V: enPS5000ARange = 11;
908pub const enPS5000ARange_PS5000A_MAX_RANGES: enPS5000ARange = 12;
909pub type enPS5000ARange = ::std::os::raw::c_uint;
910pub use self::enPS5000ARange as PS5000A_RANGE;
911pub const enPS5000AEtsMode_PS5000A_ETS_OFF: enPS5000AEtsMode = 0;
912pub const enPS5000AEtsMode_PS5000A_ETS_FAST: enPS5000AEtsMode = 1;
913pub const enPS5000AEtsMode_PS5000A_ETS_SLOW: enPS5000AEtsMode = 2;
914pub const enPS5000AEtsMode_PS5000A_ETS_MODES_MAX: enPS5000AEtsMode = 3;
915pub type enPS5000AEtsMode = ::std::os::raw::c_uint;
916pub use self::enPS5000AEtsMode as PS5000A_ETS_MODE;
917pub const enPS5000ATimeUnits_PS5000A_FS: enPS5000ATimeUnits = 0;
918pub const enPS5000ATimeUnits_PS5000A_PS: enPS5000ATimeUnits = 1;
919pub const enPS5000ATimeUnits_PS5000A_NS: enPS5000ATimeUnits = 2;
920pub const enPS5000ATimeUnits_PS5000A_US: enPS5000ATimeUnits = 3;
921pub const enPS5000ATimeUnits_PS5000A_MS: enPS5000ATimeUnits = 4;
922pub const enPS5000ATimeUnits_PS5000A_S: enPS5000ATimeUnits = 5;
923pub const enPS5000ATimeUnits_PS5000A_MAX_TIME_UNITS: enPS5000ATimeUnits = 6;
924pub type enPS5000ATimeUnits = ::std::os::raw::c_uint;
925pub use self::enPS5000ATimeUnits as PS5000A_TIME_UNITS;
926pub const enPS5000ASweepType_PS5000A_UP: enPS5000ASweepType = 0;
927pub const enPS5000ASweepType_PS5000A_DOWN: enPS5000ASweepType = 1;
928pub const enPS5000ASweepType_PS5000A_UPDOWN: enPS5000ASweepType = 2;
929pub const enPS5000ASweepType_PS5000A_DOWNUP: enPS5000ASweepType = 3;
930pub const enPS5000ASweepType_PS5000A_MAX_SWEEP_TYPES: enPS5000ASweepType = 4;
931pub type enPS5000ASweepType = ::std::os::raw::c_uint;
932pub use self::enPS5000ASweepType as PS5000A_SWEEP_TYPE;
933pub const enPS5000AWaveType_PS5000A_SINE: enPS5000AWaveType = 0;
934pub const enPS5000AWaveType_PS5000A_SQUARE: enPS5000AWaveType = 1;
935pub const enPS5000AWaveType_PS5000A_TRIANGLE: enPS5000AWaveType = 2;
936pub const enPS5000AWaveType_PS5000A_RAMP_UP: enPS5000AWaveType = 3;
937pub const enPS5000AWaveType_PS5000A_RAMP_DOWN: enPS5000AWaveType = 4;
938pub const enPS5000AWaveType_PS5000A_SINC: enPS5000AWaveType = 5;
939pub const enPS5000AWaveType_PS5000A_GAUSSIAN: enPS5000AWaveType = 6;
940pub const enPS5000AWaveType_PS5000A_HALF_SINE: enPS5000AWaveType = 7;
941pub const enPS5000AWaveType_PS5000A_DC_VOLTAGE: enPS5000AWaveType = 8;
942pub const enPS5000AWaveType_PS5000A_WHITE_NOISE: enPS5000AWaveType = 9;
943pub const enPS5000AWaveType_PS5000A_MAX_WAVE_TYPES: enPS5000AWaveType = 10;
944pub type enPS5000AWaveType = ::std::os::raw::c_uint;
945pub use self::enPS5000AWaveType as PS5000A_WAVE_TYPE;
946pub const enPS5000AConditionsInfo_PS5000A_CLEAR: enPS5000AConditionsInfo = 1;
947pub const enPS5000AConditionsInfo_PS5000A_ADD: enPS5000AConditionsInfo = 2;
948pub type enPS5000AConditionsInfo = ::std::os::raw::c_uint;
949pub use self::enPS5000AConditionsInfo as PS5000A_CONDITIONS_INFO;
950pub const enPS5000ASigGenTrigType_PS5000A_SIGGEN_RISING: enPS5000ASigGenTrigType = 0;
951pub const enPS5000ASigGenTrigType_PS5000A_SIGGEN_FALLING: enPS5000ASigGenTrigType = 1;
952pub const enPS5000ASigGenTrigType_PS5000A_SIGGEN_GATE_HIGH: enPS5000ASigGenTrigType = 2;
953pub const enPS5000ASigGenTrigType_PS5000A_SIGGEN_GATE_LOW: enPS5000ASigGenTrigType = 3;
954pub type enPS5000ASigGenTrigType = ::std::os::raw::c_uint;
955pub use self::enPS5000ASigGenTrigType as PS5000A_SIGGEN_TRIG_TYPE;
956pub const enPS5000ASigGenTrigSource_PS5000A_SIGGEN_NONE: enPS5000ASigGenTrigSource = 0;
957pub const enPS5000ASigGenTrigSource_PS5000A_SIGGEN_SCOPE_TRIG: enPS5000ASigGenTrigSource = 1;
958pub const enPS5000ASigGenTrigSource_PS5000A_SIGGEN_AUX_IN: enPS5000ASigGenTrigSource = 2;
959pub const enPS5000ASigGenTrigSource_PS5000A_SIGGEN_EXT_IN: enPS5000ASigGenTrigSource = 3;
960pub const enPS5000ASigGenTrigSource_PS5000A_SIGGEN_SOFT_TRIG: enPS5000ASigGenTrigSource = 4;
961pub type enPS5000ASigGenTrigSource = ::std::os::raw::c_uint;
962pub use self::enPS5000ASigGenTrigSource as PS5000A_SIGGEN_TRIG_SOURCE;
963pub const enPS5000AIndexMode_PS5000A_SINGLE: enPS5000AIndexMode = 0;
964pub const enPS5000AIndexMode_PS5000A_DUAL: enPS5000AIndexMode = 1;
965pub const enPS5000AIndexMode_PS5000A_QUAD: enPS5000AIndexMode = 2;
966pub const enPS5000AIndexMode_PS5000A_MAX_INDEX_MODES: enPS5000AIndexMode = 3;
967pub type enPS5000AIndexMode = ::std::os::raw::c_uint;
968pub use self::enPS5000AIndexMode as PS5000A_INDEX_MODE;
969pub const enPS5000AThresholdMode_PS5000A_LEVEL: enPS5000AThresholdMode = 0;
970pub const enPS5000AThresholdMode_PS5000A_WINDOW: enPS5000AThresholdMode = 1;
971pub type enPS5000AThresholdMode = ::std::os::raw::c_uint;
972pub use self::enPS5000AThresholdMode as PS5000A_THRESHOLD_MODE;
973pub const enPS5000AThresholdDirection_PS5000A_ABOVE: enPS5000AThresholdDirection = 0;
974pub const enPS5000AThresholdDirection_PS5000A_BELOW: enPS5000AThresholdDirection = 1;
975pub const enPS5000AThresholdDirection_PS5000A_RISING: enPS5000AThresholdDirection = 2;
976pub const enPS5000AThresholdDirection_PS5000A_FALLING: enPS5000AThresholdDirection = 3;
977pub const enPS5000AThresholdDirection_PS5000A_RISING_OR_FALLING: enPS5000AThresholdDirection = 4;
978pub const enPS5000AThresholdDirection_PS5000A_ABOVE_LOWER: enPS5000AThresholdDirection = 5;
979pub const enPS5000AThresholdDirection_PS5000A_BELOW_LOWER: enPS5000AThresholdDirection = 6;
980pub const enPS5000AThresholdDirection_PS5000A_RISING_LOWER: enPS5000AThresholdDirection = 7;
981pub const enPS5000AThresholdDirection_PS5000A_FALLING_LOWER: enPS5000AThresholdDirection = 8;
982pub const enPS5000AThresholdDirection_PS5000A_INSIDE: enPS5000AThresholdDirection = 0;
983pub const enPS5000AThresholdDirection_PS5000A_OUTSIDE: enPS5000AThresholdDirection = 1;
984pub const enPS5000AThresholdDirection_PS5000A_ENTER: enPS5000AThresholdDirection = 2;
985pub const enPS5000AThresholdDirection_PS5000A_EXIT: enPS5000AThresholdDirection = 3;
986pub const enPS5000AThresholdDirection_PS5000A_ENTER_OR_EXIT: enPS5000AThresholdDirection = 4;
987pub const enPS5000AThresholdDirection_PS5000A_POSITIVE_RUNT: enPS5000AThresholdDirection = 9;
988pub const enPS5000AThresholdDirection_PS5000A_NEGATIVE_RUNT: enPS5000AThresholdDirection = 10;
989pub const enPS5000AThresholdDirection_PS5000A_NONE: enPS5000AThresholdDirection = 2;
990pub type enPS5000AThresholdDirection = ::std::os::raw::c_uint;
991pub use self::enPS5000AThresholdDirection as PS5000A_THRESHOLD_DIRECTION;
992pub const enPS5000ATriggerState_PS5000A_CONDITION_DONT_CARE: enPS5000ATriggerState = 0;
993pub const enPS5000ATriggerState_PS5000A_CONDITION_TRUE: enPS5000ATriggerState = 1;
994pub const enPS5000ATriggerState_PS5000A_CONDITION_FALSE: enPS5000ATriggerState = 2;
995pub const enPS5000ATriggerState_PS5000A_CONDITION_MAX: enPS5000ATriggerState = 3;
996pub type enPS5000ATriggerState = ::std::os::raw::c_uint;
997pub use self::enPS5000ATriggerState as PS5000A_TRIGGER_STATE;
998pub const enPS5000ATriggerWithinPreTrigger_PS5000A_DISABLE: enPS5000ATriggerWithinPreTrigger = 0;
999pub const enPS5000ATriggerWithinPreTrigger_PS5000A_ARM: enPS5000ATriggerWithinPreTrigger = 1;
1000pub type enPS5000ATriggerWithinPreTrigger = ::std::os::raw::c_uint;
1001pub use self::enPS5000ATriggerWithinPreTrigger as PS5000A_TRIGGER_WITHIN_PRE_TRIGGER;
1002#[repr(C, packed)]
1003#[derive(Debug, Copy, Clone)]
1004pub struct tPS5000ATriggerInfo {
1005    pub status: PICO_STATUS,
1006    pub segmentIndex: u32,
1007    pub triggerIndex: u32,
1008    pub triggerTime: i64,
1009    pub timeUnits: i16,
1010    pub reserved0: i16,
1011    pub timeStampCounter: u64,
1012}
1013pub type PS5000A_TRIGGER_INFO = tPS5000ATriggerInfo;
1014#[repr(C, packed)]
1015#[derive(Debug, Copy, Clone)]
1016pub struct tPS5000ATriggerConditions {
1017    pub channelA: PS5000A_TRIGGER_STATE,
1018    pub channelB: PS5000A_TRIGGER_STATE,
1019    pub channelC: PS5000A_TRIGGER_STATE,
1020    pub channelD: PS5000A_TRIGGER_STATE,
1021    pub external: PS5000A_TRIGGER_STATE,
1022    pub aux: PS5000A_TRIGGER_STATE,
1023    pub pulseWidthQualifier: PS5000A_TRIGGER_STATE,
1024}
1025pub type PS5000A_TRIGGER_CONDITIONS = tPS5000ATriggerConditions;
1026#[repr(C, packed)]
1027#[derive(Debug, Copy, Clone)]
1028pub struct tPS5000ACondition {
1029    pub source: PS5000A_CHANNEL,
1030    pub condition: PS5000A_TRIGGER_STATE,
1031}
1032
1033pub type PS5000A_CONDITION = tPS5000ACondition;
1034#[repr(C, packed)]
1035#[derive(Debug, Copy, Clone)]
1036pub struct tPS5000ADirection {
1037    pub source: PS5000A_CHANNEL,
1038    pub direction: PS5000A_THRESHOLD_DIRECTION,
1039    pub mode: PS5000A_THRESHOLD_MODE,
1040}
1041
1042pub type PS5000A_DIRECTION = tPS5000ADirection;
1043#[repr(C, packed)]
1044#[derive(Debug, Copy, Clone)]
1045pub struct tPS5000APwqConditions {
1046    pub channelA: PS5000A_TRIGGER_STATE,
1047    pub channelB: PS5000A_TRIGGER_STATE,
1048    pub channelC: PS5000A_TRIGGER_STATE,
1049    pub channelD: PS5000A_TRIGGER_STATE,
1050    pub external: PS5000A_TRIGGER_STATE,
1051    pub aux: PS5000A_TRIGGER_STATE,
1052}
1053
1054pub type PS5000A_PWQ_CONDITIONS = tPS5000APwqConditions;
1055#[repr(C, packed)]
1056#[derive(Debug, Copy, Clone)]
1057pub struct tPS5000AScalingFactors {
1058    pub source: PS5000A_CHANNEL,
1059    pub range: PS5000A_RANGE,
1060    pub offset: i16,
1061    pub scalingFactor: f64,
1062}
1063
1064pub type PS5000A_SCALING_FACTORS_VALUES = tPS5000AScalingFactors;
1065#[repr(C, packed)]
1066#[derive(Debug, Copy, Clone)]
1067pub struct tPS5000ATriggerChannelProperties {
1068    pub thresholdUpper: i16,
1069    pub thresholdUpperHysteresis: u16,
1070    pub thresholdLower: i16,
1071    pub thresholdLowerHysteresis: u16,
1072    pub channel: PS5000A_CHANNEL,
1073    pub thresholdMode: PS5000A_THRESHOLD_MODE,
1074}
1075
1076pub type PS5000A_TRIGGER_CHANNEL_PROPERTIES = tPS5000ATriggerChannelProperties;
1077#[repr(C, packed)]
1078#[derive(Debug, Copy, Clone)]
1079pub struct tPS5000ATriggerChannelPropertiesV2 {
1080    pub thresholdUpper: i16,
1081    pub thresholdUpperHysteresis: u16,
1082    pub thresholdLower: i16,
1083    pub thresholdLowerHysteresis: u16,
1084    pub channel: PS5000A_CHANNEL,
1085}
1086
1087pub type PS5000A_TRIGGER_CHANNEL_PROPERTIES_V2 = tPS5000ATriggerChannelPropertiesV2;
1088#[repr(C, packed)]
1089#[derive(Debug, Copy, Clone)]
1090pub struct tPS5000ADigitalChannelDirections {
1091    pub channel: PS5000A_DIGITAL_CHANNEL,
1092    pub direction: PS5000A_DIGITAL_DIRECTION,
1093}
1094
1095pub type PS5000A_DIGITAL_CHANNEL_DIRECTIONS = tPS5000ADigitalChannelDirections;
1096pub const enPS5000ARatioMode_PS5000A_RATIO_MODE_NONE: enPS5000ARatioMode = 0;
1097pub const enPS5000ARatioMode_PS5000A_RATIO_MODE_AGGREGATE: enPS5000ARatioMode = 1;
1098pub const enPS5000ARatioMode_PS5000A_RATIO_MODE_DECIMATE: enPS5000ARatioMode = 2;
1099pub const enPS5000ARatioMode_PS5000A_RATIO_MODE_AVERAGE: enPS5000ARatioMode = 4;
1100pub const enPS5000ARatioMode_PS5000A_RATIO_MODE_DISTRIBUTION: enPS5000ARatioMode = 8;
1101pub type enPS5000ARatioMode = ::std::os::raw::c_uint;
1102pub use self::enPS5000ARatioMode as PS5000A_RATIO_MODE;
1103pub const enPS5000APulseWidthType_PS5000A_PW_TYPE_NONE: enPS5000APulseWidthType = 0;
1104pub const enPS5000APulseWidthType_PS5000A_PW_TYPE_LESS_THAN: enPS5000APulseWidthType = 1;
1105pub const enPS5000APulseWidthType_PS5000A_PW_TYPE_GREATER_THAN: enPS5000APulseWidthType = 2;
1106pub const enPS5000APulseWidthType_PS5000A_PW_TYPE_IN_RANGE: enPS5000APulseWidthType = 3;
1107pub const enPS5000APulseWidthType_PS5000A_PW_TYPE_OUT_OF_RANGE: enPS5000APulseWidthType = 4;
1108pub type enPS5000APulseWidthType = ::std::os::raw::c_uint;
1109pub use self::enPS5000APulseWidthType as PS5000A_PULSE_WIDTH_TYPE;
1110pub const enPS5000AChannelInfo_PS5000A_CI_RANGES: enPS5000AChannelInfo = 0;
1111pub type enPS5000AChannelInfo = ::std::os::raw::c_uint;
1112pub use self::enPS5000AChannelInfo as PS5000A_CHANNEL_INFO;
1113pub type ps5000aBlockReady = ::std::option::Option<
1114    extern "C" fn(handle: i16, status: PICO_STATUS, pParameter: *mut ::std::os::raw::c_void),
1115>;
1116pub type ps5000aStreamingReady = ::std::option::Option<
1117    unsafe extern "C" fn(
1118        handle: i16,
1119        noOfSamples: i32,
1120        startIndex: u32,
1121        overflow: i16,
1122        triggerAt: u32,
1123        triggered: i16,
1124        autoStop: i16,
1125        pParameter: *mut ::std::os::raw::c_void,
1126    ),
1127>;
1128pub type ps5000aDataReady = ::std::option::Option<
1129    unsafe extern "C" fn(
1130        handle: i16,
1131        status: PICO_STATUS,
1132        noOfSamples: u32,
1133        overflow: i16,
1134        pParameter: *mut ::std::os::raw::c_void,
1135    ),
1136>;
1137
1138extern crate libloading;
1139pub struct PS5000ALoader {
1140    __library: ::libloading::Library,
1141    pub ps5000aApplyFix: Result<unsafe extern "C" fn(u32, u16), ::libloading::Error>,
1142    pub ps5000aOpenUnit: Result<
1143        unsafe extern "C" fn(
1144            handle: *mut i16,
1145            serial: *mut i8,
1146            resolution: PS5000A_DEVICE_RESOLUTION,
1147        ) -> PICO_STATUS,
1148        ::libloading::Error,
1149    >,
1150    pub ps5000aOpenUnitAsync: Result<
1151        unsafe extern "C" fn(
1152            status: *mut i16,
1153            serial: *mut i8,
1154            resolution: PS5000A_DEVICE_RESOLUTION,
1155        ) -> PICO_STATUS,
1156        ::libloading::Error,
1157    >,
1158    pub ps5000aOpenUnitProgress: Result<
1159        unsafe extern "C" fn(
1160            handle: *mut i16,
1161            progressPercent: *mut i16,
1162            complete: *mut i16,
1163        ) -> PICO_STATUS,
1164        ::libloading::Error,
1165    >,
1166    pub ps5000aGetUnitInfo: Result<
1167        unsafe extern "C" fn(
1168            handle: i16,
1169            string: *mut i8,
1170            stringLength: i16,
1171            requiredSize: *mut i16,
1172            info: PICO_INFO,
1173        ) -> PICO_STATUS,
1174        ::libloading::Error,
1175    >,
1176    pub ps5000aFlashLed:
1177        Result<unsafe extern "C" fn(handle: i16, start: i16) -> PICO_STATUS, ::libloading::Error>,
1178    pub ps5000aIsLedFlashing: Result<
1179        unsafe extern "C" fn(handle: i16, status: *mut i16) -> PICO_STATUS,
1180        ::libloading::Error,
1181    >,
1182    pub ps5000aCloseUnit:
1183        Result<unsafe extern "C" fn(handle: i16) -> PICO_STATUS, ::libloading::Error>,
1184    pub ps5000aMemorySegments: Result<
1185        unsafe extern "C" fn(handle: i16, nSegments: u32, nMaxSamples: *mut i32) -> PICO_STATUS,
1186        ::libloading::Error,
1187    >,
1188    pub ps5000aSetChannel: Result<
1189        unsafe extern "C" fn(
1190            handle: i16,
1191            channel: PS5000A_CHANNEL,
1192            enabled: i16,
1193            type_: PS5000A_COUPLING,
1194            range: PS5000A_RANGE,
1195            analogOffset: f32,
1196        ) -> PICO_STATUS,
1197        ::libloading::Error,
1198    >,
1199    pub ps5000aSetDigitalPort: Result<
1200        unsafe extern "C" fn(
1201            handle: i16,
1202            port: PS5000A_CHANNEL,
1203            enabled: i16,
1204            logicLevel: i16,
1205        ) -> PICO_STATUS,
1206        ::libloading::Error,
1207    >,
1208    pub ps5000aSetBandwidthFilter: Result<
1209        unsafe extern "C" fn(
1210            handle: i16,
1211            channel: PS5000A_CHANNEL,
1212            bandwidth: PS5000A_BANDWIDTH_LIMITER,
1213        ) -> PICO_STATUS,
1214        ::libloading::Error,
1215    >,
1216    pub ps5000aGetTimebase: Result<
1217        unsafe extern "C" fn(
1218            handle: i16,
1219            timebase: u32,
1220            noSamples: i32,
1221            timeIntervalNanoseconds: *mut i32,
1222            maxSamples: *mut i32,
1223            segmentIndex: u32,
1224        ) -> PICO_STATUS,
1225        ::libloading::Error,
1226    >,
1227    pub ps5000aGetTimebase2: Result<
1228        unsafe extern "C" fn(
1229            handle: i16,
1230            timebase: u32,
1231            noSamples: i32,
1232            timeIntervalNanoseconds: *mut f32,
1233            maxSamples: *mut i32,
1234            segmentIndex: u32,
1235        ) -> PICO_STATUS,
1236        ::libloading::Error,
1237    >,
1238    pub ps5000aNearestSampleIntervalStateless: Result<
1239        unsafe extern "C" fn(
1240            handle: i16,
1241            enabledChannelOrPortFlags: PS5000A_CHANNEL_FLAGS,
1242            timeIntervalRequested: f64,
1243            resolution: PS5000A_DEVICE_RESOLUTION,
1244            useEts: u16,
1245            timebase: *mut u32,
1246            timeIntervalAvailable: *mut f64,
1247        ) -> PICO_STATUS,
1248        ::libloading::Error,
1249    >,
1250    pub ps5000aGetMinimumTimebaseStateless: Result<
1251        unsafe extern "C" fn(
1252            handle: i16,
1253            enabledChannelOrPortFlags: PS5000A_CHANNEL_FLAGS,
1254            timebase: *mut u32,
1255            timeInterval: *mut f64,
1256            resolution: PS5000A_DEVICE_RESOLUTION,
1257        ) -> PICO_STATUS,
1258        ::libloading::Error,
1259    >,
1260    pub ps5000aChannelCombinationsStateless: Result<
1261        unsafe extern "C" fn(
1262            handle: i16,
1263            channelOrPortFlagsCombinations: *mut PS5000A_CHANNEL_FLAGS,
1264            nChannelCombinations: *mut u32,
1265            resolution: PS5000A_DEVICE_RESOLUTION,
1266            timebase: u32,
1267            hasDcPowerSupplyConnected: i16,
1268        ) -> PICO_STATUS,
1269        ::libloading::Error,
1270    >,
1271    pub ps5000aSetSigGenArbitrary: Result<
1272        unsafe extern "C" fn(
1273            handle: i16,
1274            offsetVoltage: i32,
1275            pkToPk: u32,
1276            startDeltaPhase: u32,
1277            stopDeltaPhase: u32,
1278            deltaPhaseIncrement: u32,
1279            dwellCount: u32,
1280            arbitraryWaveform: *mut i16,
1281            arbitraryWaveformSize: i32,
1282            sweepType: PS5000A_SWEEP_TYPE,
1283            operation: PS5000A_EXTRA_OPERATIONS,
1284            indexMode: PS5000A_INDEX_MODE,
1285            shots: u32,
1286            sweeps: u32,
1287            triggerType: PS5000A_SIGGEN_TRIG_TYPE,
1288            triggerSource: PS5000A_SIGGEN_TRIG_SOURCE,
1289            extInThreshold: i16,
1290        ) -> PICO_STATUS,
1291        ::libloading::Error,
1292    >,
1293    pub ps5000aSetSigGenBuiltIn: Result<
1294        unsafe extern "C" fn(
1295            handle: i16,
1296            offsetVoltage: i32,
1297            pkToPk: u32,
1298            waveType: PS5000A_WAVE_TYPE,
1299            startFrequency: f32,
1300            stopFrequency: f32,
1301            increment: f32,
1302            dwellTime: f32,
1303            sweepType: PS5000A_SWEEP_TYPE,
1304            operation: PS5000A_EXTRA_OPERATIONS,
1305            shots: u32,
1306            sweeps: u32,
1307            triggerType: PS5000A_SIGGEN_TRIG_TYPE,
1308            triggerSource: PS5000A_SIGGEN_TRIG_SOURCE,
1309            extInThreshold: i16,
1310        ) -> PICO_STATUS,
1311        ::libloading::Error,
1312    >,
1313    pub ps5000aSetSigGenBuiltInV2: Result<
1314        unsafe extern "C" fn(
1315            handle: i16,
1316            offsetVoltage: i32,
1317            pkToPk: u32,
1318            waveType: PS5000A_WAVE_TYPE,
1319            startFrequency: f64,
1320            stopFrequency: f64,
1321            increment: f64,
1322            dwellTime: f64,
1323            sweepType: PS5000A_SWEEP_TYPE,
1324            operation: PS5000A_EXTRA_OPERATIONS,
1325            shots: u32,
1326            sweeps: u32,
1327            triggerType: PS5000A_SIGGEN_TRIG_TYPE,
1328            triggerSource: PS5000A_SIGGEN_TRIG_SOURCE,
1329            extInThreshold: i16,
1330        ) -> PICO_STATUS,
1331        ::libloading::Error,
1332    >,
1333    pub ps5000aSetSigGenPropertiesArbitrary: Result<
1334        unsafe extern "C" fn(
1335            handle: i16,
1336            startDeltaPhase: u32,
1337            stopDeltaPhase: u32,
1338            deltaPhaseIncrement: u32,
1339            dwellCount: u32,
1340            sweepType: PS5000A_SWEEP_TYPE,
1341            shots: u32,
1342            sweeps: u32,
1343            triggerType: PS5000A_SIGGEN_TRIG_TYPE,
1344            triggerSource: PS5000A_SIGGEN_TRIG_SOURCE,
1345            extInThreshold: i16,
1346        ) -> PICO_STATUS,
1347        ::libloading::Error,
1348    >,
1349    pub ps5000aSetSigGenPropertiesBuiltIn: Result<
1350        unsafe extern "C" fn(
1351            handle: i16,
1352            startFrequency: f64,
1353            stopFrequency: f64,
1354            increment: f64,
1355            dwellTime: f64,
1356            sweepType: PS5000A_SWEEP_TYPE,
1357            shots: u32,
1358            sweeps: u32,
1359            triggerType: PS5000A_SIGGEN_TRIG_TYPE,
1360            triggerSource: PS5000A_SIGGEN_TRIG_SOURCE,
1361            extInThreshold: i16,
1362        ) -> PICO_STATUS,
1363        ::libloading::Error,
1364    >,
1365    pub ps5000aSigGenFrequencyToPhase: Result<
1366        unsafe extern "C" fn(
1367            handle: i16,
1368            frequency: f64,
1369            indexMode: PS5000A_INDEX_MODE,
1370            bufferLength: u32,
1371            phase: *mut u32,
1372        ) -> PICO_STATUS,
1373        ::libloading::Error,
1374    >,
1375    pub ps5000aSigGenArbitraryMinMaxValues: Result<
1376        unsafe extern "C" fn(
1377            handle: i16,
1378            minArbitraryWaveformValue: *mut i16,
1379            maxArbitraryWaveformValue: *mut i16,
1380            minArbitraryWaveformSize: *mut u32,
1381            maxArbitraryWaveformSize: *mut u32,
1382        ) -> PICO_STATUS,
1383        ::libloading::Error,
1384    >,
1385    pub ps5000aSigGenSoftwareControl:
1386        Result<unsafe extern "C" fn(handle: i16, state: i16) -> PICO_STATUS, ::libloading::Error>,
1387    pub ps5000aSetEts: Result<
1388        unsafe extern "C" fn(
1389            handle: i16,
1390            mode: PS5000A_ETS_MODE,
1391            etsCycles: i16,
1392            etsInterleave: i16,
1393            sampleTimePicoseconds: *mut i32,
1394        ) -> PICO_STATUS,
1395        ::libloading::Error,
1396    >,
1397    pub ps5000aSetTriggerChannelProperties: Result<
1398        unsafe extern "C" fn(
1399            handle: i16,
1400            channelProperties: *mut PS5000A_TRIGGER_CHANNEL_PROPERTIES,
1401            nChannelProperties: i16,
1402            auxOutputEnable: i16,
1403            autoTriggerMilliseconds: i32,
1404        ) -> PICO_STATUS,
1405        ::libloading::Error,
1406    >,
1407    pub ps5000aSetTriggerChannelPropertiesV2: Result<
1408        unsafe extern "C" fn(
1409            handle: i16,
1410            channelProperties: *mut PS5000A_TRIGGER_CHANNEL_PROPERTIES_V2,
1411            nChannelProperties: i16,
1412            auxOutputEnable: i16,
1413        ) -> PICO_STATUS,
1414        ::libloading::Error,
1415    >,
1416    pub ps5000aSetAutoTriggerMicroSeconds: Result<
1417        unsafe extern "C" fn(handle: i16, autoTriggerMicroseconds: u64) -> PICO_STATUS,
1418        ::libloading::Error,
1419    >,
1420    pub ps5000aSetTriggerChannelConditions: Result<
1421        unsafe extern "C" fn(
1422            handle: i16,
1423            conditions: *mut PS5000A_TRIGGER_CONDITIONS,
1424            nConditions: i16,
1425        ) -> PICO_STATUS,
1426        ::libloading::Error,
1427    >,
1428    pub ps5000aSetTriggerChannelConditionsV2: Result<
1429        unsafe extern "C" fn(
1430            handle: i16,
1431            conditions: *mut PS5000A_CONDITION,
1432            nConditions: i16,
1433            info: PS5000A_CONDITIONS_INFO,
1434        ) -> PICO_STATUS,
1435        ::libloading::Error,
1436    >,
1437    pub ps5000aSetTriggerChannelDirections: Result<
1438        unsafe extern "C" fn(
1439            handle: i16,
1440            channelA: PS5000A_THRESHOLD_DIRECTION,
1441            channelB: PS5000A_THRESHOLD_DIRECTION,
1442            channelC: PS5000A_THRESHOLD_DIRECTION,
1443            channelD: PS5000A_THRESHOLD_DIRECTION,
1444            ext: PS5000A_THRESHOLD_DIRECTION,
1445            aux: PS5000A_THRESHOLD_DIRECTION,
1446        ) -> PICO_STATUS,
1447        ::libloading::Error,
1448    >,
1449    pub ps5000aSetTriggerChannelDirectionsV2: Result<
1450        unsafe extern "C" fn(
1451            handle: i16,
1452            directions: *mut PS5000A_DIRECTION,
1453            nDirections: u16,
1454        ) -> PICO_STATUS,
1455        ::libloading::Error,
1456    >,
1457    pub ps5000aSetSimpleTrigger: Result<
1458        unsafe extern "C" fn(
1459            handle: i16,
1460            enable: i16,
1461            channel: PS5000A_CHANNEL,
1462            threshold: i16,
1463            direction: PS5000A_THRESHOLD_DIRECTION,
1464            delay: u32,
1465            autoTrigger_ms: i16,
1466        ) -> PICO_STATUS,
1467        ::libloading::Error,
1468    >,
1469    pub ps5000aSetTriggerDigitalPortProperties: Result<
1470        unsafe extern "C" fn(
1471            handle: i16,
1472            directions: *mut PS5000A_DIGITAL_CHANNEL_DIRECTIONS,
1473            nDirections: i16,
1474        ) -> PICO_STATUS,
1475        ::libloading::Error,
1476    >,
1477    pub ps5000aSetPulseWidthDigitalPortProperties: Result<
1478        unsafe extern "C" fn(
1479            handle: i16,
1480            directions: *mut PS5000A_DIGITAL_CHANNEL_DIRECTIONS,
1481            nDirections: i16,
1482        ) -> PICO_STATUS,
1483        ::libloading::Error,
1484    >,
1485    pub ps5000aSetTriggerDelay:
1486        Result<unsafe extern "C" fn(handle: i16, delay: u32) -> PICO_STATUS, ::libloading::Error>,
1487    pub ps5000aSetPulseWidthQualifier: Result<
1488        unsafe extern "C" fn(
1489            handle: i16,
1490            conditions: *mut PS5000A_PWQ_CONDITIONS,
1491            nConditions: i16,
1492            direction: PS5000A_THRESHOLD_DIRECTION,
1493            lower: u32,
1494            upper: u32,
1495            type_: PS5000A_PULSE_WIDTH_TYPE,
1496        ) -> PICO_STATUS,
1497        ::libloading::Error,
1498    >,
1499    pub ps5000aSetPulseWidthQualifierProperties: Result<
1500        unsafe extern "C" fn(
1501            handle: i16,
1502            lower: u32,
1503            upper: u32,
1504            type_: PS5000A_PULSE_WIDTH_TYPE,
1505        ) -> PICO_STATUS,
1506        ::libloading::Error,
1507    >,
1508    pub ps5000aSetPulseWidthQualifierConditions: Result<
1509        unsafe extern "C" fn(
1510            handle: i16,
1511            conditions: *mut PS5000A_CONDITION,
1512            nConditions: i16,
1513            info: PS5000A_CONDITIONS_INFO,
1514        ) -> PICO_STATUS,
1515        ::libloading::Error,
1516    >,
1517    pub ps5000aSetPulseWidthQualifierDirections: Result<
1518        unsafe extern "C" fn(
1519            handle: i16,
1520            directions: *mut PS5000A_DIRECTION,
1521            nDirections: i16,
1522        ) -> PICO_STATUS,
1523        ::libloading::Error,
1524    >,
1525    pub ps5000aIsTriggerOrPulseWidthQualifierEnabled: Result<
1526        unsafe extern "C" fn(
1527            handle: i16,
1528            triggerEnabled: *mut i16,
1529            pulseWidthQualifierEnabled: *mut i16,
1530        ) -> PICO_STATUS,
1531        ::libloading::Error,
1532    >,
1533    pub ps5000aGetTriggerTimeOffset: Result<
1534        unsafe extern "C" fn(
1535            handle: i16,
1536            timeUpper: *mut u32,
1537            timeLower: *mut u32,
1538            timeUnits: *mut PS5000A_TIME_UNITS,
1539            segmentIndex: u32,
1540        ) -> PICO_STATUS,
1541        ::libloading::Error,
1542    >,
1543    pub ps5000aGetTriggerTimeOffset64: Result<
1544        unsafe extern "C" fn(
1545            handle: i16,
1546            time: *mut i64,
1547            timeUnits: *mut PS5000A_TIME_UNITS,
1548            segmentIndex: u32,
1549        ) -> PICO_STATUS,
1550        ::libloading::Error,
1551    >,
1552    pub ps5000aGetValuesTriggerTimeOffsetBulk: Result<
1553        unsafe extern "C" fn(
1554            handle: i16,
1555            timesUpper: *mut u32,
1556            timesLower: *mut u32,
1557            timeUnits: *mut PS5000A_TIME_UNITS,
1558            fromSegmentIndex: u32,
1559            toSegmentIndex: u32,
1560        ) -> PICO_STATUS,
1561        ::libloading::Error,
1562    >,
1563    pub ps5000aGetValuesTriggerTimeOffsetBulk64: Result<
1564        unsafe extern "C" fn(
1565            handle: i16,
1566            times: *mut i64,
1567            timeUnits: *mut PS5000A_TIME_UNITS,
1568            fromSegmentIndex: u32,
1569            toSegmentIndex: u32,
1570        ) -> PICO_STATUS,
1571        ::libloading::Error,
1572    >,
1573    pub ps5000aSetDataBuffers: Result<
1574        unsafe extern "C" fn(
1575            handle: i16,
1576            source: PS5000A_CHANNEL,
1577            bufferMax: *mut i16,
1578            bufferMin: *mut i16,
1579            bufferLth: i32,
1580            segmentIndex: u32,
1581            mode: PS5000A_RATIO_MODE,
1582        ) -> PICO_STATUS,
1583        ::libloading::Error,
1584    >,
1585    pub ps5000aSetDataBuffer: Result<
1586        unsafe extern "C" fn(
1587            handle: i16,
1588            source: PS5000A_CHANNEL,
1589            buffer: *mut i16,
1590            bufferLth: i32,
1591            segmentIndex: u32,
1592            mode: PS5000A_RATIO_MODE,
1593        ) -> PICO_STATUS,
1594        ::libloading::Error,
1595    >,
1596    pub ps5000aSetUnscaledDataBuffers: Result<
1597        unsafe extern "C" fn(
1598            handle: i16,
1599            source: PS5000A_CHANNEL,
1600            bufferMax: *mut i8,
1601            bufferMin: *mut i8,
1602            bufferLth: i32,
1603            segmentIndex: u32,
1604            mode: PS5000A_RATIO_MODE,
1605        ) -> PICO_STATUS,
1606        ::libloading::Error,
1607    >,
1608    pub ps5000aSetEtsTimeBuffer: Result<
1609        unsafe extern "C" fn(handle: i16, buffer: *mut i64, bufferLth: i32) -> PICO_STATUS,
1610        ::libloading::Error,
1611    >,
1612    pub ps5000aSetEtsTimeBuffers: Result<
1613        unsafe extern "C" fn(
1614            handle: i16,
1615            timeUpper: *mut u32,
1616            timeLower: *mut u32,
1617            bufferLth: i32,
1618        ) -> PICO_STATUS,
1619        ::libloading::Error,
1620    >,
1621    pub ps5000aIsReady: Result<
1622        unsafe extern "C" fn(handle: i16, ready: *mut i16) -> PICO_STATUS,
1623        ::libloading::Error,
1624    >,
1625    pub ps5000aRunBlock: Result<
1626        unsafe extern "C" fn(
1627            handle: i16,
1628            noOfPreTriggerSamples: i32,
1629            noOfPostTriggerSamples: i32,
1630            timebase: u32,
1631            timeIndisposedMs: *mut i32,
1632            segmentIndex: u32,
1633            lpReady: ps5000aBlockReady,
1634            pParameter: *mut ::std::os::raw::c_void,
1635        ) -> PICO_STATUS,
1636        ::libloading::Error,
1637    >,
1638    pub ps5000aRunStreaming: Result<
1639        unsafe extern "C" fn(
1640            handle: i16,
1641            sampleInterval: *mut u32,
1642            sampleIntervalTimeUnits: PS5000A_TIME_UNITS,
1643            maxPreTriggerSamples: u32,
1644            maxPostTriggerSamples: u32,
1645            autoStop: i16,
1646            downSampleRatio: u32,
1647            downSampleRatioMode: PS5000A_RATIO_MODE,
1648            overviewBufferSize: u32,
1649        ) -> PICO_STATUS,
1650        ::libloading::Error,
1651    >,
1652    pub ps5000aGetStreamingLatestValues: Result<
1653        unsafe extern "C" fn(
1654            handle: i16,
1655            lpPs5000aReady: ps5000aStreamingReady,
1656            pParameter: *mut ::std::os::raw::c_void,
1657        ) -> PICO_STATUS,
1658        ::libloading::Error,
1659    >,
1660    pub ps5000aNoOfStreamingValues: Result<
1661        unsafe extern "C" fn(handle: i16, noOfValues: *mut u32) -> PICO_STATUS,
1662        ::libloading::Error,
1663    >,
1664    pub ps5000aGetMaxDownSampleRatio: Result<
1665        unsafe extern "C" fn(
1666            handle: i16,
1667            noOfUnaggreatedSamples: u32,
1668            maxDownSampleRatio: *mut u32,
1669            downSampleRatioMode: PS5000A_RATIO_MODE,
1670            segmentIndex: u32,
1671        ) -> PICO_STATUS,
1672        ::libloading::Error,
1673    >,
1674    pub ps5000aGetValues: Result<
1675        unsafe extern "C" fn(
1676            handle: i16,
1677            startIndex: u32,
1678            noOfSamples: *mut u32,
1679            downSampleRatio: u32,
1680            downSampleRatioMode: PS5000A_RATIO_MODE,
1681            segmentIndex: u32,
1682            overflow: *mut i16,
1683        ) -> PICO_STATUS,
1684        ::libloading::Error,
1685    >,
1686    pub ps5000aGetValuesAsync: Result<
1687        unsafe extern "C" fn(
1688            handle: i16,
1689            startIndex: u32,
1690            noOfSamples: u32,
1691            downSampleRatio: u32,
1692            downSampleRatioMode: PS5000A_RATIO_MODE,
1693            segmentIndex: u32,
1694            lpDataReady: *mut ::std::os::raw::c_void,
1695            pParameter: *mut ::std::os::raw::c_void,
1696        ) -> PICO_STATUS,
1697        ::libloading::Error,
1698    >,
1699    pub ps5000aGetValuesBulk: Result<
1700        unsafe extern "C" fn(
1701            handle: i16,
1702            noOfSamples: *mut u32,
1703            fromSegmentIndex: u32,
1704            toSegmentIndex: u32,
1705            downSampleRatio: u32,
1706            downSampleRatioMode: PS5000A_RATIO_MODE,
1707            overflow: *mut i16,
1708        ) -> PICO_STATUS,
1709        ::libloading::Error,
1710    >,
1711    pub ps5000aGetValuesOverlapped: Result<
1712        unsafe extern "C" fn(
1713            handle: i16,
1714            startIndex: u32,
1715            noOfSamples: *mut u32,
1716            downSampleRatio: u32,
1717            downSampleRatioMode: PS5000A_RATIO_MODE,
1718            segmentIndex: u32,
1719            overflow: *mut i16,
1720        ) -> PICO_STATUS,
1721        ::libloading::Error,
1722    >,
1723    pub ps5000aGetValuesOverlappedBulk: Result<
1724        unsafe extern "C" fn(
1725            handle: i16,
1726            startIndex: u32,
1727            noOfSamples: *mut u32,
1728            downSampleRatio: u32,
1729            downSampleRatioMode: PS5000A_RATIO_MODE,
1730            fromSegmentIndex: u32,
1731            toSegmentIndex: u32,
1732            overflow: *mut i16,
1733        ) -> PICO_STATUS,
1734        ::libloading::Error,
1735    >,
1736    pub ps5000aTriggerWithinPreTriggerSamples: Result<
1737        unsafe extern "C" fn(handle: i16, state: PS5000A_TRIGGER_WITHIN_PRE_TRIGGER) -> PICO_STATUS,
1738        ::libloading::Error,
1739    >,
1740    pub ps5000aGetTriggerInfoBulk: Result<
1741        unsafe extern "C" fn(
1742            handle: i16,
1743            triggerInfo: *mut PS5000A_TRIGGER_INFO,
1744            fromSegmentIndex: u32,
1745            toSegmentIndex: u32,
1746        ) -> PICO_STATUS,
1747        ::libloading::Error,
1748    >,
1749    pub ps5000aEnumerateUnits: Result<
1750        unsafe extern "C" fn(count: *mut i16, serials: *mut i8, serialLth: *mut i16) -> PICO_STATUS,
1751        ::libloading::Error,
1752    >,
1753    pub ps5000aGetChannelInformation: Result<
1754        unsafe extern "C" fn(
1755            handle: i16,
1756            info: PS5000A_CHANNEL_INFO,
1757            probe: i32,
1758            ranges: *mut i32,
1759            length: *mut i32,
1760            channels: i32,
1761        ) -> PICO_STATUS,
1762        ::libloading::Error,
1763    >,
1764    pub ps5000aMaximumValue: Result<
1765        unsafe extern "C" fn(handle: i16, value: *mut i16) -> PICO_STATUS,
1766        ::libloading::Error,
1767    >,
1768    pub ps5000aMinimumValue: Result<
1769        unsafe extern "C" fn(handle: i16, value: *mut i16) -> PICO_STATUS,
1770        ::libloading::Error,
1771    >,
1772    pub ps5000aGetAnalogueOffset: Result<
1773        unsafe extern "C" fn(
1774            handle: i16,
1775            range: PS5000A_RANGE,
1776            coupling: PS5000A_COUPLING,
1777            maximumVoltage: *mut f32,
1778            minimumVoltage: *mut f32,
1779        ) -> PICO_STATUS,
1780        ::libloading::Error,
1781    >,
1782    pub ps5000aGetMaxSegments: Result<
1783        unsafe extern "C" fn(handle: i16, maxSegments: *mut u32) -> PICO_STATUS,
1784        ::libloading::Error,
1785    >,
1786    pub ps5000aChangePowerSource: Result<
1787        unsafe extern "C" fn(handle: i16, powerState: PICO_STATUS) -> PICO_STATUS,
1788        ::libloading::Error,
1789    >,
1790    pub ps5000aCurrentPowerSource:
1791        Result<unsafe extern "C" fn(handle: i16) -> PICO_STATUS, ::libloading::Error>,
1792    pub ps5000aStop: Result<unsafe extern "C" fn(handle: i16) -> PICO_STATUS, ::libloading::Error>,
1793    pub ps5000aPingUnit:
1794        Result<unsafe extern "C" fn(handle: i16) -> PICO_STATUS, ::libloading::Error>,
1795    pub ps5000aSetNoOfCaptures: Result<
1796        unsafe extern "C" fn(handle: i16, nCaptures: u32) -> PICO_STATUS,
1797        ::libloading::Error,
1798    >,
1799    pub ps5000aGetNoOfCaptures: Result<
1800        unsafe extern "C" fn(handle: i16, nCaptures: *mut u32) -> PICO_STATUS,
1801        ::libloading::Error,
1802    >,
1803    pub ps5000aGetNoOfProcessedCaptures: Result<
1804        unsafe extern "C" fn(handle: i16, nProcessedCaptures: *mut u32) -> PICO_STATUS,
1805        ::libloading::Error,
1806    >,
1807    pub ps5000aSetDeviceResolution: Result<
1808        unsafe extern "C" fn(handle: i16, resolution: PS5000A_DEVICE_RESOLUTION) -> PICO_STATUS,
1809        ::libloading::Error,
1810    >,
1811    pub ps5000aGetDeviceResolution: Result<
1812        unsafe extern "C" fn(
1813            handle: i16,
1814            resolution: *mut PS5000A_DEVICE_RESOLUTION,
1815        ) -> PICO_STATUS,
1816        ::libloading::Error,
1817    >,
1818    pub ps5000aQueryOutputEdgeDetect: Result<
1819        unsafe extern "C" fn(handle: i16, state: *mut i16) -> PICO_STATUS,
1820        ::libloading::Error,
1821    >,
1822    pub ps5000aSetOutputEdgeDetect:
1823        Result<unsafe extern "C" fn(handle: i16, state: i16) -> PICO_STATUS, ::libloading::Error>,
1824    pub ps5000aGetScalingValues: Result<
1825        unsafe extern "C" fn(
1826            handle: i16,
1827            scalingValues: *mut PS5000A_SCALING_FACTORS_VALUES,
1828            nChannels: i16,
1829        ) -> PICO_STATUS,
1830        ::libloading::Error,
1831    >,
1832    pub ps5000aCheckForUpdate: Result<
1833        unsafe extern "C" fn(
1834            handle: i16,
1835            current: *mut PICO_VERSION,
1836            update: *mut PICO_VERSION,
1837            updateRequired: *mut u16,
1838        ) -> PICO_STATUS,
1839        ::libloading::Error,
1840    >,
1841    pub ps5000aStartFirmwareUpdate: Result<
1842        unsafe extern "C" fn(handle: i16, progress: PicoUpdateFirmwareProgress) -> PICO_STATUS,
1843        ::libloading::Error,
1844    >,
1845}
1846impl PS5000ALoader {
1847    pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
1848    where
1849        P: AsRef<::std::ffi::OsStr>,
1850    {
1851        let __library = ::libloading::Library::new(path)?;
1852        let ps5000aApplyFix = __library.get(b"ps5000aApplyFix\0").map(|sym| *sym);
1853        let ps5000aOpenUnit = __library.get(b"ps5000aOpenUnit\0").map(|sym| *sym);
1854        let ps5000aOpenUnitAsync = __library.get(b"ps5000aOpenUnitAsync\0").map(|sym| *sym);
1855        let ps5000aOpenUnitProgress = __library.get(b"ps5000aOpenUnitProgress\0").map(|sym| *sym);
1856        let ps5000aGetUnitInfo = __library.get(b"ps5000aGetUnitInfo\0").map(|sym| *sym);
1857        let ps5000aFlashLed = __library.get(b"ps5000aFlashLed\0").map(|sym| *sym);
1858        let ps5000aIsLedFlashing = __library.get(b"ps5000aIsLedFlashing\0").map(|sym| *sym);
1859        let ps5000aCloseUnit = __library.get(b"ps5000aCloseUnit\0").map(|sym| *sym);
1860        let ps5000aMemorySegments = __library.get(b"ps5000aMemorySegments\0").map(|sym| *sym);
1861        let ps5000aSetChannel = __library.get(b"ps5000aSetChannel\0").map(|sym| *sym);
1862        let ps5000aSetDigitalPort = __library.get(b"ps5000aSetDigitalPort\0").map(|sym| *sym);
1863        let ps5000aSetBandwidthFilter = __library
1864            .get(b"ps5000aSetBandwidthFilter\0")
1865            .map(|sym| *sym);
1866        let ps5000aGetTimebase = __library.get(b"ps5000aGetTimebase\0").map(|sym| *sym);
1867        let ps5000aGetTimebase2 = __library.get(b"ps5000aGetTimebase2\0").map(|sym| *sym);
1868        let ps5000aNearestSampleIntervalStateless = __library
1869            .get(b"ps5000aNearestSampleIntervalStateless\0")
1870            .map(|sym| *sym);
1871        let ps5000aGetMinimumTimebaseStateless = __library
1872            .get(b"ps5000aGetMinimumTimebaseStateless\0")
1873            .map(|sym| *sym);
1874        let ps5000aChannelCombinationsStateless = __library
1875            .get(b"ps5000aChannelCombinationsStateless\0")
1876            .map(|sym| *sym);
1877        let ps5000aSetSigGenArbitrary = __library
1878            .get(b"ps5000aSetSigGenArbitrary\0")
1879            .map(|sym| *sym);
1880        let ps5000aSetSigGenBuiltIn = __library.get(b"ps5000aSetSigGenBuiltIn\0").map(|sym| *sym);
1881        let ps5000aSetSigGenBuiltInV2 = __library
1882            .get(b"ps5000aSetSigGenBuiltInV2\0")
1883            .map(|sym| *sym);
1884        let ps5000aSetSigGenPropertiesArbitrary = __library
1885            .get(b"ps5000aSetSigGenPropertiesArbitrary\0")
1886            .map(|sym| *sym);
1887        let ps5000aSetSigGenPropertiesBuiltIn = __library
1888            .get(b"ps5000aSetSigGenPropertiesBuiltIn\0")
1889            .map(|sym| *sym);
1890        let ps5000aSigGenFrequencyToPhase = __library
1891            .get(b"ps5000aSigGenFrequencyToPhase\0")
1892            .map(|sym| *sym);
1893        let ps5000aSigGenArbitraryMinMaxValues = __library
1894            .get(b"ps5000aSigGenArbitraryMinMaxValues\0")
1895            .map(|sym| *sym);
1896        let ps5000aSigGenSoftwareControl = __library
1897            .get(b"ps5000aSigGenSoftwareControl\0")
1898            .map(|sym| *sym);
1899        let ps5000aSetEts = __library.get(b"ps5000aSetEts\0").map(|sym| *sym);
1900        let ps5000aSetTriggerChannelProperties = __library
1901            .get(b"ps5000aSetTriggerChannelProperties\0")
1902            .map(|sym| *sym);
1903        let ps5000aSetTriggerChannelPropertiesV2 = __library
1904            .get(b"ps5000aSetTriggerChannelPropertiesV2\0")
1905            .map(|sym| *sym);
1906        let ps5000aSetAutoTriggerMicroSeconds = __library
1907            .get(b"ps5000aSetAutoTriggerMicroSeconds\0")
1908            .map(|sym| *sym);
1909        let ps5000aSetTriggerChannelConditions = __library
1910            .get(b"ps5000aSetTriggerChannelConditions\0")
1911            .map(|sym| *sym);
1912        let ps5000aSetTriggerChannelConditionsV2 = __library
1913            .get(b"ps5000aSetTriggerChannelConditionsV2\0")
1914            .map(|sym| *sym);
1915        let ps5000aSetTriggerChannelDirections = __library
1916            .get(b"ps5000aSetTriggerChannelDirections\0")
1917            .map(|sym| *sym);
1918        let ps5000aSetTriggerChannelDirectionsV2 = __library
1919            .get(b"ps5000aSetTriggerChannelDirectionsV2\0")
1920            .map(|sym| *sym);
1921        let ps5000aSetSimpleTrigger = __library.get(b"ps5000aSetSimpleTrigger\0").map(|sym| *sym);
1922        let ps5000aSetTriggerDigitalPortProperties = __library
1923            .get(b"ps5000aSetTriggerDigitalPortProperties\0")
1924            .map(|sym| *sym);
1925        let ps5000aSetPulseWidthDigitalPortProperties = __library
1926            .get(b"ps5000aSetPulseWidthDigitalPortProperties\0")
1927            .map(|sym| *sym);
1928        let ps5000aSetTriggerDelay = __library.get(b"ps5000aSetTriggerDelay\0").map(|sym| *sym);
1929        let ps5000aSetPulseWidthQualifier = __library
1930            .get(b"ps5000aSetPulseWidthQualifier\0")
1931            .map(|sym| *sym);
1932        let ps5000aSetPulseWidthQualifierProperties = __library
1933            .get(b"ps5000aSetPulseWidthQualifierProperties\0")
1934            .map(|sym| *sym);
1935        let ps5000aSetPulseWidthQualifierConditions = __library
1936            .get(b"ps5000aSetPulseWidthQualifierConditions\0")
1937            .map(|sym| *sym);
1938        let ps5000aSetPulseWidthQualifierDirections = __library
1939            .get(b"ps5000aSetPulseWidthQualifierDirections\0")
1940            .map(|sym| *sym);
1941        let ps5000aIsTriggerOrPulseWidthQualifierEnabled = __library
1942            .get(b"ps5000aIsTriggerOrPulseWidthQualifierEnabled\0")
1943            .map(|sym| *sym);
1944        let ps5000aGetTriggerTimeOffset = __library
1945            .get(b"ps5000aGetTriggerTimeOffset\0")
1946            .map(|sym| *sym);
1947        let ps5000aGetTriggerTimeOffset64 = __library
1948            .get(b"ps5000aGetTriggerTimeOffset64\0")
1949            .map(|sym| *sym);
1950        let ps5000aGetValuesTriggerTimeOffsetBulk = __library
1951            .get(b"ps5000aGetValuesTriggerTimeOffsetBulk\0")
1952            .map(|sym| *sym);
1953        let ps5000aGetValuesTriggerTimeOffsetBulk64 = __library
1954            .get(b"ps5000aGetValuesTriggerTimeOffsetBulk64\0")
1955            .map(|sym| *sym);
1956        let ps5000aSetDataBuffers = __library.get(b"ps5000aSetDataBuffers\0").map(|sym| *sym);
1957        let ps5000aSetDataBuffer = __library.get(b"ps5000aSetDataBuffer\0").map(|sym| *sym);
1958        let ps5000aSetUnscaledDataBuffers = __library
1959            .get(b"ps5000aSetUnscaledDataBuffers\0")
1960            .map(|sym| *sym);
1961        let ps5000aSetEtsTimeBuffer = __library.get(b"ps5000aSetEtsTimeBuffer\0").map(|sym| *sym);
1962        let ps5000aSetEtsTimeBuffers = __library.get(b"ps5000aSetEtsTimeBuffers\0").map(|sym| *sym);
1963        let ps5000aIsReady = __library.get(b"ps5000aIsReady\0").map(|sym| *sym);
1964        let ps5000aRunBlock = __library.get(b"ps5000aRunBlock\0").map(|sym| *sym);
1965        let ps5000aRunStreaming = __library.get(b"ps5000aRunStreaming\0").map(|sym| *sym);
1966        let ps5000aGetStreamingLatestValues = __library
1967            .get(b"ps5000aGetStreamingLatestValues\0")
1968            .map(|sym| *sym);
1969        let ps5000aNoOfStreamingValues = __library
1970            .get(b"ps5000aNoOfStreamingValues\0")
1971            .map(|sym| *sym);
1972        let ps5000aGetMaxDownSampleRatio = __library
1973            .get(b"ps5000aGetMaxDownSampleRatio\0")
1974            .map(|sym| *sym);
1975        let ps5000aGetValues = __library.get(b"ps5000aGetValues\0").map(|sym| *sym);
1976        let ps5000aGetValuesAsync = __library.get(b"ps5000aGetValuesAsync\0").map(|sym| *sym);
1977        let ps5000aGetValuesBulk = __library.get(b"ps5000aGetValuesBulk\0").map(|sym| *sym);
1978        let ps5000aGetValuesOverlapped = __library
1979            .get(b"ps5000aGetValuesOverlapped\0")
1980            .map(|sym| *sym);
1981        let ps5000aGetValuesOverlappedBulk = __library
1982            .get(b"ps5000aGetValuesOverlappedBulk\0")
1983            .map(|sym| *sym);
1984        let ps5000aTriggerWithinPreTriggerSamples = __library
1985            .get(b"ps5000aTriggerWithinPreTriggerSamples\0")
1986            .map(|sym| *sym);
1987        let ps5000aGetTriggerInfoBulk = __library
1988            .get(b"ps5000aGetTriggerInfoBulk\0")
1989            .map(|sym| *sym);
1990        let ps5000aEnumerateUnits = __library.get(b"ps5000aEnumerateUnits\0").map(|sym| *sym);
1991        let ps5000aGetChannelInformation = __library
1992            .get(b"ps5000aGetChannelInformation\0")
1993            .map(|sym| *sym);
1994        let ps5000aMaximumValue = __library.get(b"ps5000aMaximumValue\0").map(|sym| *sym);
1995        let ps5000aMinimumValue = __library.get(b"ps5000aMinimumValue\0").map(|sym| *sym);
1996        let ps5000aGetAnalogueOffset = __library.get(b"ps5000aGetAnalogueOffset\0").map(|sym| *sym);
1997        let ps5000aGetMaxSegments = __library.get(b"ps5000aGetMaxSegments\0").map(|sym| *sym);
1998        let ps5000aChangePowerSource = __library.get(b"ps5000aChangePowerSource\0").map(|sym| *sym);
1999        let ps5000aCurrentPowerSource = __library
2000            .get(b"ps5000aCurrentPowerSource\0")
2001            .map(|sym| *sym);
2002        let ps5000aStop = __library.get(b"ps5000aStop\0").map(|sym| *sym);
2003        let ps5000aPingUnit = __library.get(b"ps5000aPingUnit\0").map(|sym| *sym);
2004        let ps5000aSetNoOfCaptures = __library.get(b"ps5000aSetNoOfCaptures\0").map(|sym| *sym);
2005        let ps5000aGetNoOfCaptures = __library.get(b"ps5000aGetNoOfCaptures\0").map(|sym| *sym);
2006        let ps5000aGetNoOfProcessedCaptures = __library
2007            .get(b"ps5000aGetNoOfProcessedCaptures\0")
2008            .map(|sym| *sym);
2009        let ps5000aSetDeviceResolution = __library
2010            .get(b"ps5000aSetDeviceResolution\0")
2011            .map(|sym| *sym);
2012        let ps5000aGetDeviceResolution = __library
2013            .get(b"ps5000aGetDeviceResolution\0")
2014            .map(|sym| *sym);
2015        let ps5000aQueryOutputEdgeDetect = __library
2016            .get(b"ps5000aQueryOutputEdgeDetect\0")
2017            .map(|sym| *sym);
2018        let ps5000aSetOutputEdgeDetect = __library
2019            .get(b"ps5000aSetOutputEdgeDetect\0")
2020            .map(|sym| *sym);
2021        let ps5000aGetScalingValues = __library.get(b"ps5000aGetScalingValues\0").map(|sym| *sym);
2022        let ps5000aCheckForUpdate = __library.get(b"ps5000aCheckForUpdate\0").map(|sym| *sym);
2023        let ps5000aStartFirmwareUpdate = __library
2024            .get(b"ps5000aStartFirmwareUpdate\0")
2025            .map(|sym| *sym);
2026        Ok(PS5000ALoader {
2027            __library,
2028            ps5000aApplyFix,
2029            ps5000aOpenUnit,
2030            ps5000aOpenUnitAsync,
2031            ps5000aOpenUnitProgress,
2032            ps5000aGetUnitInfo,
2033            ps5000aFlashLed,
2034            ps5000aIsLedFlashing,
2035            ps5000aCloseUnit,
2036            ps5000aMemorySegments,
2037            ps5000aSetChannel,
2038            ps5000aSetDigitalPort,
2039            ps5000aSetBandwidthFilter,
2040            ps5000aGetTimebase,
2041            ps5000aGetTimebase2,
2042            ps5000aNearestSampleIntervalStateless,
2043            ps5000aGetMinimumTimebaseStateless,
2044            ps5000aChannelCombinationsStateless,
2045            ps5000aSetSigGenArbitrary,
2046            ps5000aSetSigGenBuiltIn,
2047            ps5000aSetSigGenBuiltInV2,
2048            ps5000aSetSigGenPropertiesArbitrary,
2049            ps5000aSetSigGenPropertiesBuiltIn,
2050            ps5000aSigGenFrequencyToPhase,
2051            ps5000aSigGenArbitraryMinMaxValues,
2052            ps5000aSigGenSoftwareControl,
2053            ps5000aSetEts,
2054            ps5000aSetTriggerChannelProperties,
2055            ps5000aSetTriggerChannelPropertiesV2,
2056            ps5000aSetAutoTriggerMicroSeconds,
2057            ps5000aSetTriggerChannelConditions,
2058            ps5000aSetTriggerChannelConditionsV2,
2059            ps5000aSetTriggerChannelDirections,
2060            ps5000aSetTriggerChannelDirectionsV2,
2061            ps5000aSetSimpleTrigger,
2062            ps5000aSetTriggerDigitalPortProperties,
2063            ps5000aSetPulseWidthDigitalPortProperties,
2064            ps5000aSetTriggerDelay,
2065            ps5000aSetPulseWidthQualifier,
2066            ps5000aSetPulseWidthQualifierProperties,
2067            ps5000aSetPulseWidthQualifierConditions,
2068            ps5000aSetPulseWidthQualifierDirections,
2069            ps5000aIsTriggerOrPulseWidthQualifierEnabled,
2070            ps5000aGetTriggerTimeOffset,
2071            ps5000aGetTriggerTimeOffset64,
2072            ps5000aGetValuesTriggerTimeOffsetBulk,
2073            ps5000aGetValuesTriggerTimeOffsetBulk64,
2074            ps5000aSetDataBuffers,
2075            ps5000aSetDataBuffer,
2076            ps5000aSetUnscaledDataBuffers,
2077            ps5000aSetEtsTimeBuffer,
2078            ps5000aSetEtsTimeBuffers,
2079            ps5000aIsReady,
2080            ps5000aRunBlock,
2081            ps5000aRunStreaming,
2082            ps5000aGetStreamingLatestValues,
2083            ps5000aNoOfStreamingValues,
2084            ps5000aGetMaxDownSampleRatio,
2085            ps5000aGetValues,
2086            ps5000aGetValuesAsync,
2087            ps5000aGetValuesBulk,
2088            ps5000aGetValuesOverlapped,
2089            ps5000aGetValuesOverlappedBulk,
2090            ps5000aTriggerWithinPreTriggerSamples,
2091            ps5000aGetTriggerInfoBulk,
2092            ps5000aEnumerateUnits,
2093            ps5000aGetChannelInformation,
2094            ps5000aMaximumValue,
2095            ps5000aMinimumValue,
2096            ps5000aGetAnalogueOffset,
2097            ps5000aGetMaxSegments,
2098            ps5000aChangePowerSource,
2099            ps5000aCurrentPowerSource,
2100            ps5000aStop,
2101            ps5000aPingUnit,
2102            ps5000aSetNoOfCaptures,
2103            ps5000aGetNoOfCaptures,
2104            ps5000aGetNoOfProcessedCaptures,
2105            ps5000aSetDeviceResolution,
2106            ps5000aGetDeviceResolution,
2107            ps5000aQueryOutputEdgeDetect,
2108            ps5000aSetOutputEdgeDetect,
2109            ps5000aGetScalingValues,
2110            ps5000aCheckForUpdate,
2111            ps5000aStartFirmwareUpdate,
2112        })
2113    }
2114    pub unsafe fn ps5000aApplyFix(&self, a: u32, b: u16) {
2115        let sym = self
2116            .ps5000aApplyFix
2117            .as_ref()
2118            .expect("Expected function, got error.");
2119        (sym)(a, b)
2120    }
2121    pub unsafe fn ps5000aOpenUnit(
2122        &self,
2123        handle: *mut i16,
2124        serial: *mut i8,
2125        resolution: PS5000A_DEVICE_RESOLUTION,
2126    ) -> PICO_STATUS {
2127        let sym = self
2128            .ps5000aOpenUnit
2129            .as_ref()
2130            .expect("Expected function, got error.");
2131        (sym)(handle, serial, resolution)
2132    }
2133    pub unsafe fn ps5000aOpenUnitAsync(
2134        &self,
2135        status: *mut i16,
2136        serial: *mut i8,
2137        resolution: PS5000A_DEVICE_RESOLUTION,
2138    ) -> PICO_STATUS {
2139        let sym = self
2140            .ps5000aOpenUnitAsync
2141            .as_ref()
2142            .expect("Expected function, got error.");
2143        (sym)(status, serial, resolution)
2144    }
2145    pub unsafe fn ps5000aOpenUnitProgress(
2146        &self,
2147        handle: *mut i16,
2148        progressPercent: *mut i16,
2149        complete: *mut i16,
2150    ) -> PICO_STATUS {
2151        let sym = self
2152            .ps5000aOpenUnitProgress
2153            .as_ref()
2154            .expect("Expected function, got error.");
2155        (sym)(handle, progressPercent, complete)
2156    }
2157    pub unsafe fn ps5000aGetUnitInfo(
2158        &self,
2159        handle: i16,
2160        string: *mut i8,
2161        stringLength: i16,
2162        requiredSize: *mut i16,
2163        info: PICO_INFO,
2164    ) -> PICO_STATUS {
2165        let sym = self
2166            .ps5000aGetUnitInfo
2167            .as_ref()
2168            .expect("Expected function, got error.");
2169        (sym)(handle, string, stringLength, requiredSize, info)
2170    }
2171    pub unsafe fn ps5000aFlashLed(&self, handle: i16, start: i16) -> PICO_STATUS {
2172        let sym = self
2173            .ps5000aFlashLed
2174            .as_ref()
2175            .expect("Expected function, got error.");
2176        (sym)(handle, start)
2177    }
2178    pub unsafe fn ps5000aIsLedFlashing(&self, handle: i16, status: *mut i16) -> PICO_STATUS {
2179        let sym = self
2180            .ps5000aIsLedFlashing
2181            .as_ref()
2182            .expect("Expected function, got error.");
2183        (sym)(handle, status)
2184    }
2185    pub unsafe fn ps5000aCloseUnit(&self, handle: i16) -> PICO_STATUS {
2186        let sym = self
2187            .ps5000aCloseUnit
2188            .as_ref()
2189            .expect("Expected function, got error.");
2190        (sym)(handle)
2191    }
2192    pub unsafe fn ps5000aMemorySegments(
2193        &self,
2194        handle: i16,
2195        nSegments: u32,
2196        nMaxSamples: *mut i32,
2197    ) -> PICO_STATUS {
2198        let sym = self
2199            .ps5000aMemorySegments
2200            .as_ref()
2201            .expect("Expected function, got error.");
2202        (sym)(handle, nSegments, nMaxSamples)
2203    }
2204    pub unsafe fn ps5000aSetChannel(
2205        &self,
2206        handle: i16,
2207        channel: PS5000A_CHANNEL,
2208        enabled: i16,
2209        type_: PS5000A_COUPLING,
2210        range: PS5000A_RANGE,
2211        analogOffset: f32,
2212    ) -> PICO_STATUS {
2213        let sym = self
2214            .ps5000aSetChannel
2215            .as_ref()
2216            .expect("Expected function, got error.");
2217        (sym)(handle, channel, enabled, type_, range, analogOffset)
2218    }
2219    pub unsafe fn ps5000aSetDigitalPort(
2220        &self,
2221        handle: i16,
2222        port: PS5000A_CHANNEL,
2223        enabled: i16,
2224        logicLevel: i16,
2225    ) -> PICO_STATUS {
2226        let sym = self
2227            .ps5000aSetDigitalPort
2228            .as_ref()
2229            .expect("Expected function, got error.");
2230        (sym)(handle, port, enabled, logicLevel)
2231    }
2232    pub unsafe fn ps5000aSetBandwidthFilter(
2233        &self,
2234        handle: i16,
2235        channel: PS5000A_CHANNEL,
2236        bandwidth: PS5000A_BANDWIDTH_LIMITER,
2237    ) -> PICO_STATUS {
2238        let sym = self
2239            .ps5000aSetBandwidthFilter
2240            .as_ref()
2241            .expect("Expected function, got error.");
2242        (sym)(handle, channel, bandwidth)
2243    }
2244    pub unsafe fn ps5000aGetTimebase(
2245        &self,
2246        handle: i16,
2247        timebase: u32,
2248        noSamples: i32,
2249        timeIntervalNanoseconds: *mut i32,
2250        maxSamples: *mut i32,
2251        segmentIndex: u32,
2252    ) -> PICO_STATUS {
2253        let sym = self
2254            .ps5000aGetTimebase
2255            .as_ref()
2256            .expect("Expected function, got error.");
2257        (sym)(
2258            handle,
2259            timebase,
2260            noSamples,
2261            timeIntervalNanoseconds,
2262            maxSamples,
2263            segmentIndex,
2264        )
2265    }
2266    pub unsafe fn ps5000aGetTimebase2(
2267        &self,
2268        handle: i16,
2269        timebase: u32,
2270        noSamples: i32,
2271        timeIntervalNanoseconds: *mut f32,
2272        maxSamples: *mut i32,
2273        segmentIndex: u32,
2274    ) -> PICO_STATUS {
2275        let sym = self
2276            .ps5000aGetTimebase2
2277            .as_ref()
2278            .expect("Expected function, got error.");
2279        (sym)(
2280            handle,
2281            timebase,
2282            noSamples,
2283            timeIntervalNanoseconds,
2284            maxSamples,
2285            segmentIndex,
2286        )
2287    }
2288    pub unsafe fn ps5000aNearestSampleIntervalStateless(
2289        &self,
2290        handle: i16,
2291        enabledChannelOrPortFlags: PS5000A_CHANNEL_FLAGS,
2292        timeIntervalRequested: f64,
2293        resolution: PS5000A_DEVICE_RESOLUTION,
2294        useEts: u16,
2295        timebase: *mut u32,
2296        timeIntervalAvailable: *mut f64,
2297    ) -> PICO_STATUS {
2298        let sym = self
2299            .ps5000aNearestSampleIntervalStateless
2300            .as_ref()
2301            .expect("Expected function, got error.");
2302        (sym)(
2303            handle,
2304            enabledChannelOrPortFlags,
2305            timeIntervalRequested,
2306            resolution,
2307            useEts,
2308            timebase,
2309            timeIntervalAvailable,
2310        )
2311    }
2312    pub unsafe fn ps5000aGetMinimumTimebaseStateless(
2313        &self,
2314        handle: i16,
2315        enabledChannelOrPortFlags: PS5000A_CHANNEL_FLAGS,
2316        timebase: *mut u32,
2317        timeInterval: *mut f64,
2318        resolution: PS5000A_DEVICE_RESOLUTION,
2319    ) -> PICO_STATUS {
2320        let sym = self
2321            .ps5000aGetMinimumTimebaseStateless
2322            .as_ref()
2323            .expect("Expected function, got error.");
2324        (sym)(
2325            handle,
2326            enabledChannelOrPortFlags,
2327            timebase,
2328            timeInterval,
2329            resolution,
2330        )
2331    }
2332    pub unsafe fn ps5000aChannelCombinationsStateless(
2333        &self,
2334        handle: i16,
2335        channelOrPortFlagsCombinations: *mut PS5000A_CHANNEL_FLAGS,
2336        nChannelCombinations: *mut u32,
2337        resolution: PS5000A_DEVICE_RESOLUTION,
2338        timebase: u32,
2339        hasDcPowerSupplyConnected: i16,
2340    ) -> PICO_STATUS {
2341        let sym = self
2342            .ps5000aChannelCombinationsStateless
2343            .as_ref()
2344            .expect("Expected function, got error.");
2345        (sym)(
2346            handle,
2347            channelOrPortFlagsCombinations,
2348            nChannelCombinations,
2349            resolution,
2350            timebase,
2351            hasDcPowerSupplyConnected,
2352        )
2353    }
2354    pub unsafe fn ps5000aSetSigGenArbitrary(
2355        &self,
2356        handle: i16,
2357        offsetVoltage: i32,
2358        pkToPk: u32,
2359        startDeltaPhase: u32,
2360        stopDeltaPhase: u32,
2361        deltaPhaseIncrement: u32,
2362        dwellCount: u32,
2363        arbitraryWaveform: *mut i16,
2364        arbitraryWaveformSize: i32,
2365        sweepType: PS5000A_SWEEP_TYPE,
2366        operation: PS5000A_EXTRA_OPERATIONS,
2367        indexMode: PS5000A_INDEX_MODE,
2368        shots: u32,
2369        sweeps: u32,
2370        triggerType: PS5000A_SIGGEN_TRIG_TYPE,
2371        triggerSource: PS5000A_SIGGEN_TRIG_SOURCE,
2372        extInThreshold: i16,
2373    ) -> PICO_STATUS {
2374        let sym = self
2375            .ps5000aSetSigGenArbitrary
2376            .as_ref()
2377            .expect("Expected function, got error.");
2378        (sym)(
2379            handle,
2380            offsetVoltage,
2381            pkToPk,
2382            startDeltaPhase,
2383            stopDeltaPhase,
2384            deltaPhaseIncrement,
2385            dwellCount,
2386            arbitraryWaveform,
2387            arbitraryWaveformSize,
2388            sweepType,
2389            operation,
2390            indexMode,
2391            shots,
2392            sweeps,
2393            triggerType,
2394            triggerSource,
2395            extInThreshold,
2396        )
2397    }
2398    pub unsafe fn ps5000aSetSigGenBuiltIn(
2399        &self,
2400        handle: i16,
2401        offsetVoltage: i32,
2402        pkToPk: u32,
2403        waveType: PS5000A_WAVE_TYPE,
2404        startFrequency: f32,
2405        stopFrequency: f32,
2406        increment: f32,
2407        dwellTime: f32,
2408        sweepType: PS5000A_SWEEP_TYPE,
2409        operation: PS5000A_EXTRA_OPERATIONS,
2410        shots: u32,
2411        sweeps: u32,
2412        triggerType: PS5000A_SIGGEN_TRIG_TYPE,
2413        triggerSource: PS5000A_SIGGEN_TRIG_SOURCE,
2414        extInThreshold: i16,
2415    ) -> PICO_STATUS {
2416        let sym = self
2417            .ps5000aSetSigGenBuiltIn
2418            .as_ref()
2419            .expect("Expected function, got error.");
2420        (sym)(
2421            handle,
2422            offsetVoltage,
2423            pkToPk,
2424            waveType,
2425            startFrequency,
2426            stopFrequency,
2427            increment,
2428            dwellTime,
2429            sweepType,
2430            operation,
2431            shots,
2432            sweeps,
2433            triggerType,
2434            triggerSource,
2435            extInThreshold,
2436        )
2437    }
2438    pub unsafe fn ps5000aSetSigGenBuiltInV2(
2439        &self,
2440        handle: i16,
2441        offsetVoltage: i32,
2442        pkToPk: u32,
2443        waveType: PS5000A_WAVE_TYPE,
2444        startFrequency: f64,
2445        stopFrequency: f64,
2446        increment: f64,
2447        dwellTime: f64,
2448        sweepType: PS5000A_SWEEP_TYPE,
2449        operation: PS5000A_EXTRA_OPERATIONS,
2450        shots: u32,
2451        sweeps: u32,
2452        triggerType: PS5000A_SIGGEN_TRIG_TYPE,
2453        triggerSource: PS5000A_SIGGEN_TRIG_SOURCE,
2454        extInThreshold: i16,
2455    ) -> PICO_STATUS {
2456        let sym = self
2457            .ps5000aSetSigGenBuiltInV2
2458            .as_ref()
2459            .expect("Expected function, got error.");
2460        (sym)(
2461            handle,
2462            offsetVoltage,
2463            pkToPk,
2464            waveType,
2465            startFrequency,
2466            stopFrequency,
2467            increment,
2468            dwellTime,
2469            sweepType,
2470            operation,
2471            shots,
2472            sweeps,
2473            triggerType,
2474            triggerSource,
2475            extInThreshold,
2476        )
2477    }
2478    pub unsafe fn ps5000aSetSigGenPropertiesArbitrary(
2479        &self,
2480        handle: i16,
2481        startDeltaPhase: u32,
2482        stopDeltaPhase: u32,
2483        deltaPhaseIncrement: u32,
2484        dwellCount: u32,
2485        sweepType: PS5000A_SWEEP_TYPE,
2486        shots: u32,
2487        sweeps: u32,
2488        triggerType: PS5000A_SIGGEN_TRIG_TYPE,
2489        triggerSource: PS5000A_SIGGEN_TRIG_SOURCE,
2490        extInThreshold: i16,
2491    ) -> PICO_STATUS {
2492        let sym = self
2493            .ps5000aSetSigGenPropertiesArbitrary
2494            .as_ref()
2495            .expect("Expected function, got error.");
2496        (sym)(
2497            handle,
2498            startDeltaPhase,
2499            stopDeltaPhase,
2500            deltaPhaseIncrement,
2501            dwellCount,
2502            sweepType,
2503            shots,
2504            sweeps,
2505            triggerType,
2506            triggerSource,
2507            extInThreshold,
2508        )
2509    }
2510    pub unsafe fn ps5000aSetSigGenPropertiesBuiltIn(
2511        &self,
2512        handle: i16,
2513        startFrequency: f64,
2514        stopFrequency: f64,
2515        increment: f64,
2516        dwellTime: f64,
2517        sweepType: PS5000A_SWEEP_TYPE,
2518        shots: u32,
2519        sweeps: u32,
2520        triggerType: PS5000A_SIGGEN_TRIG_TYPE,
2521        triggerSource: PS5000A_SIGGEN_TRIG_SOURCE,
2522        extInThreshold: i16,
2523    ) -> PICO_STATUS {
2524        let sym = self
2525            .ps5000aSetSigGenPropertiesBuiltIn
2526            .as_ref()
2527            .expect("Expected function, got error.");
2528        (sym)(
2529            handle,
2530            startFrequency,
2531            stopFrequency,
2532            increment,
2533            dwellTime,
2534            sweepType,
2535            shots,
2536            sweeps,
2537            triggerType,
2538            triggerSource,
2539            extInThreshold,
2540        )
2541    }
2542    pub unsafe fn ps5000aSigGenFrequencyToPhase(
2543        &self,
2544        handle: i16,
2545        frequency: f64,
2546        indexMode: PS5000A_INDEX_MODE,
2547        bufferLength: u32,
2548        phase: *mut u32,
2549    ) -> PICO_STATUS {
2550        let sym = self
2551            .ps5000aSigGenFrequencyToPhase
2552            .as_ref()
2553            .expect("Expected function, got error.");
2554        (sym)(handle, frequency, indexMode, bufferLength, phase)
2555    }
2556    pub unsafe fn ps5000aSigGenArbitraryMinMaxValues(
2557        &self,
2558        handle: i16,
2559        minArbitraryWaveformValue: *mut i16,
2560        maxArbitraryWaveformValue: *mut i16,
2561        minArbitraryWaveformSize: *mut u32,
2562        maxArbitraryWaveformSize: *mut u32,
2563    ) -> PICO_STATUS {
2564        let sym = self
2565            .ps5000aSigGenArbitraryMinMaxValues
2566            .as_ref()
2567            .expect("Expected function, got error.");
2568        (sym)(
2569            handle,
2570            minArbitraryWaveformValue,
2571            maxArbitraryWaveformValue,
2572            minArbitraryWaveformSize,
2573            maxArbitraryWaveformSize,
2574        )
2575    }
2576    pub unsafe fn ps5000aSigGenSoftwareControl(&self, handle: i16, state: i16) -> PICO_STATUS {
2577        let sym = self
2578            .ps5000aSigGenSoftwareControl
2579            .as_ref()
2580            .expect("Expected function, got error.");
2581        (sym)(handle, state)
2582    }
2583    pub unsafe fn ps5000aSetEts(
2584        &self,
2585        handle: i16,
2586        mode: PS5000A_ETS_MODE,
2587        etsCycles: i16,
2588        etsInterleave: i16,
2589        sampleTimePicoseconds: *mut i32,
2590    ) -> PICO_STATUS {
2591        let sym = self
2592            .ps5000aSetEts
2593            .as_ref()
2594            .expect("Expected function, got error.");
2595        (sym)(
2596            handle,
2597            mode,
2598            etsCycles,
2599            etsInterleave,
2600            sampleTimePicoseconds,
2601        )
2602    }
2603    pub unsafe fn ps5000aSetTriggerChannelProperties(
2604        &self,
2605        handle: i16,
2606        channelProperties: *mut PS5000A_TRIGGER_CHANNEL_PROPERTIES,
2607        nChannelProperties: i16,
2608        auxOutputEnable: i16,
2609        autoTriggerMilliseconds: i32,
2610    ) -> PICO_STATUS {
2611        let sym = self
2612            .ps5000aSetTriggerChannelProperties
2613            .as_ref()
2614            .expect("Expected function, got error.");
2615        (sym)(
2616            handle,
2617            channelProperties,
2618            nChannelProperties,
2619            auxOutputEnable,
2620            autoTriggerMilliseconds,
2621        )
2622    }
2623    pub unsafe fn ps5000aSetTriggerChannelPropertiesV2(
2624        &self,
2625        handle: i16,
2626        channelProperties: *mut PS5000A_TRIGGER_CHANNEL_PROPERTIES_V2,
2627        nChannelProperties: i16,
2628        auxOutputEnable: i16,
2629    ) -> PICO_STATUS {
2630        let sym = self
2631            .ps5000aSetTriggerChannelPropertiesV2
2632            .as_ref()
2633            .expect("Expected function, got error.");
2634        (sym)(
2635            handle,
2636            channelProperties,
2637            nChannelProperties,
2638            auxOutputEnable,
2639        )
2640    }
2641    pub unsafe fn ps5000aSetAutoTriggerMicroSeconds(
2642        &self,
2643        handle: i16,
2644        autoTriggerMicroseconds: u64,
2645    ) -> PICO_STATUS {
2646        let sym = self
2647            .ps5000aSetAutoTriggerMicroSeconds
2648            .as_ref()
2649            .expect("Expected function, got error.");
2650        (sym)(handle, autoTriggerMicroseconds)
2651    }
2652    pub unsafe fn ps5000aSetTriggerChannelConditions(
2653        &self,
2654        handle: i16,
2655        conditions: *mut PS5000A_TRIGGER_CONDITIONS,
2656        nConditions: i16,
2657    ) -> PICO_STATUS {
2658        let sym = self
2659            .ps5000aSetTriggerChannelConditions
2660            .as_ref()
2661            .expect("Expected function, got error.");
2662        (sym)(handle, conditions, nConditions)
2663    }
2664    pub unsafe fn ps5000aSetTriggerChannelConditionsV2(
2665        &self,
2666        handle: i16,
2667        conditions: *mut PS5000A_CONDITION,
2668        nConditions: i16,
2669        info: PS5000A_CONDITIONS_INFO,
2670    ) -> PICO_STATUS {
2671        let sym = self
2672            .ps5000aSetTriggerChannelConditionsV2
2673            .as_ref()
2674            .expect("Expected function, got error.");
2675        (sym)(handle, conditions, nConditions, info)
2676    }
2677    pub unsafe fn ps5000aSetTriggerChannelDirections(
2678        &self,
2679        handle: i16,
2680        channelA: PS5000A_THRESHOLD_DIRECTION,
2681        channelB: PS5000A_THRESHOLD_DIRECTION,
2682        channelC: PS5000A_THRESHOLD_DIRECTION,
2683        channelD: PS5000A_THRESHOLD_DIRECTION,
2684        ext: PS5000A_THRESHOLD_DIRECTION,
2685        aux: PS5000A_THRESHOLD_DIRECTION,
2686    ) -> PICO_STATUS {
2687        let sym = self
2688            .ps5000aSetTriggerChannelDirections
2689            .as_ref()
2690            .expect("Expected function, got error.");
2691        (sym)(handle, channelA, channelB, channelC, channelD, ext, aux)
2692    }
2693    pub unsafe fn ps5000aSetTriggerChannelDirectionsV2(
2694        &self,
2695        handle: i16,
2696        directions: *mut PS5000A_DIRECTION,
2697        nDirections: u16,
2698    ) -> PICO_STATUS {
2699        let sym = self
2700            .ps5000aSetTriggerChannelDirectionsV2
2701            .as_ref()
2702            .expect("Expected function, got error.");
2703        (sym)(handle, directions, nDirections)
2704    }
2705    pub unsafe fn ps5000aSetSimpleTrigger(
2706        &self,
2707        handle: i16,
2708        enable: i16,
2709        channel: PS5000A_CHANNEL,
2710        threshold: i16,
2711        direction: PS5000A_THRESHOLD_DIRECTION,
2712        delay: u32,
2713        autoTrigger_ms: i16,
2714    ) -> PICO_STATUS {
2715        let sym = self
2716            .ps5000aSetSimpleTrigger
2717            .as_ref()
2718            .expect("Expected function, got error.");
2719        (sym)(
2720            handle,
2721            enable,
2722            channel,
2723            threshold,
2724            direction,
2725            delay,
2726            autoTrigger_ms,
2727        )
2728    }
2729    pub unsafe fn ps5000aSetTriggerDigitalPortProperties(
2730        &self,
2731        handle: i16,
2732        directions: *mut PS5000A_DIGITAL_CHANNEL_DIRECTIONS,
2733        nDirections: i16,
2734    ) -> PICO_STATUS {
2735        let sym = self
2736            .ps5000aSetTriggerDigitalPortProperties
2737            .as_ref()
2738            .expect("Expected function, got error.");
2739        (sym)(handle, directions, nDirections)
2740    }
2741    pub unsafe fn ps5000aSetPulseWidthDigitalPortProperties(
2742        &self,
2743        handle: i16,
2744        directions: *mut PS5000A_DIGITAL_CHANNEL_DIRECTIONS,
2745        nDirections: i16,
2746    ) -> PICO_STATUS {
2747        let sym = self
2748            .ps5000aSetPulseWidthDigitalPortProperties
2749            .as_ref()
2750            .expect("Expected function, got error.");
2751        (sym)(handle, directions, nDirections)
2752    }
2753    pub unsafe fn ps5000aSetTriggerDelay(&self, handle: i16, delay: u32) -> PICO_STATUS {
2754        let sym = self
2755            .ps5000aSetTriggerDelay
2756            .as_ref()
2757            .expect("Expected function, got error.");
2758        (sym)(handle, delay)
2759    }
2760    pub unsafe fn ps5000aSetPulseWidthQualifier(
2761        &self,
2762        handle: i16,
2763        conditions: *mut PS5000A_PWQ_CONDITIONS,
2764        nConditions: i16,
2765        direction: PS5000A_THRESHOLD_DIRECTION,
2766        lower: u32,
2767        upper: u32,
2768        type_: PS5000A_PULSE_WIDTH_TYPE,
2769    ) -> PICO_STATUS {
2770        let sym = self
2771            .ps5000aSetPulseWidthQualifier
2772            .as_ref()
2773            .expect("Expected function, got error.");
2774        (sym)(
2775            handle,
2776            conditions,
2777            nConditions,
2778            direction,
2779            lower,
2780            upper,
2781            type_,
2782        )
2783    }
2784    pub unsafe fn ps5000aSetPulseWidthQualifierProperties(
2785        &self,
2786        handle: i16,
2787        lower: u32,
2788        upper: u32,
2789        type_: PS5000A_PULSE_WIDTH_TYPE,
2790    ) -> PICO_STATUS {
2791        let sym = self
2792            .ps5000aSetPulseWidthQualifierProperties
2793            .as_ref()
2794            .expect("Expected function, got error.");
2795        (sym)(handle, lower, upper, type_)
2796    }
2797    pub unsafe fn ps5000aSetPulseWidthQualifierConditions(
2798        &self,
2799        handle: i16,
2800        conditions: *mut PS5000A_CONDITION,
2801        nConditions: i16,
2802        info: PS5000A_CONDITIONS_INFO,
2803    ) -> PICO_STATUS {
2804        let sym = self
2805            .ps5000aSetPulseWidthQualifierConditions
2806            .as_ref()
2807            .expect("Expected function, got error.");
2808        (sym)(handle, conditions, nConditions, info)
2809    }
2810    pub unsafe fn ps5000aSetPulseWidthQualifierDirections(
2811        &self,
2812        handle: i16,
2813        directions: *mut PS5000A_DIRECTION,
2814        nDirections: i16,
2815    ) -> PICO_STATUS {
2816        let sym = self
2817            .ps5000aSetPulseWidthQualifierDirections
2818            .as_ref()
2819            .expect("Expected function, got error.");
2820        (sym)(handle, directions, nDirections)
2821    }
2822    pub unsafe fn ps5000aIsTriggerOrPulseWidthQualifierEnabled(
2823        &self,
2824        handle: i16,
2825        triggerEnabled: *mut i16,
2826        pulseWidthQualifierEnabled: *mut i16,
2827    ) -> PICO_STATUS {
2828        let sym = self
2829            .ps5000aIsTriggerOrPulseWidthQualifierEnabled
2830            .as_ref()
2831            .expect("Expected function, got error.");
2832        (sym)(handle, triggerEnabled, pulseWidthQualifierEnabled)
2833    }
2834    pub unsafe fn ps5000aGetTriggerTimeOffset(
2835        &self,
2836        handle: i16,
2837        timeUpper: *mut u32,
2838        timeLower: *mut u32,
2839        timeUnits: *mut PS5000A_TIME_UNITS,
2840        segmentIndex: u32,
2841    ) -> PICO_STATUS {
2842        let sym = self
2843            .ps5000aGetTriggerTimeOffset
2844            .as_ref()
2845            .expect("Expected function, got error.");
2846        (sym)(handle, timeUpper, timeLower, timeUnits, segmentIndex)
2847    }
2848    pub unsafe fn ps5000aGetTriggerTimeOffset64(
2849        &self,
2850        handle: i16,
2851        time: *mut i64,
2852        timeUnits: *mut PS5000A_TIME_UNITS,
2853        segmentIndex: u32,
2854    ) -> PICO_STATUS {
2855        let sym = self
2856            .ps5000aGetTriggerTimeOffset64
2857            .as_ref()
2858            .expect("Expected function, got error.");
2859        (sym)(handle, time, timeUnits, segmentIndex)
2860    }
2861    pub unsafe fn ps5000aGetValuesTriggerTimeOffsetBulk(
2862        &self,
2863        handle: i16,
2864        timesUpper: *mut u32,
2865        timesLower: *mut u32,
2866        timeUnits: *mut PS5000A_TIME_UNITS,
2867        fromSegmentIndex: u32,
2868        toSegmentIndex: u32,
2869    ) -> PICO_STATUS {
2870        let sym = self
2871            .ps5000aGetValuesTriggerTimeOffsetBulk
2872            .as_ref()
2873            .expect("Expected function, got error.");
2874        (sym)(
2875            handle,
2876            timesUpper,
2877            timesLower,
2878            timeUnits,
2879            fromSegmentIndex,
2880            toSegmentIndex,
2881        )
2882    }
2883    pub unsafe fn ps5000aGetValuesTriggerTimeOffsetBulk64(
2884        &self,
2885        handle: i16,
2886        times: *mut i64,
2887        timeUnits: *mut PS5000A_TIME_UNITS,
2888        fromSegmentIndex: u32,
2889        toSegmentIndex: u32,
2890    ) -> PICO_STATUS {
2891        let sym = self
2892            .ps5000aGetValuesTriggerTimeOffsetBulk64
2893            .as_ref()
2894            .expect("Expected function, got error.");
2895        (sym)(handle, times, timeUnits, fromSegmentIndex, toSegmentIndex)
2896    }
2897    pub unsafe fn ps5000aSetDataBuffers(
2898        &self,
2899        handle: i16,
2900        source: PS5000A_CHANNEL,
2901        bufferMax: *mut i16,
2902        bufferMin: *mut i16,
2903        bufferLth: i32,
2904        segmentIndex: u32,
2905        mode: PS5000A_RATIO_MODE,
2906    ) -> PICO_STATUS {
2907        let sym = self
2908            .ps5000aSetDataBuffers
2909            .as_ref()
2910            .expect("Expected function, got error.");
2911        (sym)(
2912            handle,
2913            source,
2914            bufferMax,
2915            bufferMin,
2916            bufferLth,
2917            segmentIndex,
2918            mode,
2919        )
2920    }
2921    pub unsafe fn ps5000aSetDataBuffer(
2922        &self,
2923        handle: i16,
2924        source: PS5000A_CHANNEL,
2925        buffer: *mut i16,
2926        bufferLth: i32,
2927        segmentIndex: u32,
2928        mode: PS5000A_RATIO_MODE,
2929    ) -> PICO_STATUS {
2930        let sym = self
2931            .ps5000aSetDataBuffer
2932            .as_ref()
2933            .expect("Expected function, got error.");
2934        (sym)(handle, source, buffer, bufferLth, segmentIndex, mode)
2935    }
2936    pub unsafe fn ps5000aSetUnscaledDataBuffers(
2937        &self,
2938        handle: i16,
2939        source: PS5000A_CHANNEL,
2940        bufferMax: *mut i8,
2941        bufferMin: *mut i8,
2942        bufferLth: i32,
2943        segmentIndex: u32,
2944        mode: PS5000A_RATIO_MODE,
2945    ) -> PICO_STATUS {
2946        let sym = self
2947            .ps5000aSetUnscaledDataBuffers
2948            .as_ref()
2949            .expect("Expected function, got error.");
2950        (sym)(
2951            handle,
2952            source,
2953            bufferMax,
2954            bufferMin,
2955            bufferLth,
2956            segmentIndex,
2957            mode,
2958        )
2959    }
2960    pub unsafe fn ps5000aSetEtsTimeBuffer(
2961        &self,
2962        handle: i16,
2963        buffer: *mut i64,
2964        bufferLth: i32,
2965    ) -> PICO_STATUS {
2966        let sym = self
2967            .ps5000aSetEtsTimeBuffer
2968            .as_ref()
2969            .expect("Expected function, got error.");
2970        (sym)(handle, buffer, bufferLth)
2971    }
2972    pub unsafe fn ps5000aSetEtsTimeBuffers(
2973        &self,
2974        handle: i16,
2975        timeUpper: *mut u32,
2976        timeLower: *mut u32,
2977        bufferLth: i32,
2978    ) -> PICO_STATUS {
2979        let sym = self
2980            .ps5000aSetEtsTimeBuffers
2981            .as_ref()
2982            .expect("Expected function, got error.");
2983        (sym)(handle, timeUpper, timeLower, bufferLth)
2984    }
2985    pub unsafe fn ps5000aIsReady(&self, handle: i16, ready: *mut i16) -> PICO_STATUS {
2986        let sym = self
2987            .ps5000aIsReady
2988            .as_ref()
2989            .expect("Expected function, got error.");
2990        (sym)(handle, ready)
2991    }
2992    pub unsafe fn ps5000aRunBlock(
2993        &self,
2994        handle: i16,
2995        noOfPreTriggerSamples: i32,
2996        noOfPostTriggerSamples: i32,
2997        timebase: u32,
2998        timeIndisposedMs: *mut i32,
2999        segmentIndex: u32,
3000        lpReady: ps5000aBlockReady,
3001        pParameter: *mut ::std::os::raw::c_void,
3002    ) -> PICO_STATUS {
3003        let sym = self
3004            .ps5000aRunBlock
3005            .as_ref()
3006            .expect("Expected function, got error.");
3007        (sym)(
3008            handle,
3009            noOfPreTriggerSamples,
3010            noOfPostTriggerSamples,
3011            timebase,
3012            timeIndisposedMs,
3013            segmentIndex,
3014            lpReady,
3015            pParameter,
3016        )
3017    }
3018    pub unsafe fn ps5000aRunStreaming(
3019        &self,
3020        handle: i16,
3021        sampleInterval: *mut u32,
3022        sampleIntervalTimeUnits: PS5000A_TIME_UNITS,
3023        maxPreTriggerSamples: u32,
3024        maxPostTriggerSamples: u32,
3025        autoStop: i16,
3026        downSampleRatio: u32,
3027        downSampleRatioMode: PS5000A_RATIO_MODE,
3028        overviewBufferSize: u32,
3029    ) -> PICO_STATUS {
3030        let sym = self
3031            .ps5000aRunStreaming
3032            .as_ref()
3033            .expect("Expected function, got error.");
3034        (sym)(
3035            handle,
3036            sampleInterval,
3037            sampleIntervalTimeUnits,
3038            maxPreTriggerSamples,
3039            maxPostTriggerSamples,
3040            autoStop,
3041            downSampleRatio,
3042            downSampleRatioMode,
3043            overviewBufferSize,
3044        )
3045    }
3046    pub unsafe fn ps5000aGetStreamingLatestValues(
3047        &self,
3048        handle: i16,
3049        lpPs5000aReady: ps5000aStreamingReady,
3050        pParameter: *mut ::std::os::raw::c_void,
3051    ) -> PICO_STATUS {
3052        let sym = self
3053            .ps5000aGetStreamingLatestValues
3054            .as_ref()
3055            .expect("Expected function, got error.");
3056        (sym)(handle, lpPs5000aReady, pParameter)
3057    }
3058    pub unsafe fn ps5000aNoOfStreamingValues(
3059        &self,
3060        handle: i16,
3061        noOfValues: *mut u32,
3062    ) -> PICO_STATUS {
3063        let sym = self
3064            .ps5000aNoOfStreamingValues
3065            .as_ref()
3066            .expect("Expected function, got error.");
3067        (sym)(handle, noOfValues)
3068    }
3069    pub unsafe fn ps5000aGetMaxDownSampleRatio(
3070        &self,
3071        handle: i16,
3072        noOfUnaggreatedSamples: u32,
3073        maxDownSampleRatio: *mut u32,
3074        downSampleRatioMode: PS5000A_RATIO_MODE,
3075        segmentIndex: u32,
3076    ) -> PICO_STATUS {
3077        let sym = self
3078            .ps5000aGetMaxDownSampleRatio
3079            .as_ref()
3080            .expect("Expected function, got error.");
3081        (sym)(
3082            handle,
3083            noOfUnaggreatedSamples,
3084            maxDownSampleRatio,
3085            downSampleRatioMode,
3086            segmentIndex,
3087        )
3088    }
3089    pub unsafe fn ps5000aGetValues(
3090        &self,
3091        handle: i16,
3092        startIndex: u32,
3093        noOfSamples: *mut u32,
3094        downSampleRatio: u32,
3095        downSampleRatioMode: PS5000A_RATIO_MODE,
3096        segmentIndex: u32,
3097        overflow: *mut i16,
3098    ) -> PICO_STATUS {
3099        let sym = self
3100            .ps5000aGetValues
3101            .as_ref()
3102            .expect("Expected function, got error.");
3103        (sym)(
3104            handle,
3105            startIndex,
3106            noOfSamples,
3107            downSampleRatio,
3108            downSampleRatioMode,
3109            segmentIndex,
3110            overflow,
3111        )
3112    }
3113    pub unsafe fn ps5000aGetValuesAsync(
3114        &self,
3115        handle: i16,
3116        startIndex: u32,
3117        noOfSamples: u32,
3118        downSampleRatio: u32,
3119        downSampleRatioMode: PS5000A_RATIO_MODE,
3120        segmentIndex: u32,
3121        lpDataReady: *mut ::std::os::raw::c_void,
3122        pParameter: *mut ::std::os::raw::c_void,
3123    ) -> PICO_STATUS {
3124        let sym = self
3125            .ps5000aGetValuesAsync
3126            .as_ref()
3127            .expect("Expected function, got error.");
3128        (sym)(
3129            handle,
3130            startIndex,
3131            noOfSamples,
3132            downSampleRatio,
3133            downSampleRatioMode,
3134            segmentIndex,
3135            lpDataReady,
3136            pParameter,
3137        )
3138    }
3139    pub unsafe fn ps5000aGetValuesBulk(
3140        &self,
3141        handle: i16,
3142        noOfSamples: *mut u32,
3143        fromSegmentIndex: u32,
3144        toSegmentIndex: u32,
3145        downSampleRatio: u32,
3146        downSampleRatioMode: PS5000A_RATIO_MODE,
3147        overflow: *mut i16,
3148    ) -> PICO_STATUS {
3149        let sym = self
3150            .ps5000aGetValuesBulk
3151            .as_ref()
3152            .expect("Expected function, got error.");
3153        (sym)(
3154            handle,
3155            noOfSamples,
3156            fromSegmentIndex,
3157            toSegmentIndex,
3158            downSampleRatio,
3159            downSampleRatioMode,
3160            overflow,
3161        )
3162    }
3163    pub unsafe fn ps5000aGetValuesOverlapped(
3164        &self,
3165        handle: i16,
3166        startIndex: u32,
3167        noOfSamples: *mut u32,
3168        downSampleRatio: u32,
3169        downSampleRatioMode: PS5000A_RATIO_MODE,
3170        segmentIndex: u32,
3171        overflow: *mut i16,
3172    ) -> PICO_STATUS {
3173        let sym = self
3174            .ps5000aGetValuesOverlapped
3175            .as_ref()
3176            .expect("Expected function, got error.");
3177        (sym)(
3178            handle,
3179            startIndex,
3180            noOfSamples,
3181            downSampleRatio,
3182            downSampleRatioMode,
3183            segmentIndex,
3184            overflow,
3185        )
3186    }
3187    pub unsafe fn ps5000aGetValuesOverlappedBulk(
3188        &self,
3189        handle: i16,
3190        startIndex: u32,
3191        noOfSamples: *mut u32,
3192        downSampleRatio: u32,
3193        downSampleRatioMode: PS5000A_RATIO_MODE,
3194        fromSegmentIndex: u32,
3195        toSegmentIndex: u32,
3196        overflow: *mut i16,
3197    ) -> PICO_STATUS {
3198        let sym = self
3199            .ps5000aGetValuesOverlappedBulk
3200            .as_ref()
3201            .expect("Expected function, got error.");
3202        (sym)(
3203            handle,
3204            startIndex,
3205            noOfSamples,
3206            downSampleRatio,
3207            downSampleRatioMode,
3208            fromSegmentIndex,
3209            toSegmentIndex,
3210            overflow,
3211        )
3212    }
3213    pub unsafe fn ps5000aTriggerWithinPreTriggerSamples(
3214        &self,
3215        handle: i16,
3216        state: PS5000A_TRIGGER_WITHIN_PRE_TRIGGER,
3217    ) -> PICO_STATUS {
3218        let sym = self
3219            .ps5000aTriggerWithinPreTriggerSamples
3220            .as_ref()
3221            .expect("Expected function, got error.");
3222        (sym)(handle, state)
3223    }
3224    pub unsafe fn ps5000aGetTriggerInfoBulk(
3225        &self,
3226        handle: i16,
3227        triggerInfo: *mut PS5000A_TRIGGER_INFO,
3228        fromSegmentIndex: u32,
3229        toSegmentIndex: u32,
3230    ) -> PICO_STATUS {
3231        let sym = self
3232            .ps5000aGetTriggerInfoBulk
3233            .as_ref()
3234            .expect("Expected function, got error.");
3235        (sym)(handle, triggerInfo, fromSegmentIndex, toSegmentIndex)
3236    }
3237    pub unsafe fn ps5000aEnumerateUnits(
3238        &self,
3239        count: *mut i16,
3240        serials: *mut i8,
3241        serialLth: *mut i16,
3242    ) -> PICO_STATUS {
3243        let sym = self
3244            .ps5000aEnumerateUnits
3245            .as_ref()
3246            .expect("Expected function, got error.");
3247        (sym)(count, serials, serialLth)
3248    }
3249    pub unsafe fn ps5000aGetChannelInformation(
3250        &self,
3251        handle: i16,
3252        info: PS5000A_CHANNEL_INFO,
3253        probe: i32,
3254        ranges: *mut i32,
3255        length: *mut i32,
3256        channels: i32,
3257    ) -> PICO_STATUS {
3258        let sym = self
3259            .ps5000aGetChannelInformation
3260            .as_ref()
3261            .expect("Expected function, got error.");
3262        (sym)(handle, info, probe, ranges, length, channels)
3263    }
3264    pub unsafe fn ps5000aMaximumValue(&self, handle: i16, value: *mut i16) -> PICO_STATUS {
3265        let sym = self
3266            .ps5000aMaximumValue
3267            .as_ref()
3268            .expect("Expected function, got error.");
3269        (sym)(handle, value)
3270    }
3271    pub unsafe fn ps5000aMinimumValue(&self, handle: i16, value: *mut i16) -> PICO_STATUS {
3272        let sym = self
3273            .ps5000aMinimumValue
3274            .as_ref()
3275            .expect("Expected function, got error.");
3276        (sym)(handle, value)
3277    }
3278    pub unsafe fn ps5000aGetAnalogueOffset(
3279        &self,
3280        handle: i16,
3281        range: PS5000A_RANGE,
3282        coupling: PS5000A_COUPLING,
3283        maximumVoltage: *mut f32,
3284        minimumVoltage: *mut f32,
3285    ) -> PICO_STATUS {
3286        let sym = self
3287            .ps5000aGetAnalogueOffset
3288            .as_ref()
3289            .expect("Expected function, got error.");
3290        (sym)(handle, range, coupling, maximumVoltage, minimumVoltage)
3291    }
3292    pub unsafe fn ps5000aGetMaxSegments(&self, handle: i16, maxSegments: *mut u32) -> PICO_STATUS {
3293        let sym = self
3294            .ps5000aGetMaxSegments
3295            .as_ref()
3296            .expect("Expected function, got error.");
3297        (sym)(handle, maxSegments)
3298    }
3299    pub unsafe fn ps5000aChangePowerSource(
3300        &self,
3301        handle: i16,
3302        powerState: PICO_STATUS,
3303    ) -> PICO_STATUS {
3304        let sym = self
3305            .ps5000aChangePowerSource
3306            .as_ref()
3307            .expect("Expected function, got error.");
3308        (sym)(handle, powerState)
3309    }
3310    pub unsafe fn ps5000aCurrentPowerSource(&self, handle: i16) -> PICO_STATUS {
3311        let sym = self
3312            .ps5000aCurrentPowerSource
3313            .as_ref()
3314            .expect("Expected function, got error.");
3315        (sym)(handle)
3316    }
3317    pub unsafe fn ps5000aStop(&self, handle: i16) -> PICO_STATUS {
3318        let sym = self
3319            .ps5000aStop
3320            .as_ref()
3321            .expect("Expected function, got error.");
3322        (sym)(handle)
3323    }
3324    pub unsafe fn ps5000aPingUnit(&self, handle: i16) -> PICO_STATUS {
3325        let sym = self
3326            .ps5000aPingUnit
3327            .as_ref()
3328            .expect("Expected function, got error.");
3329        (sym)(handle)
3330    }
3331    pub unsafe fn ps5000aSetNoOfCaptures(&self, handle: i16, nCaptures: u32) -> PICO_STATUS {
3332        let sym = self
3333            .ps5000aSetNoOfCaptures
3334            .as_ref()
3335            .expect("Expected function, got error.");
3336        (sym)(handle, nCaptures)
3337    }
3338    pub unsafe fn ps5000aGetNoOfCaptures(&self, handle: i16, nCaptures: *mut u32) -> PICO_STATUS {
3339        let sym = self
3340            .ps5000aGetNoOfCaptures
3341            .as_ref()
3342            .expect("Expected function, got error.");
3343        (sym)(handle, nCaptures)
3344    }
3345    pub unsafe fn ps5000aGetNoOfProcessedCaptures(
3346        &self,
3347        handle: i16,
3348        nProcessedCaptures: *mut u32,
3349    ) -> PICO_STATUS {
3350        let sym = self
3351            .ps5000aGetNoOfProcessedCaptures
3352            .as_ref()
3353            .expect("Expected function, got error.");
3354        (sym)(handle, nProcessedCaptures)
3355    }
3356    pub unsafe fn ps5000aSetDeviceResolution(
3357        &self,
3358        handle: i16,
3359        resolution: PS5000A_DEVICE_RESOLUTION,
3360    ) -> PICO_STATUS {
3361        let sym = self
3362            .ps5000aSetDeviceResolution
3363            .as_ref()
3364            .expect("Expected function, got error.");
3365        (sym)(handle, resolution)
3366    }
3367    pub unsafe fn ps5000aGetDeviceResolution(
3368        &self,
3369        handle: i16,
3370        resolution: *mut PS5000A_DEVICE_RESOLUTION,
3371    ) -> PICO_STATUS {
3372        let sym = self
3373            .ps5000aGetDeviceResolution
3374            .as_ref()
3375            .expect("Expected function, got error.");
3376        (sym)(handle, resolution)
3377    }
3378    pub unsafe fn ps5000aQueryOutputEdgeDetect(&self, handle: i16, state: *mut i16) -> PICO_STATUS {
3379        let sym = self
3380            .ps5000aQueryOutputEdgeDetect
3381            .as_ref()
3382            .expect("Expected function, got error.");
3383        (sym)(handle, state)
3384    }
3385    pub unsafe fn ps5000aSetOutputEdgeDetect(&self, handle: i16, state: i16) -> PICO_STATUS {
3386        let sym = self
3387            .ps5000aSetOutputEdgeDetect
3388            .as_ref()
3389            .expect("Expected function, got error.");
3390        (sym)(handle, state)
3391    }
3392    pub unsafe fn ps5000aGetScalingValues(
3393        &self,
3394        handle: i16,
3395        scalingValues: *mut PS5000A_SCALING_FACTORS_VALUES,
3396        nChannels: i16,
3397    ) -> PICO_STATUS {
3398        let sym = self
3399            .ps5000aGetScalingValues
3400            .as_ref()
3401            .expect("Expected function, got error.");
3402        (sym)(handle, scalingValues, nChannels)
3403    }
3404    pub unsafe fn ps5000aCheckForUpdate(
3405        &self,
3406        handle: i16,
3407        current: *mut PICO_VERSION,
3408        update: *mut PICO_VERSION,
3409        updateRequired: *mut u16,
3410    ) -> PICO_STATUS {
3411        let sym = self
3412            .ps5000aCheckForUpdate
3413            .as_ref()
3414            .expect("Expected function, got error.");
3415        (sym)(handle, current, update, updateRequired)
3416    }
3417    pub unsafe fn ps5000aStartFirmwareUpdate(
3418        &self,
3419        handle: i16,
3420        progress: PicoUpdateFirmwareProgress,
3421    ) -> PICO_STATUS {
3422        let sym = self
3423            .ps5000aStartFirmwareUpdate
3424            .as_ref()
3425            .expect("Expected function, got error.");
3426        (sym)(handle, progress)
3427    }
3428}