1pub const PS3000A_MAX_OVERSAMPLE: u32 = 256;
2pub const PS3207A_MAX_ETS_CYCLES: u32 = 500;
3pub const PS3207A_MAX_INTERLEAVE: u32 = 40;
4pub const PS3206A_MAX_ETS_CYCLES: u32 = 500;
5pub const PS3206A_MAX_INTERLEAVE: u32 = 40;
6pub const PS3206MSO_MAX_INTERLEAVE: u32 = 80;
7pub const PS3205A_MAX_ETS_CYCLES: u32 = 250;
8pub const PS3205A_MAX_INTERLEAVE: u32 = 20;
9pub const PS3205MSO_MAX_INTERLEAVE: u32 = 40;
10pub const PS3204A_MAX_ETS_CYCLES: u32 = 125;
11pub const PS3204A_MAX_INTERLEAVE: u32 = 10;
12pub const PS3204MSO_MAX_INTERLEAVE: u32 = 20;
13pub const PS3000A_EXT_MAX_VALUE: u32 = 32767;
14pub const PS3000A_EXT_MIN_VALUE: i32 = -32767;
15pub const PS3000A_MAX_LOGIC_LEVEL: u32 = 32767;
16pub const PS3000A_MIN_LOGIC_LEVEL: i32 = -32767;
17pub const MIN_SIG_GEN_FREQ: f64 = 0.0;
18pub const MAX_SIG_GEN_FREQ: f64 = 20000000.0;
19pub const PS3207B_MAX_SIG_GEN_BUFFER_SIZE: u32 = 32768;
20pub const PS3206B_MAX_SIG_GEN_BUFFER_SIZE: u32 = 16384;
21pub const MAX_SIG_GEN_BUFFER_SIZE: u32 = 8192;
22pub const MIN_SIG_GEN_BUFFER_SIZE: u32 = 1;
23pub const MIN_DWELL_COUNT: u32 = 3;
24pub const MAX_SWEEPS_SHOTS: u32 = 1073741823;
25pub const MAX_ANALOGUE_OFFSET_50MV_200MV: f64 = 0.25;
26pub const MIN_ANALOGUE_OFFSET_50MV_200MV: f64 = -0.25;
27pub const MAX_ANALOGUE_OFFSET_500MV_2V: f64 = 2.5;
28pub const MIN_ANALOGUE_OFFSET_500MV_2V: f64 = -2.5;
29pub const MAX_ANALOGUE_OFFSET_5V_20V: f64 = 20.0;
30pub const MIN_ANALOGUE_OFFSET_5V_20V: f64 = -20.0;
31pub const PS3000A_SHOT_SWEEP_TRIGGER_CONTINUOUS_RUN: u32 = 4294967295;
32pub const PS3000A_SINE_MAX_FREQUENCY: f64 = 1000000.0;
33pub const PS3000A_SQUARE_MAX_FREQUENCY: f64 = 1000000.0;
34pub const PS3000A_TRIANGLE_MAX_FREQUENCY: f64 = 1000000.0;
35pub const PS3000A_SINC_MAX_FREQUENCY: f64 = 1000000.0;
36pub const PS3000A_RAMP_MAX_FREQUENCY: f64 = 1000000.0;
37pub const PS3000A_HALF_SINE_MAX_FREQUENCY: f64 = 1000000.0;
38pub const PS3000A_GAUSSIAN_MAX_FREQUENCY: f64 = 1000000.0;
39pub const PS3000A_PRBS_MAX_FREQUENCY: f64 = 1000000.0;
40pub const PS3000A_PRBS_MIN_FREQUENCY: f64 = 0.03;
41pub const PS3000A_MIN_FREQUENCY: f64 = 0.03;
42pub type PICO_POINTER = *mut ::std::os::raw::c_void;
43pub type PICO_INFO = u32;
44pub type PICO_STATUS = u32;
45pub const enPicoStringValue_PICO_SV_MEMORY: enPicoStringValue = 0;
46pub const enPicoStringValue_PICO_SV_MEMORY_NO_OF_SEGMENTS: enPicoStringValue = 1;
47pub const enPicoStringValue_PICO_SV_MEMORY_MAX_SAMPLES: enPicoStringValue = 2;
48pub const enPicoStringValue_PICO_SV_NO_OF_CHANNELS: enPicoStringValue = 3;
49pub const enPicoStringValue_PICO_SV_ARRAY_OF_CHANNELS: enPicoStringValue = 4;
50pub const enPicoStringValue_PICO_SV_CHANNEL: enPicoStringValue = 5;
51pub const enPicoStringValue_PICO_SV_CHANNEL_NAME: enPicoStringValue = 6;
52pub const enPicoStringValue_PICO_SV_CHANNEL_RANGE: enPicoStringValue = 7;
53pub const enPicoStringValue_PICO_SV_CHANNEL_COUPLING: enPicoStringValue = 8;
54pub const enPicoStringValue_PICO_SV_CHANNEL_ENABLED: enPicoStringValue = 9;
55pub const enPicoStringValue_PICO_SV_CHANNEL_ANALOGUE_OFFSET: enPicoStringValue = 10;
56pub const enPicoStringValue_PICO_SV_CHANNEL_FILTER: enPicoStringValue = 11;
57pub const enPicoStringValue_PICO_SV_TRIGGER: enPicoStringValue = 12;
58pub const enPicoStringValue_PICO_SV_TRIGGER_AUXIO_OUTPUT_ENABLED: enPicoStringValue = 13;
59pub const enPicoStringValue_PICO_SV_TRIGGER_AUTO_TRIGGER_MICROSECONDS: enPicoStringValue = 14;
60pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES: enPicoStringValue = 15;
61pub const enPicoStringValue_PICO_SV_NO_OF_TRIGGER_PROPERTIES: enPicoStringValue = 16;
62pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_CHANNEL: enPicoStringValue = 17;
63pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_UPPER: enPicoStringValue = 18;
64pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_UPPER_HYSTERESIS:
65 enPicoStringValue = 19;
66pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_LOWER: enPicoStringValue = 20;
67pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_LOWER_HYSTERESIS:
68 enPicoStringValue = 21;
69pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_MODE: enPicoStringValue = 22;
70pub const enPicoStringValue_PICO_SV_TRIGGER_ARRAY_OF_BLOCK_CONDITIONS: enPicoStringValue = 23;
71pub const enPicoStringValue_PICO_SV_TRIGGER_NO_OF_BLOCK_CONDITIONS: enPicoStringValue = 24;
72pub const enPicoStringValue_PICO_SV_TRIGGER_CONDITIONS: enPicoStringValue = 25;
73pub const enPicoStringValue_PICO_SV_TRIGGER_NO_OF_CONDITIONS: enPicoStringValue = 26;
74pub const enPicoStringValue_PICO_SV_TRIGGER_CONDITION_SOURCE: enPicoStringValue = 27;
75pub const enPicoStringValue_PICO_SV_TRIGGER_CONDITION_STATE: enPicoStringValue = 28;
76pub const enPicoStringValue_PICO_SV_TRIGGER_DIRECTION: enPicoStringValue = 29;
77pub const enPicoStringValue_PICO_SV_TRIGGER_NO_OF_DIRECTIONS: enPicoStringValue = 30;
78pub const enPicoStringValue_PICO_SV_TRIGGER_DIRECTION_CHANNEL: enPicoStringValue = 31;
79pub const enPicoStringValue_PICO_SV_TRIGGER_DIRECTION_DIRECTION: enPicoStringValue = 32;
80pub const enPicoStringValue_PICO_SV_TRIGGER_DELAY: enPicoStringValue = 33;
81pub const enPicoStringValue_PICO_SV_TRIGGER_DELAY_MS: enPicoStringValue = 34;
82pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER: enPicoStringValue = 35;
83pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER_ENABLED: enPicoStringValue = 36;
84pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER_CHANNEL: enPicoStringValue = 37;
85pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER_RANGE: enPicoStringValue = 38;
86pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER_TRESHOLDMAJOR: enPicoStringValue = 39;
87pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER_TRESHOLDMINOR: enPicoStringValue = 40;
88pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_PROPERTIES: enPicoStringValue = 41;
89pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_PROPERTIES_DIRECTION: enPicoStringValue = 42;
90pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_PROPERTIES_LOWER: enPicoStringValue = 43;
91pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_PROPERTIES_UPPER: enPicoStringValue = 44;
92pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_PROPERTIES_TYPE: enPicoStringValue = 45;
93pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_ARRAY_OF_BLOCK_CONDITIONS: enPicoStringValue = 46;
94pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_NO_OF_BLOCK_CONDITIONS: enPicoStringValue = 47;
95pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_CONDITIONS: enPicoStringValue = 48;
96pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_NO_OF_CONDITIONS: enPicoStringValue = 49;
97pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_CONDITIONS_SOURCE: enPicoStringValue = 50;
98pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_CONDITIONS_STATE: enPicoStringValue = 51;
99pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES: enPicoStringValue = 52;
100pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_PRE_TRIGGER_SAMPLES: enPicoStringValue = 53;
101pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_POST_TRIGGER_SAMPLES: enPicoStringValue = 54;
102pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_TIMEBASE: enPicoStringValue = 55;
103pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_NO_OF_CAPTURES: enPicoStringValue = 56;
104pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_RESOLUTION: enPicoStringValue = 57;
105pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED: enPicoStringValue = 58;
106pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_DOWN_SAMPLE_RATIO:
107 enPicoStringValue = 59;
108pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_DOWN_SAMPLE_RATIO_MODE:
109 enPicoStringValue = 60;
110pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_REQUERSTED_NO_OF_SAMPLES:
111 enPicoStringValue = 61;
112pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_SEGMENT_INDEX_FROM:
113 enPicoStringValue = 62;
114pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_SEGMENT_INDEX_TO:
115 enPicoStringValue = 63;
116pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR: enPicoStringValue = 64;
117pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN: enPicoStringValue = 65;
118pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN_WAVE_TYPE: enPicoStringValue = 66;
119pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN_START_FREQUENCY: enPicoStringValue =
120 67;
121pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN_STOP_FREQUENCY: enPicoStringValue =
122 68;
123pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN_INCREMENT: enPicoStringValue = 69;
124pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN_DWELL_TIME: enPicoStringValue = 70;
125pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG: enPicoStringValue = 71;
126pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_START_DELTA_PHASE: enPicoStringValue = 72;
127pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_STOP_DELTA_PHASE: enPicoStringValue = 73;
128pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_DELTA_PHASE_INCREMENT: enPicoStringValue =
129 74;
130pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_DWELL_COUNT: enPicoStringValue = 75;
131pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_INDEX_MODE: enPicoStringValue = 76;
132pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_WAVEFORM_SIZE: enPicoStringValue = 77;
133pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_ARRAY_OF_AWG_WAVEFORM_VALUES:
134 enPicoStringValue = 78;
135pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_OFFSET_VOLTAGE: enPicoStringValue = 79;
136pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_PK_TO_PK: enPicoStringValue = 80;
137pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_OPERATION: enPicoStringValue = 81;
138pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_SHOTS: enPicoStringValue = 82;
139pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_SWEEPS: enPicoStringValue = 83;
140pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_SWEEP_TYPE: enPicoStringValue = 84;
141pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_TRIGGER_TYPE: enPicoStringValue = 85;
142pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_TRIGGER_SOURCE: enPicoStringValue = 86;
143pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_EXT_IN_THRESHOLD: enPicoStringValue = 87;
144pub const enPicoStringValue_PICO_SV_ETS: enPicoStringValue = 88;
145pub const enPicoStringValue_PICO_SV_ETS_STATE: enPicoStringValue = 89;
146pub const enPicoStringValue_PICO_SV_ETS_CYCLE: enPicoStringValue = 90;
147pub const enPicoStringValue_PICO_SV_ETS_INTERLEAVE: enPicoStringValue = 91;
148pub const enPicoStringValue_PICO_SV_ETS_SAMPLE_TIME_PICOSECONDS: enPicoStringValue = 92;
149pub type enPicoStringValue = ::std::os::raw::c_uint;
150pub use self::enPicoStringValue as PICO_STRING_VALUE;
151pub const enPS3000ABandwidthLimiter_PS3000A_BW_FULL: enPS3000ABandwidthLimiter = 0;
152pub const enPS3000ABandwidthLimiter_PS3000A_BW_20MHZ: enPS3000ABandwidthLimiter = 1;
153pub type enPS3000ABandwidthLimiter = ::std::os::raw::c_uint;
154pub use self::enPS3000ABandwidthLimiter as PS3000A_BANDWIDTH_LIMITER;
155pub const enPS3000AChannelBufferIndex_PS3000A_CHANNEL_A_MAX: enPS3000AChannelBufferIndex = 0;
156pub const enPS3000AChannelBufferIndex_PS3000A_CHANNEL_A_MIN: enPS3000AChannelBufferIndex = 1;
157pub const enPS3000AChannelBufferIndex_PS3000A_CHANNEL_B_MAX: enPS3000AChannelBufferIndex = 2;
158pub const enPS3000AChannelBufferIndex_PS3000A_CHANNEL_B_MIN: enPS3000AChannelBufferIndex = 3;
159pub const enPS3000AChannelBufferIndex_PS3000A_CHANNEL_C_MAX: enPS3000AChannelBufferIndex = 4;
160pub const enPS3000AChannelBufferIndex_PS3000A_CHANNEL_C_MIN: enPS3000AChannelBufferIndex = 5;
161pub const enPS3000AChannelBufferIndex_PS3000A_CHANNEL_D_MAX: enPS3000AChannelBufferIndex = 6;
162pub const enPS3000AChannelBufferIndex_PS3000A_CHANNEL_D_MIN: enPS3000AChannelBufferIndex = 7;
163pub const enPS3000AChannelBufferIndex_PS3000A_MAX_CHANNEL_BUFFERS: enPS3000AChannelBufferIndex = 8;
164pub type enPS3000AChannelBufferIndex = ::std::os::raw::c_uint;
165pub use self::enPS3000AChannelBufferIndex as PS3000A_CHANNEL_BUFFER_INDEX;
166pub const enPS3000AChannel_PS3000A_CHANNEL_A: enPS3000AChannel = 0;
167pub const enPS3000AChannel_PS3000A_CHANNEL_B: enPS3000AChannel = 1;
168pub const enPS3000AChannel_PS3000A_CHANNEL_C: enPS3000AChannel = 2;
169pub const enPS3000AChannel_PS3000A_CHANNEL_D: enPS3000AChannel = 3;
170pub const enPS3000AChannel_PS3000A_EXTERNAL: enPS3000AChannel = 4;
171pub const enPS3000AChannel_PS3000A_MAX_CHANNELS: enPS3000AChannel = 4;
172pub const enPS3000AChannel_PS3000A_TRIGGER_AUX: enPS3000AChannel = 5;
173pub const enPS3000AChannel_PS3000A_MAX_TRIGGER_SOURCES: enPS3000AChannel = 6;
174pub type enPS3000AChannel = ::std::os::raw::c_uint;
175pub use self::enPS3000AChannel as PS3000A_CHANNEL;
176pub const enPS3000ADigitalPort_PS3000A_DIGITAL_PORT0: enPS3000ADigitalPort = 128;
177pub const enPS3000ADigitalPort_PS3000A_DIGITAL_PORT1: enPS3000ADigitalPort = 129;
178pub const enPS3000ADigitalPort_PS3000A_DIGITAL_PORT2: enPS3000ADigitalPort = 130;
179pub const enPS3000ADigitalPort_PS3000A_DIGITAL_PORT3: enPS3000ADigitalPort = 131;
180pub const enPS3000ADigitalPort_PS3000A_MAX_DIGITAL_PORTS: enPS3000ADigitalPort = 4;
181pub type enPS3000ADigitalPort = ::std::os::raw::c_uint;
182pub use self::enPS3000ADigitalPort as PS3000A_DIGITAL_PORT;
183pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_0: enPS3000ADigitalChannel = 0;
184pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_1: enPS3000ADigitalChannel = 1;
185pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_2: enPS3000ADigitalChannel = 2;
186pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_3: enPS3000ADigitalChannel = 3;
187pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_4: enPS3000ADigitalChannel = 4;
188pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_5: enPS3000ADigitalChannel = 5;
189pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_6: enPS3000ADigitalChannel = 6;
190pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_7: enPS3000ADigitalChannel = 7;
191pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_8: enPS3000ADigitalChannel = 8;
192pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_9: enPS3000ADigitalChannel = 9;
193pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_10: enPS3000ADigitalChannel = 10;
194pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_11: enPS3000ADigitalChannel = 11;
195pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_12: enPS3000ADigitalChannel = 12;
196pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_13: enPS3000ADigitalChannel = 13;
197pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_14: enPS3000ADigitalChannel = 14;
198pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_15: enPS3000ADigitalChannel = 15;
199pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_16: enPS3000ADigitalChannel = 16;
200pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_17: enPS3000ADigitalChannel = 17;
201pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_18: enPS3000ADigitalChannel = 18;
202pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_19: enPS3000ADigitalChannel = 19;
203pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_20: enPS3000ADigitalChannel = 20;
204pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_21: enPS3000ADigitalChannel = 21;
205pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_22: enPS3000ADigitalChannel = 22;
206pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_23: enPS3000ADigitalChannel = 23;
207pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_24: enPS3000ADigitalChannel = 24;
208pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_25: enPS3000ADigitalChannel = 25;
209pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_26: enPS3000ADigitalChannel = 26;
210pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_27: enPS3000ADigitalChannel = 27;
211pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_28: enPS3000ADigitalChannel = 28;
212pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_29: enPS3000ADigitalChannel = 29;
213pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_30: enPS3000ADigitalChannel = 30;
214pub const enPS3000ADigitalChannel_PS3000A_DIGITAL_CHANNEL_31: enPS3000ADigitalChannel = 31;
215pub const enPS3000ADigitalChannel_PS3000A_MAX_DIGITAL_CHANNELS: enPS3000ADigitalChannel = 32;
216pub type enPS3000ADigitalChannel = ::std::os::raw::c_uint;
217pub use self::enPS3000ADigitalChannel as PS3000A_DIGITAL_CHANNEL;
218pub const enPS3000ARange_PS3000A_10MV: enPS3000ARange = 0;
219pub const enPS3000ARange_PS3000A_20MV: enPS3000ARange = 1;
220pub const enPS3000ARange_PS3000A_50MV: enPS3000ARange = 2;
221pub const enPS3000ARange_PS3000A_100MV: enPS3000ARange = 3;
222pub const enPS3000ARange_PS3000A_200MV: enPS3000ARange = 4;
223pub const enPS3000ARange_PS3000A_500MV: enPS3000ARange = 5;
224pub const enPS3000ARange_PS3000A_1V: enPS3000ARange = 6;
225pub const enPS3000ARange_PS3000A_2V: enPS3000ARange = 7;
226pub const enPS3000ARange_PS3000A_5V: enPS3000ARange = 8;
227pub const enPS3000ARange_PS3000A_10V: enPS3000ARange = 9;
228pub const enPS3000ARange_PS3000A_20V: enPS3000ARange = 10;
229pub const enPS3000ARange_PS3000A_50V: enPS3000ARange = 11;
230pub const enPS3000ARange_PS3000A_MAX_RANGES: enPS3000ARange = 12;
231pub type enPS3000ARange = ::std::os::raw::c_uint;
232pub use self::enPS3000ARange as PS3000A_RANGE;
233pub const enPS3000ACoupling_PS3000A_AC: enPS3000ACoupling = 0;
234pub const enPS3000ACoupling_PS3000A_DC: enPS3000ACoupling = 1;
235pub type enPS3000ACoupling = ::std::os::raw::c_uint;
236pub use self::enPS3000ACoupling as PS3000A_COUPLING;
237pub const enPS3000AChannelInfo_PS3000A_CI_RANGES: enPS3000AChannelInfo = 0;
238pub type enPS3000AChannelInfo = ::std::os::raw::c_uint;
239pub use self::enPS3000AChannelInfo as PS3000A_CHANNEL_INFO;
240pub const enPS3000AEtsMode_PS3000A_ETS_OFF: enPS3000AEtsMode = 0;
241pub const enPS3000AEtsMode_PS3000A_ETS_FAST: enPS3000AEtsMode = 1;
242pub const enPS3000AEtsMode_PS3000A_ETS_SLOW: enPS3000AEtsMode = 2;
243pub const enPS3000AEtsMode_PS3000A_ETS_MODES_MAX: enPS3000AEtsMode = 3;
244pub type enPS3000AEtsMode = ::std::os::raw::c_uint;
245pub use self::enPS3000AEtsMode as PS3000A_ETS_MODE;
246pub const enPS3000ATimeUnits_PS3000A_FS: enPS3000ATimeUnits = 0;
247pub const enPS3000ATimeUnits_PS3000A_PS: enPS3000ATimeUnits = 1;
248pub const enPS3000ATimeUnits_PS3000A_NS: enPS3000ATimeUnits = 2;
249pub const enPS3000ATimeUnits_PS3000A_US: enPS3000ATimeUnits = 3;
250pub const enPS3000ATimeUnits_PS3000A_MS: enPS3000ATimeUnits = 4;
251pub const enPS3000ATimeUnits_PS3000A_S: enPS3000ATimeUnits = 5;
252pub const enPS3000ATimeUnits_PS3000A_MAX_TIME_UNITS: enPS3000ATimeUnits = 6;
253pub type enPS3000ATimeUnits = ::std::os::raw::c_uint;
254pub use self::enPS3000ATimeUnits as PS3000A_TIME_UNITS;
255pub const enPS3000ASweepType_PS3000A_UP: enPS3000ASweepType = 0;
256pub const enPS3000ASweepType_PS3000A_DOWN: enPS3000ASweepType = 1;
257pub const enPS3000ASweepType_PS3000A_UPDOWN: enPS3000ASweepType = 2;
258pub const enPS3000ASweepType_PS3000A_DOWNUP: enPS3000ASweepType = 3;
259pub const enPS3000ASweepType_PS3000A_MAX_SWEEP_TYPES: enPS3000ASweepType = 4;
260pub type enPS3000ASweepType = ::std::os::raw::c_uint;
261pub use self::enPS3000ASweepType as PS3000A_SWEEP_TYPE;
262pub const enPS3000AWaveType_PS3000A_SINE: enPS3000AWaveType = 0;
263pub const enPS3000AWaveType_PS3000A_SQUARE: enPS3000AWaveType = 1;
264pub const enPS3000AWaveType_PS3000A_TRIANGLE: enPS3000AWaveType = 2;
265pub const enPS3000AWaveType_PS3000A_RAMP_UP: enPS3000AWaveType = 3;
266pub const enPS3000AWaveType_PS3000A_RAMP_DOWN: enPS3000AWaveType = 4;
267pub const enPS3000AWaveType_PS3000A_SINC: enPS3000AWaveType = 5;
268pub const enPS3000AWaveType_PS3000A_GAUSSIAN: enPS3000AWaveType = 6;
269pub const enPS3000AWaveType_PS3000A_HALF_SINE: enPS3000AWaveType = 7;
270pub const enPS3000AWaveType_PS3000A_DC_VOLTAGE: enPS3000AWaveType = 8;
271pub const enPS3000AWaveType_PS3000A_MAX_WAVE_TYPES: enPS3000AWaveType = 9;
272pub type enPS3000AWaveType = ::std::os::raw::c_uint;
273pub use self::enPS3000AWaveType as PS3000A_WAVE_TYPE;
274pub const enPS3000AExtraOperations_PS3000A_ES_OFF: enPS3000AExtraOperations = 0;
275pub const enPS3000AExtraOperations_PS3000A_WHITENOISE: enPS3000AExtraOperations = 1;
276pub const enPS3000AExtraOperations_PS3000A_PRBS: enPS3000AExtraOperations = 2;
277pub type enPS3000AExtraOperations = ::std::os::raw::c_uint;
278pub use self::enPS3000AExtraOperations as PS3000A_EXTRA_OPERATIONS;
279pub const enPS3000ASigGenTrigType_PS3000A_SIGGEN_RISING: enPS3000ASigGenTrigType = 0;
280pub const enPS3000ASigGenTrigType_PS3000A_SIGGEN_FALLING: enPS3000ASigGenTrigType = 1;
281pub const enPS3000ASigGenTrigType_PS3000A_SIGGEN_GATE_HIGH: enPS3000ASigGenTrigType = 2;
282pub const enPS3000ASigGenTrigType_PS3000A_SIGGEN_GATE_LOW: enPS3000ASigGenTrigType = 3;
283pub type enPS3000ASigGenTrigType = ::std::os::raw::c_uint;
284pub use self::enPS3000ASigGenTrigType as PS3000A_SIGGEN_TRIG_TYPE;
285pub const enPS3000ASigGenTrigSource_PS3000A_SIGGEN_NONE: enPS3000ASigGenTrigSource = 0;
286pub const enPS3000ASigGenTrigSource_PS3000A_SIGGEN_SCOPE_TRIG: enPS3000ASigGenTrigSource = 1;
287pub const enPS3000ASigGenTrigSource_PS3000A_SIGGEN_AUX_IN: enPS3000ASigGenTrigSource = 2;
288pub const enPS3000ASigGenTrigSource_PS3000A_SIGGEN_EXT_IN: enPS3000ASigGenTrigSource = 3;
289pub const enPS3000ASigGenTrigSource_PS3000A_SIGGEN_SOFT_TRIG: enPS3000ASigGenTrigSource = 4;
290pub type enPS3000ASigGenTrigSource = ::std::os::raw::c_uint;
291pub use self::enPS3000ASigGenTrigSource as PS3000A_SIGGEN_TRIG_SOURCE;
292pub const enPS3000AIndexMode_PS3000A_SINGLE: enPS3000AIndexMode = 0;
293pub const enPS3000AIndexMode_PS3000A_DUAL: enPS3000AIndexMode = 1;
294pub const enPS3000AIndexMode_PS3000A_QUAD: enPS3000AIndexMode = 2;
295pub const enPS3000AIndexMode_PS3000A_MAX_INDEX_MODES: enPS3000AIndexMode = 3;
296pub type enPS3000AIndexMode = ::std::os::raw::c_uint;
297pub use self::enPS3000AIndexMode as PS3000A_INDEX_MODE;
298pub const enPS3000A_ThresholdMode_PS3000A_LEVEL: enPS3000A_ThresholdMode = 0;
299pub const enPS3000A_ThresholdMode_PS3000A_WINDOW: enPS3000A_ThresholdMode = 1;
300pub type enPS3000A_ThresholdMode = ::std::os::raw::c_uint;
301pub use self::enPS3000A_ThresholdMode as PS3000A_THRESHOLD_MODE;
302pub const enPS3000AThresholdDirection_PS3000A_ABOVE: enPS3000AThresholdDirection = 0;
303pub const enPS3000AThresholdDirection_PS3000A_BELOW: enPS3000AThresholdDirection = 1;
304pub const enPS3000AThresholdDirection_PS3000A_RISING: enPS3000AThresholdDirection = 2;
305pub const enPS3000AThresholdDirection_PS3000A_FALLING: enPS3000AThresholdDirection = 3;
306pub const enPS3000AThresholdDirection_PS3000A_RISING_OR_FALLING: enPS3000AThresholdDirection = 4;
307pub const enPS3000AThresholdDirection_PS3000A_ABOVE_LOWER: enPS3000AThresholdDirection = 5;
308pub const enPS3000AThresholdDirection_PS3000A_BELOW_LOWER: enPS3000AThresholdDirection = 6;
309pub const enPS3000AThresholdDirection_PS3000A_RISING_LOWER: enPS3000AThresholdDirection = 7;
310pub const enPS3000AThresholdDirection_PS3000A_FALLING_LOWER: enPS3000AThresholdDirection = 8;
311pub const enPS3000AThresholdDirection_PS3000A_INSIDE: enPS3000AThresholdDirection = 0;
312pub const enPS3000AThresholdDirection_PS3000A_OUTSIDE: enPS3000AThresholdDirection = 1;
313pub const enPS3000AThresholdDirection_PS3000A_ENTER: enPS3000AThresholdDirection = 2;
314pub const enPS3000AThresholdDirection_PS3000A_EXIT: enPS3000AThresholdDirection = 3;
315pub const enPS3000AThresholdDirection_PS3000A_ENTER_OR_EXIT: enPS3000AThresholdDirection = 4;
316pub const enPS3000AThresholdDirection_PS3000A_POSITIVE_RUNT: enPS3000AThresholdDirection = 9;
317pub const enPS3000AThresholdDirection_PS3000A_NEGATIVE_RUNT: enPS3000AThresholdDirection = 10;
318pub const enPS3000AThresholdDirection_PS3000A_NONE: enPS3000AThresholdDirection = 2;
319pub type enPS3000AThresholdDirection = ::std::os::raw::c_uint;
320pub use self::enPS3000AThresholdDirection as PS3000A_THRESHOLD_DIRECTION;
321pub const enPS3000ADigitalDirection_PS3000A_DIGITAL_DONT_CARE: enPS3000ADigitalDirection = 0;
322pub const enPS3000ADigitalDirection_PS3000A_DIGITAL_DIRECTION_LOW: enPS3000ADigitalDirection = 1;
323pub const enPS3000ADigitalDirection_PS3000A_DIGITAL_DIRECTION_HIGH: enPS3000ADigitalDirection = 2;
324pub const enPS3000ADigitalDirection_PS3000A_DIGITAL_DIRECTION_RISING: enPS3000ADigitalDirection = 3;
325pub const enPS3000ADigitalDirection_PS3000A_DIGITAL_DIRECTION_FALLING: enPS3000ADigitalDirection =
326 4;
327pub const enPS3000ADigitalDirection_PS3000A_DIGITAL_DIRECTION_RISING_OR_FALLING:
328 enPS3000ADigitalDirection = 5;
329pub const enPS3000ADigitalDirection_PS3000A_DIGITAL_MAX_DIRECTION: enPS3000ADigitalDirection = 6;
330pub type enPS3000ADigitalDirection = ::std::os::raw::c_uint;
331pub use self::enPS3000ADigitalDirection as PS3000A_DIGITAL_DIRECTION;
332pub const enPS3000ATriggerState_PS3000A_CONDITION_DONT_CARE: enPS3000ATriggerState = 0;
333pub const enPS3000ATriggerState_PS3000A_CONDITION_TRUE: enPS3000ATriggerState = 1;
334pub const enPS3000ATriggerState_PS3000A_CONDITION_FALSE: enPS3000ATriggerState = 2;
335pub const enPS3000ATriggerState_PS3000A_CONDITION_MAX: enPS3000ATriggerState = 3;
336pub type enPS3000ATriggerState = ::std::os::raw::c_uint;
337pub use self::enPS3000ATriggerState as PS3000A_TRIGGER_STATE;
338#[repr(C, packed)]
339#[derive(Debug, Copy, Clone)]
340pub struct tPS3000ATriggerConditions {
341 pub channelA: PS3000A_TRIGGER_STATE,
342 pub channelB: PS3000A_TRIGGER_STATE,
343 pub channelC: PS3000A_TRIGGER_STATE,
344 pub channelD: PS3000A_TRIGGER_STATE,
345 pub external: PS3000A_TRIGGER_STATE,
346 pub aux: PS3000A_TRIGGER_STATE,
347 pub pulseWidthQualifier: PS3000A_TRIGGER_STATE,
348}
349
350pub type PS3000A_TRIGGER_CONDITIONS = tPS3000ATriggerConditions;
351#[repr(C, packed)]
352#[derive(Debug, Copy, Clone)]
353pub struct tPS3000ATriggerConditionsV2 {
354 pub channelA: PS3000A_TRIGGER_STATE,
355 pub channelB: PS3000A_TRIGGER_STATE,
356 pub channelC: PS3000A_TRIGGER_STATE,
357 pub channelD: PS3000A_TRIGGER_STATE,
358 pub external: PS3000A_TRIGGER_STATE,
359 pub aux: PS3000A_TRIGGER_STATE,
360 pub pulseWidthQualifier: PS3000A_TRIGGER_STATE,
361 pub digital: PS3000A_TRIGGER_STATE,
362}
363
364pub type PS3000A_TRIGGER_CONDITIONS_V2 = tPS3000ATriggerConditionsV2;
365#[repr(C, packed)]
366#[derive(Debug, Copy, Clone)]
367pub struct tPS3000APwqConditions {
368 pub channelA: PS3000A_TRIGGER_STATE,
369 pub channelB: PS3000A_TRIGGER_STATE,
370 pub channelC: PS3000A_TRIGGER_STATE,
371 pub channelD: PS3000A_TRIGGER_STATE,
372 pub external: PS3000A_TRIGGER_STATE,
373 pub aux: PS3000A_TRIGGER_STATE,
374}
375
376pub type PS3000A_PWQ_CONDITIONS = tPS3000APwqConditions;
377#[repr(C, packed)]
378#[derive(Debug, Copy, Clone)]
379pub struct tPS3000APwqConditionsV2 {
380 pub channelA: PS3000A_TRIGGER_STATE,
381 pub channelB: PS3000A_TRIGGER_STATE,
382 pub channelC: PS3000A_TRIGGER_STATE,
383 pub channelD: PS3000A_TRIGGER_STATE,
384 pub external: PS3000A_TRIGGER_STATE,
385 pub aux: PS3000A_TRIGGER_STATE,
386 pub digital: PS3000A_TRIGGER_STATE,
387}
388
389pub type PS3000A_PWQ_CONDITIONS_V2 = tPS3000APwqConditionsV2;
390#[repr(C, packed)]
391#[derive(Debug, Copy, Clone)]
392pub struct tPS3000ADigitalChannelDirections {
393 pub channel: PS3000A_DIGITAL_CHANNEL,
394 pub direction: PS3000A_DIGITAL_DIRECTION,
395}
396
397pub type PS3000A_DIGITAL_CHANNEL_DIRECTIONS = tPS3000ADigitalChannelDirections;
398#[repr(C, packed)]
399#[derive(Debug, Copy, Clone)]
400pub struct tPS3000ATriggerChannelProperties {
401 pub thresholdUpper: i16,
402 pub thresholdUpperHysteresis: u16,
403 pub thresholdLower: i16,
404 pub thresholdLowerHysteresis: u16,
405 pub channel: PS3000A_CHANNEL,
406 pub thresholdMode: PS3000A_THRESHOLD_MODE,
407}
408
409pub type PS3000A_TRIGGER_CHANNEL_PROPERTIES = tPS3000ATriggerChannelProperties;
410#[repr(C, packed)]
411#[derive(Debug, Copy, Clone)]
412pub struct tPS3000ATriggerInfo {
413 pub status: PICO_STATUS,
414 pub segmentIndex: u32,
415 pub reserved0: u32,
416 pub triggerTime: i64,
417 pub timeUnits: i16,
418 pub reserved1: i16,
419 pub timeStampCounter: u64,
420}
421
422pub type PS3000A_TRIGGER_INFO = tPS3000ATriggerInfo;
423#[repr(C, packed)]
424#[derive(Debug, Copy, Clone)]
425pub struct tPS3000AScalingFactors {
426 pub channelOrPort: PS3000A_CHANNEL,
427 pub range: PS3000A_RANGE,
428 pub offset: i16,
429 pub scalingFactor: f64,
430}
431
432pub type PS3000A_SCALING_FACTORS_VALUES = tPS3000AScalingFactors;
433pub const enPS3000ARatioMode_PS3000A_RATIO_MODE_NONE: enPS3000ARatioMode = 0;
434pub const enPS3000ARatioMode_PS3000A_RATIO_MODE_AGGREGATE: enPS3000ARatioMode = 1;
435pub const enPS3000ARatioMode_PS3000A_RATIO_MODE_DECIMATE: enPS3000ARatioMode = 2;
436pub const enPS3000ARatioMode_PS3000A_RATIO_MODE_AVERAGE: enPS3000ARatioMode = 4;
437pub type enPS3000ARatioMode = ::std::os::raw::c_uint;
438pub use self::enPS3000ARatioMode as PS3000A_RATIO_MODE;
439pub const enPS3000APulseWidthType_PS3000A_PW_TYPE_NONE: enPS3000APulseWidthType = 0;
440pub const enPS3000APulseWidthType_PS3000A_PW_TYPE_LESS_THAN: enPS3000APulseWidthType = 1;
441pub const enPS3000APulseWidthType_PS3000A_PW_TYPE_GREATER_THAN: enPS3000APulseWidthType = 2;
442pub const enPS3000APulseWidthType_PS3000A_PW_TYPE_IN_RANGE: enPS3000APulseWidthType = 3;
443pub const enPS3000APulseWidthType_PS3000A_PW_TYPE_OUT_OF_RANGE: enPS3000APulseWidthType = 4;
444pub type enPS3000APulseWidthType = ::std::os::raw::c_uint;
445pub use self::enPS3000APulseWidthType as PS3000A_PULSE_WIDTH_TYPE;
446pub const enPS3000AHoldOffType_PS3000A_TIME: enPS3000AHoldOffType = 0;
447pub const enPS3000AHoldOffType_PS3000A_EVENT: enPS3000AHoldOffType = 1;
448pub const enPS3000AHoldOffType_PS3000A_MAX_HOLDOFF_TYPE: enPS3000AHoldOffType = 2;
449pub type enPS3000AHoldOffType = ::std::os::raw::c_uint;
450pub use self::enPS3000AHoldOffType as PS3000A_HOLDOFF_TYPE;
451pub type ps3000aBlockReady = ::std::option::Option<
452 extern "C" fn(handle: i16, status: PICO_STATUS, pParameter: *mut ::std::os::raw::c_void),
453>;
454pub type ps3000aStreamingReady = ::std::option::Option<
455 unsafe extern "C" fn(
456 handle: i16,
457 noOfSamples: i32,
458 startIndex: u32,
459 overflow: i16,
460 triggerAt: u32,
461 triggered: i16,
462 autoStop: i16,
463 pParameter: *mut ::std::os::raw::c_void,
464 ),
465>;
466pub type ps3000aDataReady = ::std::option::Option<
467 unsafe extern "C" fn(
468 handle: i16,
469 status: PICO_STATUS,
470 noOfSamples: u32,
471 overflow: i16,
472 pParameter: *mut ::std::os::raw::c_void,
473 ),
474>;
475
476extern crate libloading;
477pub struct PS3000ALoader {
478 __library: ::libloading::Library,
479 pub ps3000aApplyFix: Result<unsafe extern "C" fn(u32, u16), ::libloading::Error>,
480 pub ps3000aOpenUnit: Result<
481 unsafe extern "C" fn(handle: *mut i16, serial: *mut i8) -> PICO_STATUS,
482 ::libloading::Error,
483 >,
484 pub ps3000aOpenUnitAsync: Result<
485 unsafe extern "C" fn(status: *mut i16, serial: *mut i8) -> PICO_STATUS,
486 ::libloading::Error,
487 >,
488 pub ps3000aOpenUnitProgress: Result<
489 unsafe extern "C" fn(
490 handle: *mut i16,
491 progressPercent: *mut i16,
492 complete: *mut i16,
493 ) -> PICO_STATUS,
494 ::libloading::Error,
495 >,
496 pub ps3000aGetUnitInfo: Result<
497 unsafe extern "C" fn(
498 handle: i16,
499 string: *mut i8,
500 stringLength: i16,
501 requiredSize: *mut i16,
502 info: PICO_INFO,
503 ) -> PICO_STATUS,
504 ::libloading::Error,
505 >,
506 pub ps3000aFlashLed:
507 Result<unsafe extern "C" fn(handle: i16, start: i16) -> PICO_STATUS, ::libloading::Error>,
508 pub ps3000aCloseUnit:
509 Result<unsafe extern "C" fn(handle: i16) -> PICO_STATUS, ::libloading::Error>,
510 pub ps3000aMemorySegments: Result<
511 unsafe extern "C" fn(handle: i16, nSegments: u32, nMaxSamples: *mut i32) -> PICO_STATUS,
512 ::libloading::Error,
513 >,
514 pub ps3000aSetChannel: Result<
515 unsafe extern "C" fn(
516 handle: i16,
517 channel: PS3000A_CHANNEL,
518 enabled: i16,
519 type_: PS3000A_COUPLING,
520 range: PS3000A_RANGE,
521 analogOffset: f32,
522 ) -> PICO_STATUS,
523 ::libloading::Error,
524 >,
525 pub ps3000aSetDigitalPort: Result<
526 unsafe extern "C" fn(
527 handle: i16,
528 port: PS3000A_DIGITAL_PORT,
529 enabled: i16,
530 logicLevel: i16,
531 ) -> PICO_STATUS,
532 ::libloading::Error,
533 >,
534 pub ps3000aSetBandwidthFilter: Result<
535 unsafe extern "C" fn(
536 handle: i16,
537 channel: PS3000A_CHANNEL,
538 bandwidth: PS3000A_BANDWIDTH_LIMITER,
539 ) -> PICO_STATUS,
540 ::libloading::Error,
541 >,
542 pub ps3000aSetNoOfCaptures: Result<
543 unsafe extern "C" fn(handle: i16, nCaptures: u32) -> PICO_STATUS,
544 ::libloading::Error,
545 >,
546 pub ps3000aGetTimebase: Result<
547 unsafe extern "C" fn(
548 handle: i16,
549 timebase: u32,
550 noSamples: i32,
551 timeIntervalNanoseconds: *mut i32,
552 oversample: i16,
553 maxSamples: *mut i32,
554 segmentIndex: u32,
555 ) -> PICO_STATUS,
556 ::libloading::Error,
557 >,
558 pub ps3000aGetTimebase2: Result<
559 unsafe extern "C" fn(
560 handle: i16,
561 timebase: u32,
562 noSamples: i32,
563 timeIntervalNanoseconds: *mut f32,
564 oversample: i16,
565 maxSamples: *mut i32,
566 segmentIndex: u32,
567 ) -> PICO_STATUS,
568 ::libloading::Error,
569 >,
570 pub ps3000aSetSigGenArbitrary: Result<
571 unsafe extern "C" fn(
572 handle: i16,
573 offsetVoltage: i32,
574 pkToPk: u32,
575 startDeltaPhase: u32,
576 stopDeltaPhase: u32,
577 deltaPhaseIncrement: u32,
578 dwellCount: u32,
579 arbitraryWaveform: *mut i16,
580 arbitraryWaveformSize: i32,
581 sweepType: PS3000A_SWEEP_TYPE,
582 operation: PS3000A_EXTRA_OPERATIONS,
583 indexMode: PS3000A_INDEX_MODE,
584 shots: u32,
585 sweeps: u32,
586 triggerType: PS3000A_SIGGEN_TRIG_TYPE,
587 triggerSource: PS3000A_SIGGEN_TRIG_SOURCE,
588 extInThreshold: i16,
589 ) -> PICO_STATUS,
590 ::libloading::Error,
591 >,
592 pub ps3000aSetSigGenBuiltIn: Result<
593 unsafe extern "C" fn(
594 handle: i16,
595 offsetVoltage: i32,
596 pkToPk: u32,
597 waveType: i16,
598 startFrequency: f32,
599 stopFrequency: f32,
600 increment: f32,
601 dwellTime: f32,
602 sweepType: PS3000A_SWEEP_TYPE,
603 operation: PS3000A_EXTRA_OPERATIONS,
604 shots: u32,
605 sweeps: u32,
606 triggerType: PS3000A_SIGGEN_TRIG_TYPE,
607 triggerSource: PS3000A_SIGGEN_TRIG_SOURCE,
608 extInThreshold: i16,
609 ) -> PICO_STATUS,
610 ::libloading::Error,
611 >,
612 pub ps3000aSetSigGenBuiltInV2: Result<
613 unsafe extern "C" fn(
614 handle: i16,
615 offsetVoltage: i32,
616 pkToPk: u32,
617 waveType: i16,
618 startFrequency: f64,
619 stopFrequency: f64,
620 increment: f64,
621 dwellTime: f64,
622 sweepType: PS3000A_SWEEP_TYPE,
623 operation: PS3000A_EXTRA_OPERATIONS,
624 shots: u32,
625 sweeps: u32,
626 triggerType: PS3000A_SIGGEN_TRIG_TYPE,
627 triggerSource: PS3000A_SIGGEN_TRIG_SOURCE,
628 extInThreshold: i16,
629 ) -> PICO_STATUS,
630 ::libloading::Error,
631 >,
632 pub ps3000aSetSigGenPropertiesArbitrary: Result<
633 unsafe extern "C" fn(
634 handle: i16,
635 startDeltaPhase: u32,
636 stopDeltaPhase: u32,
637 deltaPhaseIncrement: u32,
638 dwellCount: u32,
639 sweepType: PS3000A_SWEEP_TYPE,
640 shots: u32,
641 sweeps: u32,
642 triggerType: PS3000A_SIGGEN_TRIG_TYPE,
643 triggerSource: PS3000A_SIGGEN_TRIG_SOURCE,
644 extInThreshold: i16,
645 ) -> PICO_STATUS,
646 ::libloading::Error,
647 >,
648 pub ps3000aSetSigGenPropertiesBuiltIn: Result<
649 unsafe extern "C" fn(
650 handle: i16,
651 startFrequency: f64,
652 stopFrequency: f64,
653 increment: f64,
654 dwellTime: f64,
655 sweepType: PS3000A_SWEEP_TYPE,
656 shots: u32,
657 sweeps: u32,
658 triggerType: PS3000A_SIGGEN_TRIG_TYPE,
659 triggerSource: PS3000A_SIGGEN_TRIG_SOURCE,
660 extInThreshold: i16,
661 ) -> PICO_STATUS,
662 ::libloading::Error,
663 >,
664 pub ps3000aSigGenFrequencyToPhase: Result<
665 unsafe extern "C" fn(
666 handle: i16,
667 frequency: f64,
668 indexMode: PS3000A_INDEX_MODE,
669 bufferLength: u32,
670 phase: *mut u32,
671 ) -> PICO_STATUS,
672 ::libloading::Error,
673 >,
674 pub ps3000aSigGenArbitraryMinMaxValues: Result<
675 unsafe extern "C" fn(
676 handle: i16,
677 minArbitraryWaveformValue: *mut i16,
678 maxArbitraryWaveformValue: *mut i16,
679 minArbitraryWaveformSize: *mut u32,
680 maxArbitraryWaveformSize: *mut u32,
681 ) -> PICO_STATUS,
682 ::libloading::Error,
683 >,
684 pub ps3000aGetMaxEtsValues: Result<
685 unsafe extern "C" fn(
686 handle: i16,
687 etsCycles: *mut i16,
688 etsInterleave: *mut i16,
689 ) -> PICO_STATUS,
690 ::libloading::Error,
691 >,
692 pub ps3000aSigGenSoftwareControl:
693 Result<unsafe extern "C" fn(handle: i16, state: i16) -> PICO_STATUS, ::libloading::Error>,
694 pub ps3000aSetEts: Result<
695 unsafe extern "C" fn(
696 handle: i16,
697 mode: PS3000A_ETS_MODE,
698 etsCycles: i16,
699 etsInterleave: i16,
700 sampleTimePicoseconds: *mut i32,
701 ) -> PICO_STATUS,
702 ::libloading::Error,
703 >,
704 pub ps3000aSetSimpleTrigger: Result<
705 unsafe extern "C" fn(
706 handle: i16,
707 enable: i16,
708 source: PS3000A_CHANNEL,
709 threshold: i16,
710 direction: PS3000A_THRESHOLD_DIRECTION,
711 delay: u32,
712 autoTrigger_ms: i16,
713 ) -> PICO_STATUS,
714 ::libloading::Error,
715 >,
716 pub ps3000aSetTriggerDigitalPortProperties: Result<
717 unsafe extern "C" fn(
718 handle: i16,
719 directions: *mut PS3000A_DIGITAL_CHANNEL_DIRECTIONS,
720 nDirections: i16,
721 ) -> PICO_STATUS,
722 ::libloading::Error,
723 >,
724 pub ps3000aSetPulseWidthDigitalPortProperties: Result<
725 unsafe extern "C" fn(
726 handle: i16,
727 directions: *mut PS3000A_DIGITAL_CHANNEL_DIRECTIONS,
728 nDirections: i16,
729 ) -> PICO_STATUS,
730 ::libloading::Error,
731 >,
732 pub ps3000aSetTriggerChannelProperties: Result<
733 unsafe extern "C" fn(
734 handle: i16,
735 channelProperties: *mut PS3000A_TRIGGER_CHANNEL_PROPERTIES,
736 nChannelProperties: i16,
737 auxOutputEnable: i16,
738 autoTriggerMilliseconds: i32,
739 ) -> PICO_STATUS,
740 ::libloading::Error,
741 >,
742 pub ps3000aSetTriggerChannelConditions: Result<
743 unsafe extern "C" fn(
744 handle: i16,
745 conditions: *mut PS3000A_TRIGGER_CONDITIONS,
746 nConditions: i16,
747 ) -> PICO_STATUS,
748 ::libloading::Error,
749 >,
750 pub ps3000aSetTriggerChannelConditionsV2: Result<
751 unsafe extern "C" fn(
752 handle: i16,
753 conditions: *mut PS3000A_TRIGGER_CONDITIONS_V2,
754 nConditions: i16,
755 ) -> PICO_STATUS,
756 ::libloading::Error,
757 >,
758 pub ps3000aSetTriggerChannelDirections: Result<
759 unsafe extern "C" fn(
760 handle: i16,
761 channelA: PS3000A_THRESHOLD_DIRECTION,
762 channelB: PS3000A_THRESHOLD_DIRECTION,
763 channelC: PS3000A_THRESHOLD_DIRECTION,
764 channelD: PS3000A_THRESHOLD_DIRECTION,
765 ext: PS3000A_THRESHOLD_DIRECTION,
766 aux: PS3000A_THRESHOLD_DIRECTION,
767 ) -> PICO_STATUS,
768 ::libloading::Error,
769 >,
770 pub ps3000aSetTriggerDelay:
771 Result<unsafe extern "C" fn(handle: i16, delay: u32) -> PICO_STATUS, ::libloading::Error>,
772 pub ps3000aSetPulseWidthQualifier: Result<
773 unsafe extern "C" fn(
774 handle: i16,
775 conditions: *mut PS3000A_PWQ_CONDITIONS,
776 nConditions: i16,
777 direction: PS3000A_THRESHOLD_DIRECTION,
778 lower: u32,
779 upper: u32,
780 type_: PS3000A_PULSE_WIDTH_TYPE,
781 ) -> PICO_STATUS,
782 ::libloading::Error,
783 >,
784 pub ps3000aSetPulseWidthQualifierV2: Result<
785 unsafe extern "C" fn(
786 handle: i16,
787 conditions: *mut PS3000A_PWQ_CONDITIONS_V2,
788 nConditions: i16,
789 direction: PS3000A_THRESHOLD_DIRECTION,
790 lower: u32,
791 upper: u32,
792 type_: PS3000A_PULSE_WIDTH_TYPE,
793 ) -> PICO_STATUS,
794 ::libloading::Error,
795 >,
796 pub ps3000aIsTriggerOrPulseWidthQualifierEnabled: Result<
797 unsafe extern "C" fn(
798 handle: i16,
799 triggerEnabled: *mut i16,
800 pulseWidthQualifierEnabled: *mut i16,
801 ) -> PICO_STATUS,
802 ::libloading::Error,
803 >,
804 pub ps3000aGetTriggerTimeOffset: Result<
805 unsafe extern "C" fn(
806 handle: i16,
807 timeUpper: *mut u32,
808 timeLower: *mut u32,
809 timeUnits: *mut PS3000A_TIME_UNITS,
810 segmentIndex: u32,
811 ) -> PICO_STATUS,
812 ::libloading::Error,
813 >,
814 pub ps3000aGetTriggerTimeOffset64: Result<
815 unsafe extern "C" fn(
816 handle: i16,
817 time: *mut i64,
818 timeUnits: *mut PS3000A_TIME_UNITS,
819 segmentIndex: u32,
820 ) -> PICO_STATUS,
821 ::libloading::Error,
822 >,
823 pub ps3000aGetValuesTriggerTimeOffsetBulk: Result<
824 unsafe extern "C" fn(
825 handle: i16,
826 timesUpper: *mut u32,
827 timesLower: *mut u32,
828 timeUnits: *mut PS3000A_TIME_UNITS,
829 fromSegmentIndex: u32,
830 toSegmentIndex: u32,
831 ) -> PICO_STATUS,
832 ::libloading::Error,
833 >,
834 pub ps3000aGetValuesTriggerTimeOffsetBulk64: Result<
835 unsafe extern "C" fn(
836 handle: i16,
837 times: *mut i64,
838 timeUnits: *mut PS3000A_TIME_UNITS,
839 fromSegmentIndex: u32,
840 toSegmentIndex: u32,
841 ) -> PICO_STATUS,
842 ::libloading::Error,
843 >,
844 pub ps3000aGetNoOfCaptures: Result<
845 unsafe extern "C" fn(handle: i16, nCaptures: *mut u32) -> PICO_STATUS,
846 ::libloading::Error,
847 >,
848 pub ps3000aGetNoOfProcessedCaptures: Result<
849 unsafe extern "C" fn(handle: i16, nProcessedCaptures: *mut u32) -> PICO_STATUS,
850 ::libloading::Error,
851 >,
852 pub ps3000aSetDataBuffer: Result<
853 unsafe extern "C" fn(
854 handle: i16,
855 channelOrPort: PS3000A_CHANNEL,
856 buffer: *mut i16,
857 bufferLth: i32,
858 segmentIndex: u32,
859 mode: PS3000A_RATIO_MODE,
860 ) -> PICO_STATUS,
861 ::libloading::Error,
862 >,
863 pub ps3000aSetDataBuffers: Result<
864 unsafe extern "C" fn(
865 handle: i16,
866 channelOrPort: PS3000A_CHANNEL,
867 bufferMax: *mut i16,
868 bufferMin: *mut i16,
869 bufferLth: i32,
870 segmentIndex: u32,
871 mode: PS3000A_RATIO_MODE,
872 ) -> PICO_STATUS,
873 ::libloading::Error,
874 >,
875 pub ps3000aSetUnscaledDataBuffers: Result<
876 unsafe extern "C" fn(
877 handle: i16,
878 channelOrPort: PS3000A_CHANNEL,
879 bufferMax: *mut i8,
880 bufferMin: *mut i8,
881 bufferLth: i32,
882 segmentIndex: u32,
883 mode: PS3000A_RATIO_MODE,
884 ) -> PICO_STATUS,
885 ::libloading::Error,
886 >,
887 pub ps3000aSetEtsTimeBuffer: Result<
888 unsafe extern "C" fn(handle: i16, buffer: *mut i64, bufferLth: i32) -> PICO_STATUS,
889 ::libloading::Error,
890 >,
891 pub ps3000aSetEtsTimeBuffers: Result<
892 unsafe extern "C" fn(
893 handle: i16,
894 timeUpper: *mut u32,
895 timeLower: *mut u32,
896 bufferLth: i32,
897 ) -> PICO_STATUS,
898 ::libloading::Error,
899 >,
900 pub ps3000aIsReady: Result<
901 unsafe extern "C" fn(handle: i16, ready: *mut i16) -> PICO_STATUS,
902 ::libloading::Error,
903 >,
904 pub ps3000aRunBlock: Result<
905 unsafe extern "C" fn(
906 handle: i16,
907 noOfPreTriggerSamples: i32,
908 noOfPostTriggerSamples: i32,
909 timebase: u32,
910 oversample: i16,
911 timeIndisposedMs: *mut i32,
912 segmentIndex: u32,
913 lpReady: ps3000aBlockReady,
914 pParameter: *mut ::std::os::raw::c_void,
915 ) -> PICO_STATUS,
916 ::libloading::Error,
917 >,
918 pub ps3000aRunStreaming: Result<
919 unsafe extern "C" fn(
920 handle: i16,
921 sampleInterval: *mut u32,
922 sampleIntervalTimeUnits: PS3000A_TIME_UNITS,
923 maxPreTriggerSamples: u32,
924 maxPostPreTriggerSamples: u32,
925 autoStop: i16,
926 downSampleRatio: u32,
927 downSampleRatioMode: PS3000A_RATIO_MODE,
928 overviewBufferSize: u32,
929 ) -> PICO_STATUS,
930 ::libloading::Error,
931 >,
932 pub ps3000aGetStreamingLatestValues: Result<
933 unsafe extern "C" fn(
934 handle: i16,
935 lpPs3000aReady: ps3000aStreamingReady,
936 pParameter: *mut ::std::os::raw::c_void,
937 ) -> PICO_STATUS,
938 ::libloading::Error,
939 >,
940 pub ps3000aNoOfStreamingValues: Result<
941 unsafe extern "C" fn(handle: i16, noOfValues: *mut u32) -> PICO_STATUS,
942 ::libloading::Error,
943 >,
944 pub ps3000aGetMaxDownSampleRatio: Result<
945 unsafe extern "C" fn(
946 handle: i16,
947 noOfUnaggreatedSamples: u32,
948 maxDownSampleRatio: *mut u32,
949 downSampleRatioMode: PS3000A_RATIO_MODE,
950 segmentIndex: u32,
951 ) -> PICO_STATUS,
952 ::libloading::Error,
953 >,
954 pub ps3000aGetValues: Result<
955 unsafe extern "C" fn(
956 handle: i16,
957 startIndex: u32,
958 noOfSamples: *mut u32,
959 downSampleRatio: u32,
960 downSampleRatioMode: PS3000A_RATIO_MODE,
961 segmentIndex: u32,
962 overflow: *mut i16,
963 ) -> PICO_STATUS,
964 ::libloading::Error,
965 >,
966 pub ps3000aGetValuesBulk: Result<
967 unsafe extern "C" fn(
968 handle: i16,
969 noOfSamples: *mut u32,
970 fromSegmentIndex: u32,
971 toSegmentIndex: u32,
972 downSampleRatio: u32,
973 downSampleRatioMode: PS3000A_RATIO_MODE,
974 overflow: *mut i16,
975 ) -> PICO_STATUS,
976 ::libloading::Error,
977 >,
978 pub ps3000aGetValuesAsync: Result<
979 unsafe extern "C" fn(
980 handle: i16,
981 startIndex: u32,
982 noOfSamples: u32,
983 downSampleRatio: u32,
984 downSampleRatioMode: PS3000A_RATIO_MODE,
985 segmentIndex: u32,
986 lpDataReady: *mut ::std::os::raw::c_void,
987 pParameter: *mut ::std::os::raw::c_void,
988 ) -> PICO_STATUS,
989 ::libloading::Error,
990 >,
991 pub ps3000aGetValuesOverlapped: Result<
992 unsafe extern "C" fn(
993 handle: i16,
994 startIndex: u32,
995 noOfSamples: *mut u32,
996 downSampleRatio: u32,
997 downSampleRatioMode: PS3000A_RATIO_MODE,
998 segmentIndex: u32,
999 overflow: *mut i16,
1000 ) -> PICO_STATUS,
1001 ::libloading::Error,
1002 >,
1003 pub ps3000aGetValuesOverlappedBulk: Result<
1004 unsafe extern "C" fn(
1005 handle: i16,
1006 startIndex: u32,
1007 noOfSamples: *mut u32,
1008 downSampleRatio: u32,
1009 downSampleRatioMode: PS3000A_RATIO_MODE,
1010 fromSegmentIndex: u32,
1011 toSegmentIndex: u32,
1012 overflow: *mut i16,
1013 ) -> PICO_STATUS,
1014 ::libloading::Error,
1015 >,
1016 pub ps3000aGetTriggerInfoBulk: Result<
1017 unsafe extern "C" fn(
1018 handle: i16,
1019 triggerInfo: *mut PS3000A_TRIGGER_INFO,
1020 fromSegmentIndex: u32,
1021 toSegmentIndex: u32,
1022 ) -> PICO_STATUS,
1023 ::libloading::Error,
1024 >,
1025 pub ps3000aStop: Result<unsafe extern "C" fn(handle: i16) -> PICO_STATUS, ::libloading::Error>,
1026 pub ps3000aHoldOff: Result<
1027 unsafe extern "C" fn(handle: i16, holdoff: u64, type_: PS3000A_HOLDOFF_TYPE) -> PICO_STATUS,
1028 ::libloading::Error,
1029 >,
1030 pub ps3000aGetChannelInformation: Result<
1031 unsafe extern "C" fn(
1032 handle: i16,
1033 info: PS3000A_CHANNEL_INFO,
1034 probe: i32,
1035 ranges: *mut i32,
1036 length: *mut i32,
1037 channels: i32,
1038 ) -> PICO_STATUS,
1039 ::libloading::Error,
1040 >,
1041 pub ps3000aEnumerateUnits: Result<
1042 unsafe extern "C" fn(count: *mut i16, serials: *mut i8, serialLth: *mut i16) -> PICO_STATUS,
1043 ::libloading::Error,
1044 >,
1045 pub ps3000aPingUnit:
1046 Result<unsafe extern "C" fn(handle: i16) -> PICO_STATUS, ::libloading::Error>,
1047 pub ps3000aMaximumValue: Result<
1048 unsafe extern "C" fn(handle: i16, value: *mut i16) -> PICO_STATUS,
1049 ::libloading::Error,
1050 >,
1051 pub ps3000aMinimumValue: Result<
1052 unsafe extern "C" fn(handle: i16, value: *mut i16) -> PICO_STATUS,
1053 ::libloading::Error,
1054 >,
1055 pub ps3000aGetAnalogueOffset: Result<
1056 unsafe extern "C" fn(
1057 handle: i16,
1058 range: PS3000A_RANGE,
1059 coupling: PS3000A_COUPLING,
1060 maximumVoltage: *mut f32,
1061 minimumVoltage: *mut f32,
1062 ) -> PICO_STATUS,
1063 ::libloading::Error,
1064 >,
1065 pub ps3000aGetMaxSegments: Result<
1066 unsafe extern "C" fn(handle: i16, maxSegments: *mut u32) -> PICO_STATUS,
1067 ::libloading::Error,
1068 >,
1069 pub ps3000aChangePowerSource: Result<
1070 unsafe extern "C" fn(handle: i16, powerState: PICO_STATUS) -> PICO_STATUS,
1071 ::libloading::Error,
1072 >,
1073 pub ps3000aCurrentPowerSource:
1074 Result<unsafe extern "C" fn(handle: i16) -> PICO_STATUS, ::libloading::Error>,
1075 pub ps3000aQueryOutputEdgeDetect: Result<
1076 unsafe extern "C" fn(handle: i16, state: *mut i16) -> PICO_STATUS,
1077 ::libloading::Error,
1078 >,
1079 pub ps3000aSetOutputEdgeDetect:
1080 Result<unsafe extern "C" fn(handle: i16, state: i16) -> PICO_STATUS, ::libloading::Error>,
1081 pub ps3000aGetScalingValues: Result<
1082 unsafe extern "C" fn(
1083 handle: i16,
1084 scalingValues: *mut PS3000A_SCALING_FACTORS_VALUES,
1085 nChannels: i16,
1086 ) -> PICO_STATUS,
1087 ::libloading::Error,
1088 >,
1089}
1090impl PS3000ALoader {
1091 pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
1092 where
1093 P: AsRef<::std::ffi::OsStr>,
1094 {
1095 let __library = ::libloading::Library::new(path)?;
1096 let ps3000aApplyFix = __library.get(b"ps3000aApplyFix\0").map(|sym| *sym);
1097 let ps3000aOpenUnit = __library.get(b"ps3000aOpenUnit\0").map(|sym| *sym);
1098 let ps3000aOpenUnitAsync = __library.get(b"ps3000aOpenUnitAsync\0").map(|sym| *sym);
1099 let ps3000aOpenUnitProgress = __library.get(b"ps3000aOpenUnitProgress\0").map(|sym| *sym);
1100 let ps3000aGetUnitInfo = __library.get(b"ps3000aGetUnitInfo\0").map(|sym| *sym);
1101 let ps3000aFlashLed = __library.get(b"ps3000aFlashLed\0").map(|sym| *sym);
1102 let ps3000aCloseUnit = __library.get(b"ps3000aCloseUnit\0").map(|sym| *sym);
1103 let ps3000aMemorySegments = __library.get(b"ps3000aMemorySegments\0").map(|sym| *sym);
1104 let ps3000aSetChannel = __library.get(b"ps3000aSetChannel\0").map(|sym| *sym);
1105 let ps3000aSetDigitalPort = __library.get(b"ps3000aSetDigitalPort\0").map(|sym| *sym);
1106 let ps3000aSetBandwidthFilter = __library
1107 .get(b"ps3000aSetBandwidthFilter\0")
1108 .map(|sym| *sym);
1109 let ps3000aSetNoOfCaptures = __library.get(b"ps3000aSetNoOfCaptures\0").map(|sym| *sym);
1110 let ps3000aGetTimebase = __library.get(b"ps3000aGetTimebase\0").map(|sym| *sym);
1111 let ps3000aGetTimebase2 = __library.get(b"ps3000aGetTimebase2\0").map(|sym| *sym);
1112 let ps3000aSetSigGenArbitrary = __library
1113 .get(b"ps3000aSetSigGenArbitrary\0")
1114 .map(|sym| *sym);
1115 let ps3000aSetSigGenBuiltIn = __library.get(b"ps3000aSetSigGenBuiltIn\0").map(|sym| *sym);
1116 let ps3000aSetSigGenBuiltInV2 = __library
1117 .get(b"ps3000aSetSigGenBuiltInV2\0")
1118 .map(|sym| *sym);
1119 let ps3000aSetSigGenPropertiesArbitrary = __library
1120 .get(b"ps3000aSetSigGenPropertiesArbitrary\0")
1121 .map(|sym| *sym);
1122 let ps3000aSetSigGenPropertiesBuiltIn = __library
1123 .get(b"ps3000aSetSigGenPropertiesBuiltIn\0")
1124 .map(|sym| *sym);
1125 let ps3000aSigGenFrequencyToPhase = __library
1126 .get(b"ps3000aSigGenFrequencyToPhase\0")
1127 .map(|sym| *sym);
1128 let ps3000aSigGenArbitraryMinMaxValues = __library
1129 .get(b"ps3000aSigGenArbitraryMinMaxValues\0")
1130 .map(|sym| *sym);
1131 let ps3000aGetMaxEtsValues = __library.get(b"ps3000aGetMaxEtsValues\0").map(|sym| *sym);
1132 let ps3000aSigGenSoftwareControl = __library
1133 .get(b"ps3000aSigGenSoftwareControl\0")
1134 .map(|sym| *sym);
1135 let ps3000aSetEts = __library.get(b"ps3000aSetEts\0").map(|sym| *sym);
1136 let ps3000aSetSimpleTrigger = __library.get(b"ps3000aSetSimpleTrigger\0").map(|sym| *sym);
1137 let ps3000aSetTriggerDigitalPortProperties = __library
1138 .get(b"ps3000aSetTriggerDigitalPortProperties\0")
1139 .map(|sym| *sym);
1140 let ps3000aSetPulseWidthDigitalPortProperties = __library
1141 .get(b"ps3000aSetPulseWidthDigitalPortProperties\0")
1142 .map(|sym| *sym);
1143 let ps3000aSetTriggerChannelProperties = __library
1144 .get(b"ps3000aSetTriggerChannelProperties\0")
1145 .map(|sym| *sym);
1146 let ps3000aSetTriggerChannelConditions = __library
1147 .get(b"ps3000aSetTriggerChannelConditions\0")
1148 .map(|sym| *sym);
1149 let ps3000aSetTriggerChannelConditionsV2 = __library
1150 .get(b"ps3000aSetTriggerChannelConditionsV2\0")
1151 .map(|sym| *sym);
1152 let ps3000aSetTriggerChannelDirections = __library
1153 .get(b"ps3000aSetTriggerChannelDirections\0")
1154 .map(|sym| *sym);
1155 let ps3000aSetTriggerDelay = __library.get(b"ps3000aSetTriggerDelay\0").map(|sym| *sym);
1156 let ps3000aSetPulseWidthQualifier = __library
1157 .get(b"ps3000aSetPulseWidthQualifier\0")
1158 .map(|sym| *sym);
1159 let ps3000aSetPulseWidthQualifierV2 = __library
1160 .get(b"ps3000aSetPulseWidthQualifierV2\0")
1161 .map(|sym| *sym);
1162 let ps3000aIsTriggerOrPulseWidthQualifierEnabled = __library
1163 .get(b"ps3000aIsTriggerOrPulseWidthQualifierEnabled\0")
1164 .map(|sym| *sym);
1165 let ps3000aGetTriggerTimeOffset = __library
1166 .get(b"ps3000aGetTriggerTimeOffset\0")
1167 .map(|sym| *sym);
1168 let ps3000aGetTriggerTimeOffset64 = __library
1169 .get(b"ps3000aGetTriggerTimeOffset64\0")
1170 .map(|sym| *sym);
1171 let ps3000aGetValuesTriggerTimeOffsetBulk = __library
1172 .get(b"ps3000aGetValuesTriggerTimeOffsetBulk\0")
1173 .map(|sym| *sym);
1174 let ps3000aGetValuesTriggerTimeOffsetBulk64 = __library
1175 .get(b"ps3000aGetValuesTriggerTimeOffsetBulk64\0")
1176 .map(|sym| *sym);
1177 let ps3000aGetNoOfCaptures = __library.get(b"ps3000aGetNoOfCaptures\0").map(|sym| *sym);
1178 let ps3000aGetNoOfProcessedCaptures = __library
1179 .get(b"ps3000aGetNoOfProcessedCaptures\0")
1180 .map(|sym| *sym);
1181 let ps3000aSetDataBuffer = __library.get(b"ps3000aSetDataBuffer\0").map(|sym| *sym);
1182 let ps3000aSetDataBuffers = __library.get(b"ps3000aSetDataBuffers\0").map(|sym| *sym);
1183 let ps3000aSetUnscaledDataBuffers = __library
1184 .get(b"ps3000aSetUnscaledDataBuffers\0")
1185 .map(|sym| *sym);
1186 let ps3000aSetEtsTimeBuffer = __library.get(b"ps3000aSetEtsTimeBuffer\0").map(|sym| *sym);
1187 let ps3000aSetEtsTimeBuffers = __library.get(b"ps3000aSetEtsTimeBuffers\0").map(|sym| *sym);
1188 let ps3000aIsReady = __library.get(b"ps3000aIsReady\0").map(|sym| *sym);
1189 let ps3000aRunBlock = __library.get(b"ps3000aRunBlock\0").map(|sym| *sym);
1190 let ps3000aRunStreaming = __library.get(b"ps3000aRunStreaming\0").map(|sym| *sym);
1191 let ps3000aGetStreamingLatestValues = __library
1192 .get(b"ps3000aGetStreamingLatestValues\0")
1193 .map(|sym| *sym);
1194 let ps3000aNoOfStreamingValues = __library
1195 .get(b"ps3000aNoOfStreamingValues\0")
1196 .map(|sym| *sym);
1197 let ps3000aGetMaxDownSampleRatio = __library
1198 .get(b"ps3000aGetMaxDownSampleRatio\0")
1199 .map(|sym| *sym);
1200 let ps3000aGetValues = __library.get(b"ps3000aGetValues\0").map(|sym| *sym);
1201 let ps3000aGetValuesBulk = __library.get(b"ps3000aGetValuesBulk\0").map(|sym| *sym);
1202 let ps3000aGetValuesAsync = __library.get(b"ps3000aGetValuesAsync\0").map(|sym| *sym);
1203 let ps3000aGetValuesOverlapped = __library
1204 .get(b"ps3000aGetValuesOverlapped\0")
1205 .map(|sym| *sym);
1206 let ps3000aGetValuesOverlappedBulk = __library
1207 .get(b"ps3000aGetValuesOverlappedBulk\0")
1208 .map(|sym| *sym);
1209 let ps3000aGetTriggerInfoBulk = __library
1210 .get(b"ps3000aGetTriggerInfoBulk\0")
1211 .map(|sym| *sym);
1212 let ps3000aStop = __library.get(b"ps3000aStop\0").map(|sym| *sym);
1213 let ps3000aHoldOff = __library.get(b"ps3000aHoldOff\0").map(|sym| *sym);
1214 let ps3000aGetChannelInformation = __library
1215 .get(b"ps3000aGetChannelInformation\0")
1216 .map(|sym| *sym);
1217 let ps3000aEnumerateUnits = __library.get(b"ps3000aEnumerateUnits\0").map(|sym| *sym);
1218 let ps3000aPingUnit = __library.get(b"ps3000aPingUnit\0").map(|sym| *sym);
1219 let ps3000aMaximumValue = __library.get(b"ps3000aMaximumValue\0").map(|sym| *sym);
1220 let ps3000aMinimumValue = __library.get(b"ps3000aMinimumValue\0").map(|sym| *sym);
1221 let ps3000aGetAnalogueOffset = __library.get(b"ps3000aGetAnalogueOffset\0").map(|sym| *sym);
1222 let ps3000aGetMaxSegments = __library.get(b"ps3000aGetMaxSegments\0").map(|sym| *sym);
1223 let ps3000aChangePowerSource = __library.get(b"ps3000aChangePowerSource\0").map(|sym| *sym);
1224 let ps3000aCurrentPowerSource = __library
1225 .get(b"ps3000aCurrentPowerSource\0")
1226 .map(|sym| *sym);
1227 let ps3000aQueryOutputEdgeDetect = __library
1228 .get(b"ps3000aQueryOutputEdgeDetect\0")
1229 .map(|sym| *sym);
1230 let ps3000aSetOutputEdgeDetect = __library
1231 .get(b"ps3000aSetOutputEdgeDetect\0")
1232 .map(|sym| *sym);
1233 let ps3000aGetScalingValues = __library.get(b"ps3000aGetScalingValues\0").map(|sym| *sym);
1234 Ok(PS3000ALoader {
1235 __library,
1236 ps3000aApplyFix,
1237 ps3000aOpenUnit,
1238 ps3000aOpenUnitAsync,
1239 ps3000aOpenUnitProgress,
1240 ps3000aGetUnitInfo,
1241 ps3000aFlashLed,
1242 ps3000aCloseUnit,
1243 ps3000aMemorySegments,
1244 ps3000aSetChannel,
1245 ps3000aSetDigitalPort,
1246 ps3000aSetBandwidthFilter,
1247 ps3000aSetNoOfCaptures,
1248 ps3000aGetTimebase,
1249 ps3000aGetTimebase2,
1250 ps3000aSetSigGenArbitrary,
1251 ps3000aSetSigGenBuiltIn,
1252 ps3000aSetSigGenBuiltInV2,
1253 ps3000aSetSigGenPropertiesArbitrary,
1254 ps3000aSetSigGenPropertiesBuiltIn,
1255 ps3000aSigGenFrequencyToPhase,
1256 ps3000aSigGenArbitraryMinMaxValues,
1257 ps3000aGetMaxEtsValues,
1258 ps3000aSigGenSoftwareControl,
1259 ps3000aSetEts,
1260 ps3000aSetSimpleTrigger,
1261 ps3000aSetTriggerDigitalPortProperties,
1262 ps3000aSetPulseWidthDigitalPortProperties,
1263 ps3000aSetTriggerChannelProperties,
1264 ps3000aSetTriggerChannelConditions,
1265 ps3000aSetTriggerChannelConditionsV2,
1266 ps3000aSetTriggerChannelDirections,
1267 ps3000aSetTriggerDelay,
1268 ps3000aSetPulseWidthQualifier,
1269 ps3000aSetPulseWidthQualifierV2,
1270 ps3000aIsTriggerOrPulseWidthQualifierEnabled,
1271 ps3000aGetTriggerTimeOffset,
1272 ps3000aGetTriggerTimeOffset64,
1273 ps3000aGetValuesTriggerTimeOffsetBulk,
1274 ps3000aGetValuesTriggerTimeOffsetBulk64,
1275 ps3000aGetNoOfCaptures,
1276 ps3000aGetNoOfProcessedCaptures,
1277 ps3000aSetDataBuffer,
1278 ps3000aSetDataBuffers,
1279 ps3000aSetUnscaledDataBuffers,
1280 ps3000aSetEtsTimeBuffer,
1281 ps3000aSetEtsTimeBuffers,
1282 ps3000aIsReady,
1283 ps3000aRunBlock,
1284 ps3000aRunStreaming,
1285 ps3000aGetStreamingLatestValues,
1286 ps3000aNoOfStreamingValues,
1287 ps3000aGetMaxDownSampleRatio,
1288 ps3000aGetValues,
1289 ps3000aGetValuesBulk,
1290 ps3000aGetValuesAsync,
1291 ps3000aGetValuesOverlapped,
1292 ps3000aGetValuesOverlappedBulk,
1293 ps3000aGetTriggerInfoBulk,
1294 ps3000aStop,
1295 ps3000aHoldOff,
1296 ps3000aGetChannelInformation,
1297 ps3000aEnumerateUnits,
1298 ps3000aPingUnit,
1299 ps3000aMaximumValue,
1300 ps3000aMinimumValue,
1301 ps3000aGetAnalogueOffset,
1302 ps3000aGetMaxSegments,
1303 ps3000aChangePowerSource,
1304 ps3000aCurrentPowerSource,
1305 ps3000aQueryOutputEdgeDetect,
1306 ps3000aSetOutputEdgeDetect,
1307 ps3000aGetScalingValues,
1308 })
1309 }
1310 pub unsafe fn ps3000aApplyFix(&self, a: u32, b: u16) {
1311 let sym = self
1312 .ps3000aApplyFix
1313 .as_ref()
1314 .expect("Expected function, got error.");
1315 (sym)(a, b)
1316 }
1317 pub unsafe fn ps3000aOpenUnit(&self, handle: *mut i16, serial: *mut i8) -> PICO_STATUS {
1318 let sym = self
1319 .ps3000aOpenUnit
1320 .as_ref()
1321 .expect("Expected function, got error.");
1322 (sym)(handle, serial)
1323 }
1324 pub unsafe fn ps3000aOpenUnitAsync(&self, status: *mut i16, serial: *mut i8) -> PICO_STATUS {
1325 let sym = self
1326 .ps3000aOpenUnitAsync
1327 .as_ref()
1328 .expect("Expected function, got error.");
1329 (sym)(status, serial)
1330 }
1331 pub unsafe fn ps3000aOpenUnitProgress(
1332 &self,
1333 handle: *mut i16,
1334 progressPercent: *mut i16,
1335 complete: *mut i16,
1336 ) -> PICO_STATUS {
1337 let sym = self
1338 .ps3000aOpenUnitProgress
1339 .as_ref()
1340 .expect("Expected function, got error.");
1341 (sym)(handle, progressPercent, complete)
1342 }
1343 pub unsafe fn ps3000aGetUnitInfo(
1344 &self,
1345 handle: i16,
1346 string: *mut i8,
1347 stringLength: i16,
1348 requiredSize: *mut i16,
1349 info: PICO_INFO,
1350 ) -> PICO_STATUS {
1351 let sym = self
1352 .ps3000aGetUnitInfo
1353 .as_ref()
1354 .expect("Expected function, got error.");
1355 (sym)(handle, string, stringLength, requiredSize, info)
1356 }
1357 pub unsafe fn ps3000aFlashLed(&self, handle: i16, start: i16) -> PICO_STATUS {
1358 let sym = self
1359 .ps3000aFlashLed
1360 .as_ref()
1361 .expect("Expected function, got error.");
1362 (sym)(handle, start)
1363 }
1364 pub unsafe fn ps3000aCloseUnit(&self, handle: i16) -> PICO_STATUS {
1365 let sym = self
1366 .ps3000aCloseUnit
1367 .as_ref()
1368 .expect("Expected function, got error.");
1369 (sym)(handle)
1370 }
1371 pub unsafe fn ps3000aMemorySegments(
1372 &self,
1373 handle: i16,
1374 nSegments: u32,
1375 nMaxSamples: *mut i32,
1376 ) -> PICO_STATUS {
1377 let sym = self
1378 .ps3000aMemorySegments
1379 .as_ref()
1380 .expect("Expected function, got error.");
1381 (sym)(handle, nSegments, nMaxSamples)
1382 }
1383 pub unsafe fn ps3000aSetChannel(
1384 &self,
1385 handle: i16,
1386 channel: PS3000A_CHANNEL,
1387 enabled: i16,
1388 type_: PS3000A_COUPLING,
1389 range: PS3000A_RANGE,
1390 analogOffset: f32,
1391 ) -> PICO_STATUS {
1392 let sym = self
1393 .ps3000aSetChannel
1394 .as_ref()
1395 .expect("Expected function, got error.");
1396 (sym)(handle, channel, enabled, type_, range, analogOffset)
1397 }
1398 pub unsafe fn ps3000aSetDigitalPort(
1399 &self,
1400 handle: i16,
1401 port: PS3000A_DIGITAL_PORT,
1402 enabled: i16,
1403 logicLevel: i16,
1404 ) -> PICO_STATUS {
1405 let sym = self
1406 .ps3000aSetDigitalPort
1407 .as_ref()
1408 .expect("Expected function, got error.");
1409 (sym)(handle, port, enabled, logicLevel)
1410 }
1411 pub unsafe fn ps3000aSetBandwidthFilter(
1412 &self,
1413 handle: i16,
1414 channel: PS3000A_CHANNEL,
1415 bandwidth: PS3000A_BANDWIDTH_LIMITER,
1416 ) -> PICO_STATUS {
1417 let sym = self
1418 .ps3000aSetBandwidthFilter
1419 .as_ref()
1420 .expect("Expected function, got error.");
1421 (sym)(handle, channel, bandwidth)
1422 }
1423 pub unsafe fn ps3000aSetNoOfCaptures(&self, handle: i16, nCaptures: u32) -> PICO_STATUS {
1424 let sym = self
1425 .ps3000aSetNoOfCaptures
1426 .as_ref()
1427 .expect("Expected function, got error.");
1428 (sym)(handle, nCaptures)
1429 }
1430 pub unsafe fn ps3000aGetTimebase(
1431 &self,
1432 handle: i16,
1433 timebase: u32,
1434 noSamples: i32,
1435 timeIntervalNanoseconds: *mut i32,
1436 oversample: i16,
1437 maxSamples: *mut i32,
1438 segmentIndex: u32,
1439 ) -> PICO_STATUS {
1440 let sym = self
1441 .ps3000aGetTimebase
1442 .as_ref()
1443 .expect("Expected function, got error.");
1444 (sym)(
1445 handle,
1446 timebase,
1447 noSamples,
1448 timeIntervalNanoseconds,
1449 oversample,
1450 maxSamples,
1451 segmentIndex,
1452 )
1453 }
1454 pub unsafe fn ps3000aGetTimebase2(
1455 &self,
1456 handle: i16,
1457 timebase: u32,
1458 noSamples: i32,
1459 timeIntervalNanoseconds: *mut f32,
1460 oversample: i16,
1461 maxSamples: *mut i32,
1462 segmentIndex: u32,
1463 ) -> PICO_STATUS {
1464 let sym = self
1465 .ps3000aGetTimebase2
1466 .as_ref()
1467 .expect("Expected function, got error.");
1468 (sym)(
1469 handle,
1470 timebase,
1471 noSamples,
1472 timeIntervalNanoseconds,
1473 oversample,
1474 maxSamples,
1475 segmentIndex,
1476 )
1477 }
1478 pub unsafe fn ps3000aSetSigGenArbitrary(
1479 &self,
1480 handle: i16,
1481 offsetVoltage: i32,
1482 pkToPk: u32,
1483 startDeltaPhase: u32,
1484 stopDeltaPhase: u32,
1485 deltaPhaseIncrement: u32,
1486 dwellCount: u32,
1487 arbitraryWaveform: *mut i16,
1488 arbitraryWaveformSize: i32,
1489 sweepType: PS3000A_SWEEP_TYPE,
1490 operation: PS3000A_EXTRA_OPERATIONS,
1491 indexMode: PS3000A_INDEX_MODE,
1492 shots: u32,
1493 sweeps: u32,
1494 triggerType: PS3000A_SIGGEN_TRIG_TYPE,
1495 triggerSource: PS3000A_SIGGEN_TRIG_SOURCE,
1496 extInThreshold: i16,
1497 ) -> PICO_STATUS {
1498 let sym = self
1499 .ps3000aSetSigGenArbitrary
1500 .as_ref()
1501 .expect("Expected function, got error.");
1502 (sym)(
1503 handle,
1504 offsetVoltage,
1505 pkToPk,
1506 startDeltaPhase,
1507 stopDeltaPhase,
1508 deltaPhaseIncrement,
1509 dwellCount,
1510 arbitraryWaveform,
1511 arbitraryWaveformSize,
1512 sweepType,
1513 operation,
1514 indexMode,
1515 shots,
1516 sweeps,
1517 triggerType,
1518 triggerSource,
1519 extInThreshold,
1520 )
1521 }
1522 pub unsafe fn ps3000aSetSigGenBuiltIn(
1523 &self,
1524 handle: i16,
1525 offsetVoltage: i32,
1526 pkToPk: u32,
1527 waveType: i16,
1528 startFrequency: f32,
1529 stopFrequency: f32,
1530 increment: f32,
1531 dwellTime: f32,
1532 sweepType: PS3000A_SWEEP_TYPE,
1533 operation: PS3000A_EXTRA_OPERATIONS,
1534 shots: u32,
1535 sweeps: u32,
1536 triggerType: PS3000A_SIGGEN_TRIG_TYPE,
1537 triggerSource: PS3000A_SIGGEN_TRIG_SOURCE,
1538 extInThreshold: i16,
1539 ) -> PICO_STATUS {
1540 let sym = self
1541 .ps3000aSetSigGenBuiltIn
1542 .as_ref()
1543 .expect("Expected function, got error.");
1544 (sym)(
1545 handle,
1546 offsetVoltage,
1547 pkToPk,
1548 waveType,
1549 startFrequency,
1550 stopFrequency,
1551 increment,
1552 dwellTime,
1553 sweepType,
1554 operation,
1555 shots,
1556 sweeps,
1557 triggerType,
1558 triggerSource,
1559 extInThreshold,
1560 )
1561 }
1562 pub unsafe fn ps3000aSetSigGenBuiltInV2(
1563 &self,
1564 handle: i16,
1565 offsetVoltage: i32,
1566 pkToPk: u32,
1567 waveType: i16,
1568 startFrequency: f64,
1569 stopFrequency: f64,
1570 increment: f64,
1571 dwellTime: f64,
1572 sweepType: PS3000A_SWEEP_TYPE,
1573 operation: PS3000A_EXTRA_OPERATIONS,
1574 shots: u32,
1575 sweeps: u32,
1576 triggerType: PS3000A_SIGGEN_TRIG_TYPE,
1577 triggerSource: PS3000A_SIGGEN_TRIG_SOURCE,
1578 extInThreshold: i16,
1579 ) -> PICO_STATUS {
1580 let sym = self
1581 .ps3000aSetSigGenBuiltInV2
1582 .as_ref()
1583 .expect("Expected function, got error.");
1584 (sym)(
1585 handle,
1586 offsetVoltage,
1587 pkToPk,
1588 waveType,
1589 startFrequency,
1590 stopFrequency,
1591 increment,
1592 dwellTime,
1593 sweepType,
1594 operation,
1595 shots,
1596 sweeps,
1597 triggerType,
1598 triggerSource,
1599 extInThreshold,
1600 )
1601 }
1602 pub unsafe fn ps3000aSetSigGenPropertiesArbitrary(
1603 &self,
1604 handle: i16,
1605 startDeltaPhase: u32,
1606 stopDeltaPhase: u32,
1607 deltaPhaseIncrement: u32,
1608 dwellCount: u32,
1609 sweepType: PS3000A_SWEEP_TYPE,
1610 shots: u32,
1611 sweeps: u32,
1612 triggerType: PS3000A_SIGGEN_TRIG_TYPE,
1613 triggerSource: PS3000A_SIGGEN_TRIG_SOURCE,
1614 extInThreshold: i16,
1615 ) -> PICO_STATUS {
1616 let sym = self
1617 .ps3000aSetSigGenPropertiesArbitrary
1618 .as_ref()
1619 .expect("Expected function, got error.");
1620 (sym)(
1621 handle,
1622 startDeltaPhase,
1623 stopDeltaPhase,
1624 deltaPhaseIncrement,
1625 dwellCount,
1626 sweepType,
1627 shots,
1628 sweeps,
1629 triggerType,
1630 triggerSource,
1631 extInThreshold,
1632 )
1633 }
1634 pub unsafe fn ps3000aSetSigGenPropertiesBuiltIn(
1635 &self,
1636 handle: i16,
1637 startFrequency: f64,
1638 stopFrequency: f64,
1639 increment: f64,
1640 dwellTime: f64,
1641 sweepType: PS3000A_SWEEP_TYPE,
1642 shots: u32,
1643 sweeps: u32,
1644 triggerType: PS3000A_SIGGEN_TRIG_TYPE,
1645 triggerSource: PS3000A_SIGGEN_TRIG_SOURCE,
1646 extInThreshold: i16,
1647 ) -> PICO_STATUS {
1648 let sym = self
1649 .ps3000aSetSigGenPropertiesBuiltIn
1650 .as_ref()
1651 .expect("Expected function, got error.");
1652 (sym)(
1653 handle,
1654 startFrequency,
1655 stopFrequency,
1656 increment,
1657 dwellTime,
1658 sweepType,
1659 shots,
1660 sweeps,
1661 triggerType,
1662 triggerSource,
1663 extInThreshold,
1664 )
1665 }
1666 pub unsafe fn ps3000aSigGenFrequencyToPhase(
1667 &self,
1668 handle: i16,
1669 frequency: f64,
1670 indexMode: PS3000A_INDEX_MODE,
1671 bufferLength: u32,
1672 phase: *mut u32,
1673 ) -> PICO_STATUS {
1674 let sym = self
1675 .ps3000aSigGenFrequencyToPhase
1676 .as_ref()
1677 .expect("Expected function, got error.");
1678 (sym)(handle, frequency, indexMode, bufferLength, phase)
1679 }
1680 pub unsafe fn ps3000aSigGenArbitraryMinMaxValues(
1681 &self,
1682 handle: i16,
1683 minArbitraryWaveformValue: *mut i16,
1684 maxArbitraryWaveformValue: *mut i16,
1685 minArbitraryWaveformSize: *mut u32,
1686 maxArbitraryWaveformSize: *mut u32,
1687 ) -> PICO_STATUS {
1688 let sym = self
1689 .ps3000aSigGenArbitraryMinMaxValues
1690 .as_ref()
1691 .expect("Expected function, got error.");
1692 (sym)(
1693 handle,
1694 minArbitraryWaveformValue,
1695 maxArbitraryWaveformValue,
1696 minArbitraryWaveformSize,
1697 maxArbitraryWaveformSize,
1698 )
1699 }
1700 pub unsafe fn ps3000aGetMaxEtsValues(
1701 &self,
1702 handle: i16,
1703 etsCycles: *mut i16,
1704 etsInterleave: *mut i16,
1705 ) -> PICO_STATUS {
1706 let sym = self
1707 .ps3000aGetMaxEtsValues
1708 .as_ref()
1709 .expect("Expected function, got error.");
1710 (sym)(handle, etsCycles, etsInterleave)
1711 }
1712 pub unsafe fn ps3000aSigGenSoftwareControl(&self, handle: i16, state: i16) -> PICO_STATUS {
1713 let sym = self
1714 .ps3000aSigGenSoftwareControl
1715 .as_ref()
1716 .expect("Expected function, got error.");
1717 (sym)(handle, state)
1718 }
1719 pub unsafe fn ps3000aSetEts(
1720 &self,
1721 handle: i16,
1722 mode: PS3000A_ETS_MODE,
1723 etsCycles: i16,
1724 etsInterleave: i16,
1725 sampleTimePicoseconds: *mut i32,
1726 ) -> PICO_STATUS {
1727 let sym = self
1728 .ps3000aSetEts
1729 .as_ref()
1730 .expect("Expected function, got error.");
1731 (sym)(
1732 handle,
1733 mode,
1734 etsCycles,
1735 etsInterleave,
1736 sampleTimePicoseconds,
1737 )
1738 }
1739 pub unsafe fn ps3000aSetSimpleTrigger(
1740 &self,
1741 handle: i16,
1742 enable: i16,
1743 source: PS3000A_CHANNEL,
1744 threshold: i16,
1745 direction: PS3000A_THRESHOLD_DIRECTION,
1746 delay: u32,
1747 autoTrigger_ms: i16,
1748 ) -> PICO_STATUS {
1749 let sym = self
1750 .ps3000aSetSimpleTrigger
1751 .as_ref()
1752 .expect("Expected function, got error.");
1753 (sym)(
1754 handle,
1755 enable,
1756 source,
1757 threshold,
1758 direction,
1759 delay,
1760 autoTrigger_ms,
1761 )
1762 }
1763 pub unsafe fn ps3000aSetTriggerDigitalPortProperties(
1764 &self,
1765 handle: i16,
1766 directions: *mut PS3000A_DIGITAL_CHANNEL_DIRECTIONS,
1767 nDirections: i16,
1768 ) -> PICO_STATUS {
1769 let sym = self
1770 .ps3000aSetTriggerDigitalPortProperties
1771 .as_ref()
1772 .expect("Expected function, got error.");
1773 (sym)(handle, directions, nDirections)
1774 }
1775 pub unsafe fn ps3000aSetPulseWidthDigitalPortProperties(
1776 &self,
1777 handle: i16,
1778 directions: *mut PS3000A_DIGITAL_CHANNEL_DIRECTIONS,
1779 nDirections: i16,
1780 ) -> PICO_STATUS {
1781 let sym = self
1782 .ps3000aSetPulseWidthDigitalPortProperties
1783 .as_ref()
1784 .expect("Expected function, got error.");
1785 (sym)(handle, directions, nDirections)
1786 }
1787 pub unsafe fn ps3000aSetTriggerChannelProperties(
1788 &self,
1789 handle: i16,
1790 channelProperties: *mut PS3000A_TRIGGER_CHANNEL_PROPERTIES,
1791 nChannelProperties: i16,
1792 auxOutputEnable: i16,
1793 autoTriggerMilliseconds: i32,
1794 ) -> PICO_STATUS {
1795 let sym = self
1796 .ps3000aSetTriggerChannelProperties
1797 .as_ref()
1798 .expect("Expected function, got error.");
1799 (sym)(
1800 handle,
1801 channelProperties,
1802 nChannelProperties,
1803 auxOutputEnable,
1804 autoTriggerMilliseconds,
1805 )
1806 }
1807 pub unsafe fn ps3000aSetTriggerChannelConditions(
1808 &self,
1809 handle: i16,
1810 conditions: *mut PS3000A_TRIGGER_CONDITIONS,
1811 nConditions: i16,
1812 ) -> PICO_STATUS {
1813 let sym = self
1814 .ps3000aSetTriggerChannelConditions
1815 .as_ref()
1816 .expect("Expected function, got error.");
1817 (sym)(handle, conditions, nConditions)
1818 }
1819 pub unsafe fn ps3000aSetTriggerChannelConditionsV2(
1820 &self,
1821 handle: i16,
1822 conditions: *mut PS3000A_TRIGGER_CONDITIONS_V2,
1823 nConditions: i16,
1824 ) -> PICO_STATUS {
1825 let sym = self
1826 .ps3000aSetTriggerChannelConditionsV2
1827 .as_ref()
1828 .expect("Expected function, got error.");
1829 (sym)(handle, conditions, nConditions)
1830 }
1831 pub unsafe fn ps3000aSetTriggerChannelDirections(
1832 &self,
1833 handle: i16,
1834 channelA: PS3000A_THRESHOLD_DIRECTION,
1835 channelB: PS3000A_THRESHOLD_DIRECTION,
1836 channelC: PS3000A_THRESHOLD_DIRECTION,
1837 channelD: PS3000A_THRESHOLD_DIRECTION,
1838 ext: PS3000A_THRESHOLD_DIRECTION,
1839 aux: PS3000A_THRESHOLD_DIRECTION,
1840 ) -> PICO_STATUS {
1841 let sym = self
1842 .ps3000aSetTriggerChannelDirections
1843 .as_ref()
1844 .expect("Expected function, got error.");
1845 (sym)(handle, channelA, channelB, channelC, channelD, ext, aux)
1846 }
1847 pub unsafe fn ps3000aSetTriggerDelay(&self, handle: i16, delay: u32) -> PICO_STATUS {
1848 let sym = self
1849 .ps3000aSetTriggerDelay
1850 .as_ref()
1851 .expect("Expected function, got error.");
1852 (sym)(handle, delay)
1853 }
1854 pub unsafe fn ps3000aSetPulseWidthQualifier(
1855 &self,
1856 handle: i16,
1857 conditions: *mut PS3000A_PWQ_CONDITIONS,
1858 nConditions: i16,
1859 direction: PS3000A_THRESHOLD_DIRECTION,
1860 lower: u32,
1861 upper: u32,
1862 type_: PS3000A_PULSE_WIDTH_TYPE,
1863 ) -> PICO_STATUS {
1864 let sym = self
1865 .ps3000aSetPulseWidthQualifier
1866 .as_ref()
1867 .expect("Expected function, got error.");
1868 (sym)(
1869 handle,
1870 conditions,
1871 nConditions,
1872 direction,
1873 lower,
1874 upper,
1875 type_,
1876 )
1877 }
1878 pub unsafe fn ps3000aSetPulseWidthQualifierV2(
1879 &self,
1880 handle: i16,
1881 conditions: *mut PS3000A_PWQ_CONDITIONS_V2,
1882 nConditions: i16,
1883 direction: PS3000A_THRESHOLD_DIRECTION,
1884 lower: u32,
1885 upper: u32,
1886 type_: PS3000A_PULSE_WIDTH_TYPE,
1887 ) -> PICO_STATUS {
1888 let sym = self
1889 .ps3000aSetPulseWidthQualifierV2
1890 .as_ref()
1891 .expect("Expected function, got error.");
1892 (sym)(
1893 handle,
1894 conditions,
1895 nConditions,
1896 direction,
1897 lower,
1898 upper,
1899 type_,
1900 )
1901 }
1902 pub unsafe fn ps3000aIsTriggerOrPulseWidthQualifierEnabled(
1903 &self,
1904 handle: i16,
1905 triggerEnabled: *mut i16,
1906 pulseWidthQualifierEnabled: *mut i16,
1907 ) -> PICO_STATUS {
1908 let sym = self
1909 .ps3000aIsTriggerOrPulseWidthQualifierEnabled
1910 .as_ref()
1911 .expect("Expected function, got error.");
1912 (sym)(handle, triggerEnabled, pulseWidthQualifierEnabled)
1913 }
1914 pub unsafe fn ps3000aGetTriggerTimeOffset(
1915 &self,
1916 handle: i16,
1917 timeUpper: *mut u32,
1918 timeLower: *mut u32,
1919 timeUnits: *mut PS3000A_TIME_UNITS,
1920 segmentIndex: u32,
1921 ) -> PICO_STATUS {
1922 let sym = self
1923 .ps3000aGetTriggerTimeOffset
1924 .as_ref()
1925 .expect("Expected function, got error.");
1926 (sym)(handle, timeUpper, timeLower, timeUnits, segmentIndex)
1927 }
1928 pub unsafe fn ps3000aGetTriggerTimeOffset64(
1929 &self,
1930 handle: i16,
1931 time: *mut i64,
1932 timeUnits: *mut PS3000A_TIME_UNITS,
1933 segmentIndex: u32,
1934 ) -> PICO_STATUS {
1935 let sym = self
1936 .ps3000aGetTriggerTimeOffset64
1937 .as_ref()
1938 .expect("Expected function, got error.");
1939 (sym)(handle, time, timeUnits, segmentIndex)
1940 }
1941 pub unsafe fn ps3000aGetValuesTriggerTimeOffsetBulk(
1942 &self,
1943 handle: i16,
1944 timesUpper: *mut u32,
1945 timesLower: *mut u32,
1946 timeUnits: *mut PS3000A_TIME_UNITS,
1947 fromSegmentIndex: u32,
1948 toSegmentIndex: u32,
1949 ) -> PICO_STATUS {
1950 let sym = self
1951 .ps3000aGetValuesTriggerTimeOffsetBulk
1952 .as_ref()
1953 .expect("Expected function, got error.");
1954 (sym)(
1955 handle,
1956 timesUpper,
1957 timesLower,
1958 timeUnits,
1959 fromSegmentIndex,
1960 toSegmentIndex,
1961 )
1962 }
1963 pub unsafe fn ps3000aGetValuesTriggerTimeOffsetBulk64(
1964 &self,
1965 handle: i16,
1966 times: *mut i64,
1967 timeUnits: *mut PS3000A_TIME_UNITS,
1968 fromSegmentIndex: u32,
1969 toSegmentIndex: u32,
1970 ) -> PICO_STATUS {
1971 let sym = self
1972 .ps3000aGetValuesTriggerTimeOffsetBulk64
1973 .as_ref()
1974 .expect("Expected function, got error.");
1975 (sym)(handle, times, timeUnits, fromSegmentIndex, toSegmentIndex)
1976 }
1977 pub unsafe fn ps3000aGetNoOfCaptures(&self, handle: i16, nCaptures: *mut u32) -> PICO_STATUS {
1978 let sym = self
1979 .ps3000aGetNoOfCaptures
1980 .as_ref()
1981 .expect("Expected function, got error.");
1982 (sym)(handle, nCaptures)
1983 }
1984 pub unsafe fn ps3000aGetNoOfProcessedCaptures(
1985 &self,
1986 handle: i16,
1987 nProcessedCaptures: *mut u32,
1988 ) -> PICO_STATUS {
1989 let sym = self
1990 .ps3000aGetNoOfProcessedCaptures
1991 .as_ref()
1992 .expect("Expected function, got error.");
1993 (sym)(handle, nProcessedCaptures)
1994 }
1995 pub unsafe fn ps3000aSetDataBuffer(
1996 &self,
1997 handle: i16,
1998 channelOrPort: PS3000A_CHANNEL,
1999 buffer: *mut i16,
2000 bufferLth: i32,
2001 segmentIndex: u32,
2002 mode: PS3000A_RATIO_MODE,
2003 ) -> PICO_STATUS {
2004 let sym = self
2005 .ps3000aSetDataBuffer
2006 .as_ref()
2007 .expect("Expected function, got error.");
2008 (sym)(handle, channelOrPort, buffer, bufferLth, segmentIndex, mode)
2009 }
2010 pub unsafe fn ps3000aSetDataBuffers(
2011 &self,
2012 handle: i16,
2013 channelOrPort: PS3000A_CHANNEL,
2014 bufferMax: *mut i16,
2015 bufferMin: *mut i16,
2016 bufferLth: i32,
2017 segmentIndex: u32,
2018 mode: PS3000A_RATIO_MODE,
2019 ) -> PICO_STATUS {
2020 let sym = self
2021 .ps3000aSetDataBuffers
2022 .as_ref()
2023 .expect("Expected function, got error.");
2024 (sym)(
2025 handle,
2026 channelOrPort,
2027 bufferMax,
2028 bufferMin,
2029 bufferLth,
2030 segmentIndex,
2031 mode,
2032 )
2033 }
2034 pub unsafe fn ps3000aSetUnscaledDataBuffers(
2035 &self,
2036 handle: i16,
2037 channelOrPort: PS3000A_CHANNEL,
2038 bufferMax: *mut i8,
2039 bufferMin: *mut i8,
2040 bufferLth: i32,
2041 segmentIndex: u32,
2042 mode: PS3000A_RATIO_MODE,
2043 ) -> PICO_STATUS {
2044 let sym = self
2045 .ps3000aSetUnscaledDataBuffers
2046 .as_ref()
2047 .expect("Expected function, got error.");
2048 (sym)(
2049 handle,
2050 channelOrPort,
2051 bufferMax,
2052 bufferMin,
2053 bufferLth,
2054 segmentIndex,
2055 mode,
2056 )
2057 }
2058 pub unsafe fn ps3000aSetEtsTimeBuffer(
2059 &self,
2060 handle: i16,
2061 buffer: *mut i64,
2062 bufferLth: i32,
2063 ) -> PICO_STATUS {
2064 let sym = self
2065 .ps3000aSetEtsTimeBuffer
2066 .as_ref()
2067 .expect("Expected function, got error.");
2068 (sym)(handle, buffer, bufferLth)
2069 }
2070 pub unsafe fn ps3000aSetEtsTimeBuffers(
2071 &self,
2072 handle: i16,
2073 timeUpper: *mut u32,
2074 timeLower: *mut u32,
2075 bufferLth: i32,
2076 ) -> PICO_STATUS {
2077 let sym = self
2078 .ps3000aSetEtsTimeBuffers
2079 .as_ref()
2080 .expect("Expected function, got error.");
2081 (sym)(handle, timeUpper, timeLower, bufferLth)
2082 }
2083 pub unsafe fn ps3000aIsReady(&self, handle: i16, ready: *mut i16) -> PICO_STATUS {
2084 let sym = self
2085 .ps3000aIsReady
2086 .as_ref()
2087 .expect("Expected function, got error.");
2088 (sym)(handle, ready)
2089 }
2090 pub unsafe fn ps3000aRunBlock(
2091 &self,
2092 handle: i16,
2093 noOfPreTriggerSamples: i32,
2094 noOfPostTriggerSamples: i32,
2095 timebase: u32,
2096 oversample: i16,
2097 timeIndisposedMs: *mut i32,
2098 segmentIndex: u32,
2099 lpReady: ps3000aBlockReady,
2100 pParameter: *mut ::std::os::raw::c_void,
2101 ) -> PICO_STATUS {
2102 let sym = self
2103 .ps3000aRunBlock
2104 .as_ref()
2105 .expect("Expected function, got error.");
2106 (sym)(
2107 handle,
2108 noOfPreTriggerSamples,
2109 noOfPostTriggerSamples,
2110 timebase,
2111 oversample,
2112 timeIndisposedMs,
2113 segmentIndex,
2114 lpReady,
2115 pParameter,
2116 )
2117 }
2118 pub unsafe fn ps3000aRunStreaming(
2119 &self,
2120 handle: i16,
2121 sampleInterval: *mut u32,
2122 sampleIntervalTimeUnits: PS3000A_TIME_UNITS,
2123 maxPreTriggerSamples: u32,
2124 maxPostPreTriggerSamples: u32,
2125 autoStop: i16,
2126 downSampleRatio: u32,
2127 downSampleRatioMode: PS3000A_RATIO_MODE,
2128 overviewBufferSize: u32,
2129 ) -> PICO_STATUS {
2130 let sym = self
2131 .ps3000aRunStreaming
2132 .as_ref()
2133 .expect("Expected function, got error.");
2134 (sym)(
2135 handle,
2136 sampleInterval,
2137 sampleIntervalTimeUnits,
2138 maxPreTriggerSamples,
2139 maxPostPreTriggerSamples,
2140 autoStop,
2141 downSampleRatio,
2142 downSampleRatioMode,
2143 overviewBufferSize,
2144 )
2145 }
2146 pub unsafe fn ps3000aGetStreamingLatestValues(
2147 &self,
2148 handle: i16,
2149 lpPs3000aReady: ps3000aStreamingReady,
2150 pParameter: *mut ::std::os::raw::c_void,
2151 ) -> PICO_STATUS {
2152 let sym = self
2153 .ps3000aGetStreamingLatestValues
2154 .as_ref()
2155 .expect("Expected function, got error.");
2156 (sym)(handle, lpPs3000aReady, pParameter)
2157 }
2158 pub unsafe fn ps3000aNoOfStreamingValues(
2159 &self,
2160 handle: i16,
2161 noOfValues: *mut u32,
2162 ) -> PICO_STATUS {
2163 let sym = self
2164 .ps3000aNoOfStreamingValues
2165 .as_ref()
2166 .expect("Expected function, got error.");
2167 (sym)(handle, noOfValues)
2168 }
2169 pub unsafe fn ps3000aGetMaxDownSampleRatio(
2170 &self,
2171 handle: i16,
2172 noOfUnaggreatedSamples: u32,
2173 maxDownSampleRatio: *mut u32,
2174 downSampleRatioMode: PS3000A_RATIO_MODE,
2175 segmentIndex: u32,
2176 ) -> PICO_STATUS {
2177 let sym = self
2178 .ps3000aGetMaxDownSampleRatio
2179 .as_ref()
2180 .expect("Expected function, got error.");
2181 (sym)(
2182 handle,
2183 noOfUnaggreatedSamples,
2184 maxDownSampleRatio,
2185 downSampleRatioMode,
2186 segmentIndex,
2187 )
2188 }
2189 pub unsafe fn ps3000aGetValues(
2190 &self,
2191 handle: i16,
2192 startIndex: u32,
2193 noOfSamples: *mut u32,
2194 downSampleRatio: u32,
2195 downSampleRatioMode: PS3000A_RATIO_MODE,
2196 segmentIndex: u32,
2197 overflow: *mut i16,
2198 ) -> PICO_STATUS {
2199 let sym = self
2200 .ps3000aGetValues
2201 .as_ref()
2202 .expect("Expected function, got error.");
2203 (sym)(
2204 handle,
2205 startIndex,
2206 noOfSamples,
2207 downSampleRatio,
2208 downSampleRatioMode,
2209 segmentIndex,
2210 overflow,
2211 )
2212 }
2213 pub unsafe fn ps3000aGetValuesBulk(
2214 &self,
2215 handle: i16,
2216 noOfSamples: *mut u32,
2217 fromSegmentIndex: u32,
2218 toSegmentIndex: u32,
2219 downSampleRatio: u32,
2220 downSampleRatioMode: PS3000A_RATIO_MODE,
2221 overflow: *mut i16,
2222 ) -> PICO_STATUS {
2223 let sym = self
2224 .ps3000aGetValuesBulk
2225 .as_ref()
2226 .expect("Expected function, got error.");
2227 (sym)(
2228 handle,
2229 noOfSamples,
2230 fromSegmentIndex,
2231 toSegmentIndex,
2232 downSampleRatio,
2233 downSampleRatioMode,
2234 overflow,
2235 )
2236 }
2237 pub unsafe fn ps3000aGetValuesAsync(
2238 &self,
2239 handle: i16,
2240 startIndex: u32,
2241 noOfSamples: u32,
2242 downSampleRatio: u32,
2243 downSampleRatioMode: PS3000A_RATIO_MODE,
2244 segmentIndex: u32,
2245 lpDataReady: *mut ::std::os::raw::c_void,
2246 pParameter: *mut ::std::os::raw::c_void,
2247 ) -> PICO_STATUS {
2248 let sym = self
2249 .ps3000aGetValuesAsync
2250 .as_ref()
2251 .expect("Expected function, got error.");
2252 (sym)(
2253 handle,
2254 startIndex,
2255 noOfSamples,
2256 downSampleRatio,
2257 downSampleRatioMode,
2258 segmentIndex,
2259 lpDataReady,
2260 pParameter,
2261 )
2262 }
2263 pub unsafe fn ps3000aGetValuesOverlapped(
2264 &self,
2265 handle: i16,
2266 startIndex: u32,
2267 noOfSamples: *mut u32,
2268 downSampleRatio: u32,
2269 downSampleRatioMode: PS3000A_RATIO_MODE,
2270 segmentIndex: u32,
2271 overflow: *mut i16,
2272 ) -> PICO_STATUS {
2273 let sym = self
2274 .ps3000aGetValuesOverlapped
2275 .as_ref()
2276 .expect("Expected function, got error.");
2277 (sym)(
2278 handle,
2279 startIndex,
2280 noOfSamples,
2281 downSampleRatio,
2282 downSampleRatioMode,
2283 segmentIndex,
2284 overflow,
2285 )
2286 }
2287 pub unsafe fn ps3000aGetValuesOverlappedBulk(
2288 &self,
2289 handle: i16,
2290 startIndex: u32,
2291 noOfSamples: *mut u32,
2292 downSampleRatio: u32,
2293 downSampleRatioMode: PS3000A_RATIO_MODE,
2294 fromSegmentIndex: u32,
2295 toSegmentIndex: u32,
2296 overflow: *mut i16,
2297 ) -> PICO_STATUS {
2298 let sym = self
2299 .ps3000aGetValuesOverlappedBulk
2300 .as_ref()
2301 .expect("Expected function, got error.");
2302 (sym)(
2303 handle,
2304 startIndex,
2305 noOfSamples,
2306 downSampleRatio,
2307 downSampleRatioMode,
2308 fromSegmentIndex,
2309 toSegmentIndex,
2310 overflow,
2311 )
2312 }
2313 pub unsafe fn ps3000aGetTriggerInfoBulk(
2314 &self,
2315 handle: i16,
2316 triggerInfo: *mut PS3000A_TRIGGER_INFO,
2317 fromSegmentIndex: u32,
2318 toSegmentIndex: u32,
2319 ) -> PICO_STATUS {
2320 let sym = self
2321 .ps3000aGetTriggerInfoBulk
2322 .as_ref()
2323 .expect("Expected function, got error.");
2324 (sym)(handle, triggerInfo, fromSegmentIndex, toSegmentIndex)
2325 }
2326 pub unsafe fn ps3000aStop(&self, handle: i16) -> PICO_STATUS {
2327 let sym = self
2328 .ps3000aStop
2329 .as_ref()
2330 .expect("Expected function, got error.");
2331 (sym)(handle)
2332 }
2333 pub unsafe fn ps3000aHoldOff(
2334 &self,
2335 handle: i16,
2336 holdoff: u64,
2337 type_: PS3000A_HOLDOFF_TYPE,
2338 ) -> PICO_STATUS {
2339 let sym = self
2340 .ps3000aHoldOff
2341 .as_ref()
2342 .expect("Expected function, got error.");
2343 (sym)(handle, holdoff, type_)
2344 }
2345 pub unsafe fn ps3000aGetChannelInformation(
2346 &self,
2347 handle: i16,
2348 info: PS3000A_CHANNEL_INFO,
2349 probe: i32,
2350 ranges: *mut i32,
2351 length: *mut i32,
2352 channels: i32,
2353 ) -> PICO_STATUS {
2354 let sym = self
2355 .ps3000aGetChannelInformation
2356 .as_ref()
2357 .expect("Expected function, got error.");
2358 (sym)(handle, info, probe, ranges, length, channels)
2359 }
2360 pub unsafe fn ps3000aEnumerateUnits(
2361 &self,
2362 count: *mut i16,
2363 serials: *mut i8,
2364 serialLth: *mut i16,
2365 ) -> PICO_STATUS {
2366 let sym = self
2367 .ps3000aEnumerateUnits
2368 .as_ref()
2369 .expect("Expected function, got error.");
2370 (sym)(count, serials, serialLth)
2371 }
2372 pub unsafe fn ps3000aPingUnit(&self, handle: i16) -> PICO_STATUS {
2373 let sym = self
2374 .ps3000aPingUnit
2375 .as_ref()
2376 .expect("Expected function, got error.");
2377 (sym)(handle)
2378 }
2379 pub unsafe fn ps3000aMaximumValue(&self, handle: i16, value: *mut i16) -> PICO_STATUS {
2380 let sym = self
2381 .ps3000aMaximumValue
2382 .as_ref()
2383 .expect("Expected function, got error.");
2384 (sym)(handle, value)
2385 }
2386 pub unsafe fn ps3000aMinimumValue(&self, handle: i16, value: *mut i16) -> PICO_STATUS {
2387 let sym = self
2388 .ps3000aMinimumValue
2389 .as_ref()
2390 .expect("Expected function, got error.");
2391 (sym)(handle, value)
2392 }
2393 pub unsafe fn ps3000aGetAnalogueOffset(
2394 &self,
2395 handle: i16,
2396 range: PS3000A_RANGE,
2397 coupling: PS3000A_COUPLING,
2398 maximumVoltage: *mut f32,
2399 minimumVoltage: *mut f32,
2400 ) -> PICO_STATUS {
2401 let sym = self
2402 .ps3000aGetAnalogueOffset
2403 .as_ref()
2404 .expect("Expected function, got error.");
2405 (sym)(handle, range, coupling, maximumVoltage, minimumVoltage)
2406 }
2407 pub unsafe fn ps3000aGetMaxSegments(&self, handle: i16, maxSegments: *mut u32) -> PICO_STATUS {
2408 let sym = self
2409 .ps3000aGetMaxSegments
2410 .as_ref()
2411 .expect("Expected function, got error.");
2412 (sym)(handle, maxSegments)
2413 }
2414 pub unsafe fn ps3000aChangePowerSource(
2415 &self,
2416 handle: i16,
2417 powerState: PICO_STATUS,
2418 ) -> PICO_STATUS {
2419 let sym = self
2420 .ps3000aChangePowerSource
2421 .as_ref()
2422 .expect("Expected function, got error.");
2423 (sym)(handle, powerState)
2424 }
2425 pub unsafe fn ps3000aCurrentPowerSource(&self, handle: i16) -> PICO_STATUS {
2426 let sym = self
2427 .ps3000aCurrentPowerSource
2428 .as_ref()
2429 .expect("Expected function, got error.");
2430 (sym)(handle)
2431 }
2432 pub unsafe fn ps3000aQueryOutputEdgeDetect(&self, handle: i16, state: *mut i16) -> PICO_STATUS {
2433 let sym = self
2434 .ps3000aQueryOutputEdgeDetect
2435 .as_ref()
2436 .expect("Expected function, got error.");
2437 (sym)(handle, state)
2438 }
2439 pub unsafe fn ps3000aSetOutputEdgeDetect(&self, handle: i16, state: i16) -> PICO_STATUS {
2440 let sym = self
2441 .ps3000aSetOutputEdgeDetect
2442 .as_ref()
2443 .expect("Expected function, got error.");
2444 (sym)(handle, state)
2445 }
2446 pub unsafe fn ps3000aGetScalingValues(
2447 &self,
2448 handle: i16,
2449 scalingValues: *mut PS3000A_SCALING_FACTORS_VALUES,
2450 nChannels: i16,
2451 ) -> PICO_STATUS {
2452 let sym = self
2453 .ps3000aGetScalingValues
2454 .as_ref()
2455 .expect("Expected function, got error.");
2456 (sym)(handle, scalingValues, nChannels)
2457 }
2458}