pico_sys_dynamic/
ps2000a.rs

1pub const PICO_DRIVER_VERSION: u32 = 0;
2pub const PICO_USB_VERSION: u32 = 1;
3pub const PICO_HARDWARE_VERSION: u32 = 2;
4pub const PICO_VARIANT_INFO: u32 = 3;
5pub const PICO_BATCH_AND_SERIAL: u32 = 4;
6pub const PICO_CAL_DATE: u32 = 5;
7pub const PICO_KERNEL_VERSION: u32 = 6;
8pub const PICO_DIGITAL_HARDWARE_VERSION: u32 = 7;
9pub const PICO_ANALOGUE_HARDWARE_VERSION: u32 = 8;
10pub const PICO_FIRMWARE_VERSION_1: u32 = 9;
11pub const PICO_FIRMWARE_VERSION_2: u32 = 10;
12pub const PICO_MAC_ADDRESS: u32 = 11;
13pub const PICO_SHADOW_CAL: u32 = 12;
14pub const PICO_IPP_VERSION: u32 = 13;
15pub const PICO_DRIVER_PATH: u32 = 14;
16pub const PICO_FIRMWARE_VERSION_3: u32 = 15;
17pub const PICO_FRONT_PANEL_FIRMWARE_VERSION: u32 = 16;
18pub const PICO_OK: u32 = 0;
19pub const PICO_MAX_UNITS_OPENED: u32 = 1;
20pub const PICO_MEMORY_FAIL: u32 = 2;
21pub const PICO_NOT_FOUND: u32 = 3;
22pub const PICO_FW_FAIL: u32 = 4;
23pub const PICO_OPEN_OPERATION_IN_PROGRESS: u32 = 5;
24pub const PICO_OPERATION_FAILED: u32 = 6;
25pub const PICO_NOT_RESPONDING: u32 = 7;
26pub const PICO_CONFIG_FAIL: u32 = 8;
27pub const PICO_KERNEL_DRIVER_TOO_OLD: u32 = 9;
28pub const PICO_EEPROM_CORRUPT: u32 = 10;
29pub const PICO_OS_NOT_SUPPORTED: u32 = 11;
30pub const PICO_INVALID_HANDLE: u32 = 12;
31pub const PICO_INVALID_PARAMETER: u32 = 13;
32pub const PICO_INVALID_TIMEBASE: u32 = 14;
33pub const PICO_INVALID_VOLTAGE_RANGE: u32 = 15;
34pub const PICO_INVALID_CHANNEL: u32 = 16;
35pub const PICO_INVALID_TRIGGER_CHANNEL: u32 = 17;
36pub const PICO_INVALID_CONDITION_CHANNEL: u32 = 18;
37pub const PICO_NO_SIGNAL_GENERATOR: u32 = 19;
38pub const PICO_STREAMING_FAILED: u32 = 20;
39pub const PICO_BLOCK_MODE_FAILED: u32 = 21;
40pub const PICO_NULL_PARAMETER: u32 = 22;
41pub const PICO_ETS_MODE_SET: u32 = 23;
42pub const PICO_DATA_NOT_AVAILABLE: u32 = 24;
43pub const PICO_STRING_BUFFER_TO_SMALL: u32 = 25;
44pub const PICO_ETS_NOT_SUPPORTED: u32 = 26;
45pub const PICO_AUTO_TRIGGER_TIME_TO_SHORT: u32 = 27;
46pub const PICO_BUFFER_STALL: u32 = 28;
47pub const PICO_TOO_MANY_SAMPLES: u32 = 29;
48pub const PICO_TOO_MANY_SEGMENTS: u32 = 30;
49pub const PICO_PULSE_WIDTH_QUALIFIER: u32 = 31;
50pub const PICO_DELAY: u32 = 32;
51pub const PICO_SOURCE_DETAILS: u32 = 33;
52pub const PICO_CONDITIONS: u32 = 34;
53pub const PICO_USER_CALLBACK: u32 = 35;
54pub const PICO_DEVICE_SAMPLING: u32 = 36;
55pub const PICO_NO_SAMPLES_AVAILABLE: u32 = 37;
56pub const PICO_SEGMENT_OUT_OF_RANGE: u32 = 38;
57pub const PICO_BUSY: u32 = 39;
58pub const PICO_STARTINDEX_INVALID: u32 = 40;
59pub const PICO_INVALID_INFO: u32 = 41;
60pub const PICO_INFO_UNAVAILABLE: u32 = 42;
61pub const PICO_INVALID_SAMPLE_INTERVAL: u32 = 43;
62pub const PICO_TRIGGER_ERROR: u32 = 44;
63pub const PICO_MEMORY: u32 = 45;
64pub const PICO_SIG_GEN_PARAM: u32 = 46;
65pub const PICO_SHOTS_SWEEPS_WARNING: u32 = 47;
66pub const PICO_SIGGEN_TRIGGER_SOURCE: u32 = 48;
67pub const PICO_AUX_OUTPUT_CONFLICT: u32 = 49;
68pub const PICO_AUX_OUTPUT_ETS_CONFLICT: u32 = 50;
69pub const PICO_WARNING_EXT_THRESHOLD_CONFLICT: u32 = 51;
70pub const PICO_WARNING_AUX_OUTPUT_CONFLICT: u32 = 52;
71pub const PICO_SIGGEN_OUTPUT_OVER_VOLTAGE: u32 = 53;
72pub const PICO_DELAY_NULL: u32 = 54;
73pub const PICO_INVALID_BUFFER: u32 = 55;
74pub const PICO_SIGGEN_OFFSET_VOLTAGE: u32 = 56;
75pub const PICO_SIGGEN_PK_TO_PK: u32 = 57;
76pub const PICO_CANCELLED: u32 = 58;
77pub const PICO_SEGMENT_NOT_USED: u32 = 59;
78pub const PICO_INVALID_CALL: u32 = 60;
79pub const PICO_GET_VALUES_INTERRUPTED: u32 = 61;
80pub const PICO_NOT_USED: u32 = 63;
81pub const PICO_INVALID_SAMPLERATIO: u32 = 64;
82pub const PICO_INVALID_STATE: u32 = 65;
83pub const PICO_NOT_ENOUGH_SEGMENTS: u32 = 66;
84pub const PICO_DRIVER_FUNCTION: u32 = 67;
85pub const PICO_RESERVED: u32 = 68;
86pub const PICO_INVALID_COUPLING: u32 = 69;
87pub const PICO_BUFFERS_NOT_SET: u32 = 70;
88pub const PICO_RATIO_MODE_NOT_SUPPORTED: u32 = 71;
89pub const PICO_RAPID_NOT_SUPPORT_AGGREGATION: u32 = 72;
90pub const PICO_INVALID_TRIGGER_PROPERTY: u32 = 73;
91pub const PICO_INTERFACE_NOT_CONNECTED: u32 = 74;
92pub const PICO_RESISTANCE_AND_PROBE_NOT_ALLOWED: u32 = 75;
93pub const PICO_POWER_FAILED: u32 = 76;
94pub const PICO_SIGGEN_WAVEFORM_SETUP_FAILED: u32 = 77;
95pub const PICO_FPGA_FAIL: u32 = 78;
96pub const PICO_POWER_MANAGER: u32 = 79;
97pub const PICO_INVALID_ANALOGUE_OFFSET: u32 = 80;
98pub const PICO_PLL_LOCK_FAILED: u32 = 81;
99pub const PICO_ANALOG_BOARD: u32 = 82;
100pub const PICO_CONFIG_FAIL_AWG: u32 = 83;
101pub const PICO_INITIALISE_FPGA: u32 = 84;
102pub const PICO_EXTERNAL_FREQUENCY_INVALID: u32 = 86;
103pub const PICO_CLOCK_CHANGE_ERROR: u32 = 87;
104pub const PICO_TRIGGER_AND_EXTERNAL_CLOCK_CLASH: u32 = 88;
105pub const PICO_PWQ_AND_EXTERNAL_CLOCK_CLASH: u32 = 89;
106pub const PICO_UNABLE_TO_OPEN_SCALING_FILE: u32 = 90;
107pub const PICO_MEMORY_CLOCK_FREQUENCY: u32 = 91;
108pub const PICO_I2C_NOT_RESPONDING: u32 = 92;
109pub const PICO_NO_CAPTURES_AVAILABLE: u32 = 93;
110pub const PICO_TOO_MANY_TRIGGER_CHANNELS_IN_USE: u32 = 95;
111pub const PICO_INVALID_TRIGGER_DIRECTION: u32 = 96;
112pub const PICO_INVALID_TRIGGER_STATES: u32 = 97;
113pub const PICO_NOT_USED_IN_THIS_CAPTURE_MODE: u32 = 94;
114pub const PICO_GET_DATA_ACTIVE: u32 = 259;
115pub const PICO_IP_NETWORKED: u32 = 260;
116pub const PICO_INVALID_IP_ADDRESS: u32 = 261;
117pub const PICO_IPSOCKET_FAILED: u32 = 262;
118pub const PICO_IPSOCKET_TIMEDOUT: u32 = 263;
119pub const PICO_SETTINGS_FAILED: u32 = 264;
120pub const PICO_NETWORK_FAILED: u32 = 265;
121pub const PICO_WS2_32_DLL_NOT_LOADED: u32 = 266;
122pub const PICO_INVALID_IP_PORT: u32 = 267;
123pub const PICO_COUPLING_NOT_SUPPORTED: u32 = 268;
124pub const PICO_BANDWIDTH_NOT_SUPPORTED: u32 = 269;
125pub const PICO_INVALID_BANDWIDTH: u32 = 270;
126pub const PICO_AWG_NOT_SUPPORTED: u32 = 271;
127pub const PICO_ETS_NOT_RUNNING: u32 = 272;
128pub const PICO_SIG_GEN_WHITENOISE_NOT_SUPPORTED: u32 = 273;
129pub const PICO_SIG_GEN_WAVETYPE_NOT_SUPPORTED: u32 = 274;
130pub const PICO_INVALID_DIGITAL_PORT: u32 = 275;
131pub const PICO_INVALID_DIGITAL_CHANNEL: u32 = 276;
132pub const PICO_INVALID_DIGITAL_TRIGGER_DIRECTION: u32 = 277;
133pub const PICO_SIG_GEN_PRBS_NOT_SUPPORTED: u32 = 278;
134pub const PICO_ETS_NOT_AVAILABLE_WITH_LOGIC_CHANNELS: u32 = 279;
135pub const PICO_WARNING_REPEAT_VALUE: u32 = 280;
136pub const PICO_POWER_SUPPLY_CONNECTED: u32 = 281;
137pub const PICO_POWER_SUPPLY_NOT_CONNECTED: u32 = 282;
138pub const PICO_POWER_SUPPLY_REQUEST_INVALID: u32 = 283;
139pub const PICO_POWER_SUPPLY_UNDERVOLTAGE: u32 = 284;
140pub const PICO_CAPTURING_DATA: u32 = 285;
141pub const PICO_USB3_0_DEVICE_NON_USB3_0_PORT: u32 = 286;
142pub const PICO_NOT_SUPPORTED_BY_THIS_DEVICE: u32 = 287;
143pub const PICO_INVALID_DEVICE_RESOLUTION: u32 = 288;
144pub const PICO_INVALID_NUMBER_CHANNELS_FOR_RESOLUTION: u32 = 289;
145pub const PICO_CHANNEL_DISABLED_DUE_TO_USB_POWERED: u32 = 290;
146pub const PICO_SIGGEN_DC_VOLTAGE_NOT_CONFIGURABLE: u32 = 291;
147pub const PICO_NO_TRIGGER_ENABLED_FOR_TRIGGER_IN_PRE_TRIG: u32 = 292;
148pub const PICO_TRIGGER_WITHIN_PRE_TRIG_NOT_ARMED: u32 = 293;
149pub const PICO_TRIGGER_WITHIN_PRE_NOT_ALLOWED_WITH_DELAY: u32 = 294;
150pub const PICO_TRIGGER_INDEX_UNAVAILABLE: u32 = 295;
151pub const PICO_AWG_CLOCK_FREQUENCY: u32 = 296;
152pub const PICO_TOO_MANY_CHANNELS_IN_USE: u32 = 297;
153pub const PICO_NULL_CONDITIONS: u32 = 298;
154pub const PICO_DUPLICATE_CONDITION_SOURCE: u32 = 299;
155pub const PICO_INVALID_CONDITION_INFO: u32 = 300;
156pub const PICO_SETTINGS_READ_FAILED: u32 = 301;
157pub const PICO_SETTINGS_WRITE_FAILED: u32 = 302;
158pub const PICO_ARGUMENT_OUT_OF_RANGE: u32 = 303;
159pub const PICO_HARDWARE_VERSION_NOT_SUPPORTED: u32 = 304;
160pub const PICO_DIGITAL_HARDWARE_VERSION_NOT_SUPPORTED: u32 = 305;
161pub const PICO_ANALOGUE_HARDWARE_VERSION_NOT_SUPPORTED: u32 = 306;
162pub const PICO_UNABLE_TO_CONVERT_TO_RESISTANCE: u32 = 307;
163pub const PICO_DUPLICATED_CHANNEL: u32 = 308;
164pub const PICO_INVALID_RESISTANCE_CONVERSION: u32 = 309;
165pub const PICO_INVALID_VALUE_IN_MAX_BUFFER: u32 = 310;
166pub const PICO_INVALID_VALUE_IN_MIN_BUFFER: u32 = 311;
167pub const PICO_SIGGEN_FREQUENCY_OUT_OF_RANGE: u32 = 312;
168pub const PICO_EEPROM2_CORRUPT: u32 = 313;
169pub const PICO_EEPROM2_FAIL: u32 = 314;
170pub const PICO_SERIAL_BUFFER_TOO_SMALL: u32 = 315;
171pub const PICO_SIGGEN_TRIGGER_AND_EXTERNAL_CLOCK_CLASH: u32 = 316;
172pub const PICO_WARNING_SIGGEN_AUXIO_TRIGGER_DISABLED: u32 = 317;
173pub const PICO_SIGGEN_GATING_AUXIO_NOT_AVAILABLE: u32 = 318;
174pub const PICO_SIGGEN_GATING_AUXIO_ENABLED: u32 = 319;
175pub const PICO_RESOURCE_ERROR: u32 = 320;
176pub const PICO_TEMPERATURE_TYPE_INVALID: u32 = 321;
177pub const PICO_TEMPERATURE_TYPE_NOT_SUPPORTED: u32 = 322;
178pub const PICO_TIMEOUT: u32 = 323;
179pub const PICO_DEVICE_NOT_FUNCTIONING: u32 = 324;
180pub const PICO_INTERNAL_ERROR: u32 = 325;
181pub const PICO_MULTIPLE_DEVICES_FOUND: u32 = 326;
182pub const PICO_WARNING_NUMBER_OF_SEGMENTS_REDUCED: u32 = 327;
183pub const PICO_CAL_PINS_STATES: u32 = 328;
184pub const PICO_CAL_PINS_FREQUENCY: u32 = 329;
185pub const PICO_CAL_PINS_AMPLITUDE: u32 = 330;
186pub const PICO_CAL_PINS_WAVETYPE: u32 = 331;
187pub const PICO_CAL_PINS_OFFSET: u32 = 332;
188pub const PICO_PROBE_FAULT: u32 = 333;
189pub const PICO_PROBE_IDENTITY_UNKNOWN: u32 = 334;
190pub const PICO_PROBE_POWER_DC_POWER_SUPPLY_REQUIRED: u32 = 335;
191pub const PICO_PROBE_NOT_POWERED_WITH_DC_POWER_SUPPLY: u32 = 336;
192pub const PICO_PROBE_CONFIG_FAILURE: u32 = 337;
193pub const PICO_PROBE_INTERACTION_CALLBACK: u32 = 338;
194pub const PICO_UNKNOWN_INTELLIGENT_PROBE: u32 = 339;
195pub const PICO_INTELLIGENT_PROBE_CORRUPT: u32 = 340;
196pub const PICO_PROBE_COLLECTION_NOT_STARTED: u32 = 341;
197pub const PICO_PROBE_POWER_CONSUMPTION_EXCEEDED: u32 = 342;
198pub const PICO_WARNING_PROBE_CHANNEL_OUT_OF_SYNC: u32 = 343;
199pub const PICO_ENDPOINT_MISSING: u32 = 344;
200pub const PICO_UNKNOWN_ENDPOINT_REQUEST: u32 = 345;
201pub const PICO_ADC_TYPE_ERROR: u32 = 346;
202pub const PICO_FPGA2_FAILED: u32 = 347;
203pub const PICO_FPGA2_DEVICE_STATUS: u32 = 348;
204pub const PICO_ENABLE_PROGRAM_FPGA2_FAILED: u32 = 349;
205pub const PICO_NO_CHANNELS_OR_PORTS_ENABLED: u32 = 350;
206pub const PICO_INVALID_RATIO_MODE: u32 = 351;
207pub const PICO_READS_NOT_SUPPORTED_IN_CURRENT_CAPTURE_MODE: u32 = 352;
208pub const PICO_TRIGGER_READ_SELECTION_CHECK_FAILED: u32 = 353;
209pub const PICO_DATA_READ1_SELECTION_CHECK_FAILED: u32 = 354;
210pub const PICO_DATA_READ2_SELECTION_CHECK_FAILED: u32 = 356;
211pub const PICO_DATA_READ3_SELECTION_CHECK_FAILED: u32 = 360;
212pub const PICO_READ_SELECTION_OUT_OF_RANGE: u32 = 368;
213pub const PICO_MULTIPLE_RATIO_MODES: u32 = 369;
214pub const PICO_NO_SAMPLES_READ: u32 = 370;
215pub const PICO_RATIO_MODE_NOT_REQUESTED: u32 = 371;
216pub const PICO_NO_USER_READ_REQUESTS_SET: u32 = 372;
217pub const PICO_ZERO_SAMPLES_INVALID: u32 = 373;
218pub const PICO_ANALOGUE_HARDWARE_MISSING: u32 = 374;
219pub const PICO_ANALOGUE_HARDWARE_PINS: u32 = 375;
220pub const PICO_ANALOGUE_HARDWARE_SMPS_FAULT: u32 = 376;
221pub const PICO_DIGITAL_ANALOGUE_HARDWARE_CONFLICT: u32 = 377;
222pub const PICO_RATIO_MODE_BUFFER_NOT_SET: u32 = 378;
223pub const PICO_RESOLUTION_NOT_SUPPORTED_BY_VARIANT: u32 = 379;
224pub const PICO_THRESHOLD_OUT_OF_RANGE: u32 = 380;
225pub const PICO_INVALID_SIMPLE_TRIGGER_DIRECTION: u32 = 381;
226pub const PICO_AUX_NOT_SUPPORTED: u32 = 382;
227pub const PICO_NULL_DIRECTIONS: u32 = 383;
228pub const PICO_NULL_CHANNEL_PROPERTIES: u32 = 384;
229pub const PICO_TRIGGER_CHANNEL_NOT_ENABLED: u32 = 385;
230pub const PICO_CONDITION_HAS_NO_TRIGGER_PROPERTY: u32 = 386;
231pub const PICO_RATIO_MODE_TRIGGER_MASKING_INVALID: u32 = 387;
232pub const PICO_TRIGGER_DATA_REQUIRES_MIN_BUFFER_SIZE_OF_40_SAMPLES: u32 = 388;
233pub const PICO_NO_OF_CAPTURES_OUT_OF_RANGE: u32 = 389;
234pub const PICO_RATIO_MODE_SEGMENT_HEADER_DOES_NOT_REQUIRE_BUFFERS: u32 = 390;
235pub const PICO_FOR_SEGMENT_HEADER_USE_GETTRIGGERINFO: u32 = 391;
236pub const PICO_READ_NOT_SET: u32 = 392;
237pub const PICO_ADC_SETTING_MISMATCH: u32 = 393;
238pub const PICO_DATATYPE_INVALID: u32 = 394;
239pub const PICO_RATIO_MODE_DOES_NOT_SUPPORT_DATATYPE: u32 = 395;
240pub const PICO_CHANNEL_COMBINATION_NOT_VALID_IN_THIS_RESOLUTION: u32 = 396;
241pub const PICO_USE_8BIT_RESOLUTION: u32 = 397;
242pub const PICO_AGGREGATE_BUFFERS_SAME_POINTER: u32 = 398;
243pub const PICO_OVERLAPPED_READ_VALUES_OUT_OF_RANGE: u32 = 399;
244pub const PICO_OVERLAPPED_READ_SEGMENTS_OUT_OF_RANGE: u32 = 400;
245pub const PICO_CHANNELFLAGSCOMBINATIONS_ARRAY_SIZE_TOO_SMALL: u32 = 401;
246pub const PICO_CAPTURES_EXCEEDS_NO_OF_SUPPORTED_SEGMENTS: u32 = 402;
247pub const PICO_TIME_UNITS_OUT_OF_RANGE: u32 = 403;
248pub const PICO_NO_SAMPLES_REQUESTED: u32 = 404;
249pub const PICO_INVALID_ACTION: u32 = 405;
250pub const PICO_NO_OF_SAMPLES_NEED_TO_BE_EQUAL_WHEN_ADDING_BUFFERS: u32 = 406;
251pub const PICO_WAITING_FOR_DATA_BUFFERS: u32 = 407;
252pub const PICO_STREAMING_ONLY_SUPPORTS_ONE_READ: u32 = 408;
253pub const PICO_CLEAR_DATA_BUFFER_INVALID: u32 = 409;
254pub const PICO_INVALID_ACTION_FLAGS_COMBINATION: u32 = 410;
255pub const PICO_BOTH_MIN_AND_MAX_NULL_BUFFERS_CANNOT_BE_ADDED: u32 = 411;
256pub const PICO_CONFLICT_IN_SET_DATA_BUFFERS_CALL_REMOVE_DATA_BUFFER_TO_RESET: u32 = 412;
257pub const PICO_REMOVING_DATA_BUFFER_ENTRIES_NOT_ALLOWED_WHILE_DATA_PROCESSING: u32 = 413;
258pub const PICO_CYUSB_REQUEST_FAILED: u32 = 512;
259pub const PICO_STREAMING_DATA_REQUIRED: u32 = 513;
260pub const PICO_INVALID_NUMBER_OF_SAMPLES: u32 = 514;
261pub const PICO_INVALID_DISTRIBUTION: u32 = 515;
262pub const PICO_BUFFER_LENGTH_GREATER_THAN_INT32_T: u32 = 516;
263pub const PICO_PLL_MUX_OUT_FAILED: u32 = 521;
264pub const PICO_ONE_PULSE_WIDTH_DIRECTION_ALLOWED: u32 = 522;
265pub const PICO_EXTERNAL_TRIGGER_NOT_SUPPORTED: u32 = 523;
266pub const PICO_NO_TRIGGER_CONDITIONS_SET: u32 = 524;
267pub const PICO_NO_OF_CHANNEL_TRIGGER_PROPERTIES_OUT_OF_RANGE: u32 = 525;
268pub const PICO_PROBE_COMPONENT_ERROR: u32 = 526;
269pub const PICO_INVALID_TRIGGER_CHANNEL_FOR_ETS: u32 = 528;
270pub const PICO_NOT_AVAILABLE_WHEN_STREAMING_IS_RUNNING: u32 = 529;
271pub const PICO_INVALID_TRIGGER_WITHIN_PRE_TRIGGER_STATE: u32 = 530;
272pub const PICO_ZERO_NUMBER_OF_CAPTURES_INVALID: u32 = 531;
273pub const PICO_TRIGGER_DELAY_OUT_OF_RANGE: u32 = 768;
274pub const PICO_INVALID_THRESHOLD_DIRECTION: u32 = 769;
275pub const PICO_INVALID_THRESHOLD_MODE: u32 = 770;
276pub const PICO_INVALID_VARIANT: u32 = 4096;
277pub const PICO_MEMORY_MODULE_ERROR: u32 = 4097;
278pub const PICO_PULSE_WIDTH_QUALIFIER_LOWER_UPPER_CONFILCT: u32 = 8192;
279pub const PICO_PULSE_WIDTH_QUALIFIER_TYPE: u32 = 8193;
280pub const PICO_PULSE_WIDTH_QUALIFIER_DIRECTION: u32 = 8194;
281pub const PICO_THRESHOLD_MODE_OUT_OF_RANGE: u32 = 8195;
282pub const PICO_TRIGGER_AND_PULSEWIDTH_DIRECTION_IN_CONFLICT: u32 = 8196;
283pub const PICO_THRESHOLD_UPPER_LOWER_MISMATCH: u32 = 8197;
284pub const PICO_PULSE_WIDTH_LOWER_OUT_OF_RANGE: u32 = 8198;
285pub const PICO_PULSE_WIDTH_UPPER_OUT_OF_RANGE: u32 = 8199;
286pub const PICO_FRONT_PANEL_ERROR: u32 = 8200;
287pub const PICO_FRONT_PANEL_MODE: u32 = 8203;
288pub const PICO_FRONT_PANEL_FEATURE: u32 = 8204;
289pub const PICO_NO_PULSE_WIDTH_CONDITIONS_SET: u32 = 8205;
290pub const PICO_TRIGGER_PORT_NOT_ENABLED: u32 = 8206;
291pub const PICO_DIGITAL_DIRECTION_NOT_SET: u32 = 8207;
292pub const PICO_I2C_DEVICE_INVALID_READ_COMMAND: u32 = 8208;
293pub const PICO_I2C_DEVICE_INVALID_RESPONSE: u32 = 8209;
294pub const PICO_I2C_DEVICE_INVALID_WRITE_COMMAND: u32 = 8210;
295pub const PICO_I2C_DEVICE_ARGUMENT_OUT_OF_RANGE: u32 = 8211;
296pub const PICO_I2C_DEVICE_MODE: u32 = 8212;
297pub const PICO_I2C_DEVICE_SETUP_FAILED: u32 = 8213;
298pub const PICO_I2C_DEVICE_FEATURE: u32 = 8214;
299pub const PICO_I2C_DEVICE_VALIDATION_FAILED: u32 = 8215;
300pub const PICO_INTERNAL_HEADER_ERROR: u32 = 8216;
301pub const PICO_FAILED_TO_WRITE_HARDWARE_FAULT: u32 = 8217;
302pub const PICO_MSO_TOO_MANY_EDGE_TRANSITIONS_WHEN_USING_PULSE_WIDTH: u32 = 12288;
303pub const PICO_INVALID_PROBE_LED_POSITION: u32 = 12289;
304pub const PICO_PROBE_LED_POSITION_NOT_SUPPORTED: u32 = 12290;
305pub const PICO_DUPLICATE_PROBE_CHANNEL_LED_POSITION: u32 = 12291;
306pub const PICO_PROBE_LED_FAILURE: u32 = 12292;
307pub const PICO_PROBE_NOT_SUPPORTED_BY_THIS_DEVICE: u32 = 12293;
308pub const PICO_INVALID_PROBE_NAME: u32 = 12294;
309pub const PICO_NO_PROBE_COLOUR_SETTINGS: u32 = 12295;
310pub const PICO_NO_PROBE_CONNECTED_ON_REQUESTED_CHANNEL: u32 = 12296;
311pub const PICO_PROBE_DOES_NOT_REQUIRE_CALIBRATION: u32 = 12297;
312pub const PICO_PROBE_CALIBRATION_FAILED: u32 = 12298;
313pub const PICO_PROBE_VERSION_ERROR: u32 = 12299;
314pub const PICO_AUTO_TRIGGER_TIME_TOO_LONG: u32 = 16384;
315pub const PICO_MSO_POD_VALIDATION_FAILED: u32 = 20480;
316pub const PICO_NO_MSO_POD_CONNECTED: u32 = 20481;
317pub const PICO_DIGITAL_PORT_HYSTERESIS_OUT_OF_RANGE: u32 = 20482;
318pub const PICO_MSO_POD_FAILED_UNIT: u32 = 20483;
319pub const PICO_ATTENUATION_FAILED: u32 = 20484;
320pub const PICO_DC_50OHM_OVERVOLTAGE_TRIPPED: u32 = 20485;
321pub const PICO_NOT_RESPONDING_OVERHEATED: u32 = 20496;
322pub const PICO_HARDWARE_CAPTURE_TIMEOUT: u32 = 24576;
323pub const PICO_HARDWARE_READY_TIMEOUT: u32 = 24577;
324pub const PICO_HARDWARE_CAPTURING_CALL_STOP: u32 = 24578;
325pub const PICO_TOO_FEW_REQUESTED_STREAMING_SAMPLES: u32 = 28672;
326pub const PICO_STREAMING_REREAD_DATA_NOT_AVAILABLE: u32 = 28673;
327pub const PICO_STREAMING_COMBINATION_OF_RAW_DATA_AND_ONE_AGGREGATION_DATA_TYPE_ALLOWED: u32 = 28674;
328pub const PICO_DEVICE_TIME_STAMP_RESET: u32 = 16777216;
329pub const PICO_TRIGGER_TIME_NOT_REQUESTED: u32 = 33554433;
330pub const PICO_TRIGGER_TIME_BUFFER_NOT_SET: u32 = 33554434;
331pub const PICO_TRIGGER_TIME_FAILED_TO_CALCULATE: u32 = 33554436;
332pub const PICO_TRIGGER_WITHIN_A_PRE_TRIGGER_FAILED_TO_CALCULATE: u32 = 33554440;
333pub const PICO_TRIGGER_TIME_STAMP_NOT_REQUESTED: u32 = 33554688;
334pub const PICO_RATIO_MODE_TRIGGER_DATA_FOR_TIME_CALCULATION_DOES_NOT_REQUIRE_BUFFERS: u32 =
335    35651584;
336pub const PICO_RATIO_MODE_TRIGGER_DATA_FOR_TIME_CALCULATION_DOES_NOT_HAVE_BUFFERS: u32 = 35651585;
337pub const PICO_RATIO_MODE_TRIGGER_DATA_FOR_TIME_CALCULATION_USE_GETTRIGGERINFO: u32 = 35651586;
338pub const PICO_RATIO_MODE_REQUIRES_NUMBER_OF_SAMPLES_TO_BE_SET: u32 = 35651586;
339pub const PICO_STREAMING_DOES_NOT_SUPPORT_TRIGGER_RATIO_MODES: u32 = 35651587;
340pub const PICO_USE_THE_TRIGGER_READ: u32 = 35651588;
341pub const PICO_USE_A_DATA_READ: u32 = 35651589;
342pub const PICO_TRIGGER_READ_REQUIRES_INT16_T_DATA_TYPE: u32 = 35651590;
343pub const PICO_SIGGEN_SETTINGS_MISMATCH: u32 = 50331664;
344pub const PICO_SIGGEN_SETTINGS_CHANGED_CALL_APPLY: u32 = 50331665;
345pub const PICO_SIGGEN_WAVETYPE_NOT_SUPPORTED: u32 = 50331666;
346pub const PICO_SIGGEN_TRIGGERTYPE_NOT_SUPPORTED: u32 = 50331667;
347pub const PICO_SIGGEN_TRIGGERSOURCE_NOT_SUPPORTED: u32 = 50331668;
348pub const PICO_SIGGEN_FILTER_STATE_NOT_SUPPORTED: u32 = 50331669;
349pub const PICO_SIGGEN_NULL_PARAMETER: u32 = 50331680;
350pub const PICO_SIGGEN_EMPTY_BUFFER_SUPPLIED: u32 = 50331681;
351pub const PICO_SIGGEN_RANGE_NOT_SUPPLIED: u32 = 50331682;
352pub const PICO_SIGGEN_BUFFER_NOT_SUPPLIED: u32 = 50331683;
353pub const PICO_SIGGEN_FREQUENCY_NOT_SUPPLIED: u32 = 50331684;
354pub const PICO_SIGGEN_SWEEP_INFO_NOT_SUPPLIED: u32 = 50331685;
355pub const PICO_SIGGEN_TRIGGER_INFO_NOT_SUPPLIED: u32 = 50331686;
356pub const PICO_SIGGEN_CLOCK_FREQ_NOT_SUPPLIED: u32 = 50331687;
357pub const PICO_SIGGEN_TOO_MANY_SAMPLES: u32 = 50331696;
358pub const PICO_SIGGEN_DUTYCYCLE_OUT_OF_RANGE: u32 = 50331697;
359pub const PICO_SIGGEN_CYCLES_OUT_OF_RANGE: u32 = 50331698;
360pub const PICO_SIGGEN_PRESCALE_OUT_OF_RANGE: u32 = 50331699;
361pub const PICO_SIGGEN_SWEEPTYPE_INVALID: u32 = 50331700;
362pub const PICO_SIGGEN_SWEEP_WAVETYPE_MISMATCH: u32 = 50331701;
363pub const PICO_SIGGEN_INVALID_SWEEP_PARAMETERS: u32 = 50331702;
364pub const PICO_SIGGEN_SWEEP_PRESCALE_NOT_SUPPORTED: u32 = 50331703;
365pub const PICO_AWG_OVER_VOLTAGE_RANGE: u32 = 50331704;
366pub const PICO_NOT_LOCKED_TO_REFERENCE_FREQUENCY: u32 = 50331705;
367pub const PICO_PERMISSIONS_ERROR: u32 = 50331712;
368pub const PICO_PORTS_WITHOUT_ANALOGUE_CHANNELS_ONLY_ALLOWED_IN_8BIT_RESOLUTION: u32 = 50335744;
369pub const PICO_ANALOGUE_FRONTEND_MISSING: u32 = 50343937;
370pub const PICO_FRONT_PANEL_MISSING: u32 = 50343938;
371pub const PICO_ANALOGUE_FRONTEND_AND_FRONT_PANEL_MISSING: u32 = 50343939;
372pub const PICO_FIRMWARE_UPDATE_REQUIRED_TO_USE_DEVICE_WITH_THIS_DRIVER: u32 = 50348032;
373pub const PICO_UPDATE_REQUIRED_NULL: u32 = 50348033;
374pub const PICO_FIRMWARE_UP_TO_DATE: u32 = 50348034;
375pub const PICO_FLASH_FAIL: u32 = 50348035;
376pub const PICO_INTERNAL_ERROR_FIRMWARE_LENGTH_INVALID: u32 = 50348036;
377pub const PICO_INTERNAL_ERROR_FIRMWARE_NULL: u32 = 50348037;
378pub const PICO_FIRMWARE_FAILED_TO_BE_CHANGED: u32 = 50348038;
379pub const PICO_FIRMWARE_FAILED_TO_RELOAD: u32 = 50348039;
380pub const PICO_FIRMWARE_FAILED_TO_BE_UPDATE: u32 = 50348040;
381pub const PICO_FIRMWARE_VERSION_OUT_OF_RANGE: u32 = 50348041;
382pub const PICO_FRONTPANEL_FIRMWARE_UPDATE_REQUIRED_TO_USE_DEVICE_WITH_THIS_DRIVER: u32 = 50348042;
383pub const PICO_NO_APPS_AVAILABLE: u32 = 50364416;
384pub const PICO_UNSUPPORTED_APP: u32 = 50364417;
385pub const PICO_ADC_POWERED_DOWN: u32 = 50339840;
386pub const PICO_WATCHDOGTIMER: u32 = 268435456;
387pub const PICO_IPP_NOT_FOUND: u32 = 268435457;
388pub const PICO_IPP_NO_FUNCTION: u32 = 268435458;
389pub const PICO_IPP_ERROR: u32 = 268435459;
390pub const PICO_SHADOW_CAL_NOT_AVAILABLE: u32 = 268435460;
391pub const PICO_SHADOW_CAL_DISABLED: u32 = 268435461;
392pub const PICO_SHADOW_CAL_ERROR: u32 = 268435462;
393pub const PICO_SHADOW_CAL_CORRUPT: u32 = 268435463;
394pub const PICO_DEVICE_MEMORY_OVERFLOW: u32 = 268435464;
395pub const PICO_ADC_TEST_FAILURE: u32 = 268435472;
396pub const PICO_RESERVED_1: u32 = 285212672;
397pub const PICO_SOURCE_NOT_READY: u32 = 536870912;
398pub const PICO_SOURCE_INVALID_BAUD_RATE: u32 = 536870913;
399pub const PICO_SOURCE_NOT_OPENED_FOR_WRITE: u32 = 536870914;
400pub const PICO_SOURCE_FAILED_TO_WRITE_DEVICE: u32 = 536870915;
401pub const PICO_SOURCE_EEPROM_FAIL: u32 = 536870916;
402pub const PICO_SOURCE_EEPROM_NOT_PRESENT: u32 = 536870917;
403pub const PICO_SOURCE_EEPROM_NOT_PROGRAMMED: u32 = 536870918;
404pub const PICO_SOURCE_LIST_NOT_READY: u32 = 536870919;
405pub const PICO_SOURCE_FTD2XX_NOT_FOUND: u32 = 536870920;
406pub const PICO_SOURCE_FTD2XX_NO_FUNCTION: u32 = 536870921;
407pub const PS2208_MAX_ETS_CYCLES: u32 = 500;
408pub const PS2208_MAX_INTERLEAVE: u32 = 20;
409pub const PS2207_MAX_ETS_CYCLES: u32 = 500;
410pub const PS2207_MAX_INTERLEAVE: u32 = 20;
411pub const PS2206_MAX_ETS_CYCLES: u32 = 250;
412pub const PS2206_MAX_INTERLEAVE: u32 = 10;
413pub const PS2000A_EXT_MAX_VALUE: u32 = 32767;
414pub const PS2000A_EXT_MIN_VALUE: i32 = -32767;
415pub const PS2000A_MAX_LOGIC_LEVEL: u32 = 32767;
416pub const PS2000A_MIN_LOGIC_LEVEL: i32 = -32767;
417pub const MIN_SIG_GEN_FREQ: f64 = 0.0;
418pub const MAX_SIG_GEN_FREQ: f64 = 20000000.0;
419pub const PS2000A_MAX_SIG_GEN_BUFFER_SIZE: u32 = 8192;
420pub const PS2000A_MIN_SIG_GEN_BUFFER_SIZE: u32 = 1;
421pub const PS2000A_MIN_DWELL_COUNT: u32 = 3;
422pub const PS2000A_MAX_SWEEPS_SHOTS: u32 = 1073741823;
423pub const PS2000A_MAX_ANALOGUE_OFFSET_50MV_200MV: f64 = 0.25;
424pub const PS2000A_MIN_ANALOGUE_OFFSET_50MV_200MV: f64 = -0.25;
425pub const PS2000A_MAX_ANALOGUE_OFFSET_500MV_2V: f64 = 2.5;
426pub const PS2000A_MIN_ANALOGUE_OFFSET_500MV_2V: f64 = -2.5;
427pub const PS2000A_MAX_ANALOGUE_OFFSET_5V_20V: f64 = 20.0;
428pub const PS2000A_MIN_ANALOGUE_OFFSET_5V_20V: f64 = -20.0;
429pub const PS2000A_SHOT_SWEEP_TRIGGER_CONTINUOUS_RUN: u32 = 4294967295;
430pub const PS2000A_SINE_MAX_FREQUENCY: f64 = 1000000.0;
431pub const PS2000A_SQUARE_MAX_FREQUENCY: f64 = 1000000.0;
432pub const PS2000A_TRIANGLE_MAX_FREQUENCY: f64 = 1000000.0;
433pub const PS2000A_SINC_MAX_FREQUENCY: f64 = 1000000.0;
434pub const PS2000A_RAMP_MAX_FREQUENCY: f64 = 1000000.0;
435pub const PS2000A_HALF_SINE_MAX_FREQUENCY: f64 = 1000000.0;
436pub const PS2000A_GAUSSIAN_MAX_FREQUENCY: f64 = 1000000.0;
437pub const PS2000A_PRBS_MAX_FREQUENCY: f64 = 1000000.0;
438pub const PS2000A_PRBS_MIN_FREQUENCY: f64 = 0.03;
439pub const PS2000A_MIN_FREQUENCY: f64 = 0.03;
440
441pub type PICO_POINTER = *mut ::std::os::raw::c_void;
442pub type PICO_INFO = u32;
443pub type PICO_STATUS = u32;
444pub const enPicoStringValue_PICO_SV_MEMORY: enPicoStringValue = 0;
445pub const enPicoStringValue_PICO_SV_MEMORY_NO_OF_SEGMENTS: enPicoStringValue = 1;
446pub const enPicoStringValue_PICO_SV_MEMORY_MAX_SAMPLES: enPicoStringValue = 2;
447pub const enPicoStringValue_PICO_SV_NO_OF_CHANNELS: enPicoStringValue = 3;
448pub const enPicoStringValue_PICO_SV_ARRAY_OF_CHANNELS: enPicoStringValue = 4;
449pub const enPicoStringValue_PICO_SV_CHANNEL: enPicoStringValue = 5;
450pub const enPicoStringValue_PICO_SV_CHANNEL_NAME: enPicoStringValue = 6;
451pub const enPicoStringValue_PICO_SV_CHANNEL_RANGE: enPicoStringValue = 7;
452pub const enPicoStringValue_PICO_SV_CHANNEL_COUPLING: enPicoStringValue = 8;
453pub const enPicoStringValue_PICO_SV_CHANNEL_ENABLED: enPicoStringValue = 9;
454pub const enPicoStringValue_PICO_SV_CHANNEL_ANALOGUE_OFFSET: enPicoStringValue = 10;
455pub const enPicoStringValue_PICO_SV_CHANNEL_FILTER: enPicoStringValue = 11;
456pub const enPicoStringValue_PICO_SV_TRIGGER: enPicoStringValue = 12;
457pub const enPicoStringValue_PICO_SV_TRIGGER_AUXIO_OUTPUT_ENABLED: enPicoStringValue = 13;
458pub const enPicoStringValue_PICO_SV_TRIGGER_AUTO_TRIGGER_MICROSECONDS: enPicoStringValue = 14;
459pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES: enPicoStringValue = 15;
460pub const enPicoStringValue_PICO_SV_NO_OF_TRIGGER_PROPERTIES: enPicoStringValue = 16;
461pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_CHANNEL: enPicoStringValue = 17;
462pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_UPPER: enPicoStringValue = 18;
463pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_UPPER_HYSTERESIS:
464    enPicoStringValue = 19;
465pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_LOWER: enPicoStringValue = 20;
466pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_LOWER_HYSTERESIS:
467    enPicoStringValue = 21;
468pub const enPicoStringValue_PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_MODE: enPicoStringValue = 22;
469pub const enPicoStringValue_PICO_SV_TRIGGER_ARRAY_OF_BLOCK_CONDITIONS: enPicoStringValue = 23;
470pub const enPicoStringValue_PICO_SV_TRIGGER_NO_OF_BLOCK_CONDITIONS: enPicoStringValue = 24;
471pub const enPicoStringValue_PICO_SV_TRIGGER_CONDITIONS: enPicoStringValue = 25;
472pub const enPicoStringValue_PICO_SV_TRIGGER_NO_OF_CONDITIONS: enPicoStringValue = 26;
473pub const enPicoStringValue_PICO_SV_TRIGGER_CONDITION_SOURCE: enPicoStringValue = 27;
474pub const enPicoStringValue_PICO_SV_TRIGGER_CONDITION_STATE: enPicoStringValue = 28;
475pub const enPicoStringValue_PICO_SV_TRIGGER_DIRECTION: enPicoStringValue = 29;
476pub const enPicoStringValue_PICO_SV_TRIGGER_NO_OF_DIRECTIONS: enPicoStringValue = 30;
477pub const enPicoStringValue_PICO_SV_TRIGGER_DIRECTION_CHANNEL: enPicoStringValue = 31;
478pub const enPicoStringValue_PICO_SV_TRIGGER_DIRECTION_DIRECTION: enPicoStringValue = 32;
479pub const enPicoStringValue_PICO_SV_TRIGGER_DELAY: enPicoStringValue = 33;
480pub const enPicoStringValue_PICO_SV_TRIGGER_DELAY_MS: enPicoStringValue = 34;
481pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER: enPicoStringValue = 35;
482pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER_ENABLED: enPicoStringValue = 36;
483pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER_CHANNEL: enPicoStringValue = 37;
484pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER_RANGE: enPicoStringValue = 38;
485pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER_TRESHOLDMAJOR: enPicoStringValue = 39;
486pub const enPicoStringValue_PICO_SV_FREQUENCY_COUNTER_TRESHOLDMINOR: enPicoStringValue = 40;
487pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_PROPERTIES: enPicoStringValue = 41;
488pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_PROPERTIES_DIRECTION: enPicoStringValue = 42;
489pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_PROPERTIES_LOWER: enPicoStringValue = 43;
490pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_PROPERTIES_UPPER: enPicoStringValue = 44;
491pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_PROPERTIES_TYPE: enPicoStringValue = 45;
492pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_ARRAY_OF_BLOCK_CONDITIONS: enPicoStringValue = 46;
493pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_NO_OF_BLOCK_CONDITIONS: enPicoStringValue = 47;
494pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_CONDITIONS: enPicoStringValue = 48;
495pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_NO_OF_CONDITIONS: enPicoStringValue = 49;
496pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_CONDITIONS_SOURCE: enPicoStringValue = 50;
497pub const enPicoStringValue_PICO_SV_PULSE_WIDTH_CONDITIONS_STATE: enPicoStringValue = 51;
498pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES: enPicoStringValue = 52;
499pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_PRE_TRIGGER_SAMPLES: enPicoStringValue = 53;
500pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_POST_TRIGGER_SAMPLES: enPicoStringValue = 54;
501pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_TIMEBASE: enPicoStringValue = 55;
502pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_NO_OF_CAPTURES: enPicoStringValue = 56;
503pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_RESOLUTION: enPicoStringValue = 57;
504pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED: enPicoStringValue = 58;
505pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_DOWN_SAMPLE_RATIO:
506    enPicoStringValue = 59;
507pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_DOWN_SAMPLE_RATIO_MODE:
508    enPicoStringValue = 60;
509pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_REQUERSTED_NO_OF_SAMPLES:
510    enPicoStringValue = 61;
511pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_SEGMENT_INDEX_FROM:
512    enPicoStringValue = 62;
513pub const enPicoStringValue_PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_SEGMENT_INDEX_TO:
514    enPicoStringValue = 63;
515pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR: enPicoStringValue = 64;
516pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN: enPicoStringValue = 65;
517pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN_WAVE_TYPE: enPicoStringValue = 66;
518pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN_START_FREQUENCY: enPicoStringValue =
519    67;
520pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN_STOP_FREQUENCY: enPicoStringValue =
521    68;
522pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN_INCREMENT: enPicoStringValue = 69;
523pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_BUILT_IN_DWELL_TIME: enPicoStringValue = 70;
524pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG: enPicoStringValue = 71;
525pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_START_DELTA_PHASE: enPicoStringValue = 72;
526pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_STOP_DELTA_PHASE: enPicoStringValue = 73;
527pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_DELTA_PHASE_INCREMENT: enPicoStringValue =
528    74;
529pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_DWELL_COUNT: enPicoStringValue = 75;
530pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_INDEX_MODE: enPicoStringValue = 76;
531pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_AWG_WAVEFORM_SIZE: enPicoStringValue = 77;
532pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_ARRAY_OF_AWG_WAVEFORM_VALUES:
533    enPicoStringValue = 78;
534pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_OFFSET_VOLTAGE: enPicoStringValue = 79;
535pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_PK_TO_PK: enPicoStringValue = 80;
536pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_OPERATION: enPicoStringValue = 81;
537pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_SHOTS: enPicoStringValue = 82;
538pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_SWEEPS: enPicoStringValue = 83;
539pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_SWEEP_TYPE: enPicoStringValue = 84;
540pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_TRIGGER_TYPE: enPicoStringValue = 85;
541pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_TRIGGER_SOURCE: enPicoStringValue = 86;
542pub const enPicoStringValue_PICO_SV_SIGNAL_GENERATOR_EXT_IN_THRESHOLD: enPicoStringValue = 87;
543pub const enPicoStringValue_PICO_SV_ETS: enPicoStringValue = 88;
544pub const enPicoStringValue_PICO_SV_ETS_STATE: enPicoStringValue = 89;
545pub const enPicoStringValue_PICO_SV_ETS_CYCLE: enPicoStringValue = 90;
546pub const enPicoStringValue_PICO_SV_ETS_INTERLEAVE: enPicoStringValue = 91;
547pub const enPicoStringValue_PICO_SV_ETS_SAMPLE_TIME_PICOSECONDS: enPicoStringValue = 92;
548pub type enPicoStringValue = ::std::os::raw::c_uint;
549pub use self::enPicoStringValue as PICO_STRING_VALUE;
550pub const enPS2000AChannelBufferIndex_PS2000A_CHANNEL_A_MAX: enPS2000AChannelBufferIndex = 0;
551pub const enPS2000AChannelBufferIndex_PS2000A_CHANNEL_A_MIN: enPS2000AChannelBufferIndex = 1;
552pub const enPS2000AChannelBufferIndex_PS2000A_CHANNEL_B_MAX: enPS2000AChannelBufferIndex = 2;
553pub const enPS2000AChannelBufferIndex_PS2000A_CHANNEL_B_MIN: enPS2000AChannelBufferIndex = 3;
554pub const enPS2000AChannelBufferIndex_PS2000A_CHANNEL_C_MAX: enPS2000AChannelBufferIndex = 4;
555pub const enPS2000AChannelBufferIndex_PS2000A_CHANNEL_C_MIN: enPS2000AChannelBufferIndex = 5;
556pub const enPS2000AChannelBufferIndex_PS2000A_CHANNEL_D_MAX: enPS2000AChannelBufferIndex = 6;
557pub const enPS2000AChannelBufferIndex_PS2000A_CHANNEL_D_MIN: enPS2000AChannelBufferIndex = 7;
558pub const enPS2000AChannelBufferIndex_PS2000A_MAX_CHANNEL_BUFFERS: enPS2000AChannelBufferIndex = 8;
559#[doc = " <summary>"]
560#[doc = " The analogue channels index"]
561#[doc = " </summary>"]
562pub type enPS2000AChannelBufferIndex = ::std::os::raw::c_uint;
563#[doc = " <summary>"]
564#[doc = " The analogue channels index"]
565#[doc = " </summary>"]
566pub use self::enPS2000AChannelBufferIndex as PS2000A_CHANNEL_BUFFER_INDEX;
567pub const enPS2000AChannel_PS2000A_CHANNEL_A: enPS2000AChannel = 0;
568pub const enPS2000AChannel_PS2000A_CHANNEL_B: enPS2000AChannel = 1;
569pub const enPS2000AChannel_PS2000A_CHANNEL_C: enPS2000AChannel = 2;
570pub const enPS2000AChannel_PS2000A_CHANNEL_D: enPS2000AChannel = 3;
571pub const enPS2000AChannel_PS2000A_EXTERNAL: enPS2000AChannel = 4;
572pub const enPS2000AChannel_PS2000A_MAX_CHANNELS: enPS2000AChannel = 4;
573pub const enPS2000AChannel_PS2000A_TRIGGER_AUX: enPS2000AChannel = 5;
574pub const enPS2000AChannel_PS2000A_MAX_TRIGGER_SOURCES: enPS2000AChannel = 6;
575#[doc = " <summary>"]
576#[doc = " The analogue channels and trigger channels supported by the devices"]
577#[doc = " </summary>"]
578pub type enPS2000AChannel = ::std::os::raw::c_uint;
579#[doc = " <summary>"]
580#[doc = " The analogue channels and trigger channels supported by the devices"]
581#[doc = " </summary>"]
582pub use self::enPS2000AChannel as PS2000A_CHANNEL;
583#[doc = " <summary>"]
584#[doc = " Ignore the trigger settings"]
585#[doc = " </summary>"]
586pub const enPS2000ATriggerOperand_PS2000A_OPERAND_NONE: enPS2000ATriggerOperand = 0;
587#[doc = " <summary>"]
588#[doc = " Fire when either trigger is activated."]
589#[doc = " </summary>"]
590pub const enPS2000ATriggerOperand_PS2000A_OPERAND_OR: enPS2000ATriggerOperand = 1;
591#[doc = " <summary>"]
592#[doc = " Fire when both triggers are activated"]
593#[doc = " </summary>"]
594pub const enPS2000ATriggerOperand_PS2000A_OPERAND_AND: enPS2000ATriggerOperand = 2;
595#[doc = " <summary>"]
596#[doc = " Fire when one trigger is activated."]
597#[doc = " </summary>"]
598pub const enPS2000ATriggerOperand_PS2000A_OPERAND_THEN: enPS2000ATriggerOperand = 3;
599#[doc = " <summary>"]
600#[doc = " MSO models only."]
601#[doc = " Defines how the analgoue and digital triggers are combined."]
602#[doc = " </summary>"]
603pub type enPS2000ATriggerOperand = ::std::os::raw::c_uint;
604#[doc = " <summary>"]
605#[doc = " MSO models only."]
606#[doc = " Defines how the analgoue and digital triggers are combined."]
607#[doc = " </summary>"]
608pub use self::enPS2000ATriggerOperand as PS2000A_TRIGGER_OPERAND;
609pub const enPS2000DigitalPort_PS2000A_DIGITAL_PORT0: enPS2000DigitalPort = 128;
610pub const enPS2000DigitalPort_PS2000A_DIGITAL_PORT1: enPS2000DigitalPort = 129;
611pub const enPS2000DigitalPort_PS2000A_DIGITAL_PORT2: enPS2000DigitalPort = 130;
612pub const enPS2000DigitalPort_PS2000A_DIGITAL_PORT3: enPS2000DigitalPort = 131;
613pub const enPS2000DigitalPort_PS2000A_MAX_DIGITAL_PORTS: enPS2000DigitalPort = 4;
614#[doc = " <summary>"]
615#[doc = " MSO ports"]
616#[doc = " </summary>"]
617pub type enPS2000DigitalPort = ::std::os::raw::c_uint;
618#[doc = " <summary>"]
619#[doc = " MSO ports"]
620#[doc = " </summary>"]
621pub use self::enPS2000DigitalPort as PS2000A_DIGITAL_PORT;
622pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_0: enPS2000ADigitalChannel = 0;
623pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_1: enPS2000ADigitalChannel = 1;
624pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_2: enPS2000ADigitalChannel = 2;
625pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_3: enPS2000ADigitalChannel = 3;
626pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_4: enPS2000ADigitalChannel = 4;
627pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_5: enPS2000ADigitalChannel = 5;
628pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_6: enPS2000ADigitalChannel = 6;
629pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_7: enPS2000ADigitalChannel = 7;
630pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_8: enPS2000ADigitalChannel = 8;
631pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_9: enPS2000ADigitalChannel = 9;
632pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_10: enPS2000ADigitalChannel = 10;
633pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_11: enPS2000ADigitalChannel = 11;
634pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_12: enPS2000ADigitalChannel = 12;
635pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_13: enPS2000ADigitalChannel = 13;
636pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_14: enPS2000ADigitalChannel = 14;
637pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_15: enPS2000ADigitalChannel = 15;
638pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_16: enPS2000ADigitalChannel = 16;
639pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_17: enPS2000ADigitalChannel = 17;
640pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_18: enPS2000ADigitalChannel = 18;
641pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_19: enPS2000ADigitalChannel = 19;
642pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_20: enPS2000ADigitalChannel = 20;
643pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_21: enPS2000ADigitalChannel = 21;
644pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_22: enPS2000ADigitalChannel = 22;
645pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_23: enPS2000ADigitalChannel = 23;
646pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_24: enPS2000ADigitalChannel = 24;
647pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_25: enPS2000ADigitalChannel = 25;
648pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_26: enPS2000ADigitalChannel = 26;
649pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_27: enPS2000ADigitalChannel = 27;
650pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_28: enPS2000ADigitalChannel = 28;
651pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_29: enPS2000ADigitalChannel = 29;
652pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_30: enPS2000ADigitalChannel = 30;
653pub const enPS2000ADigitalChannel_PS2000A_DIGITAL_CHANNEL_31: enPS2000ADigitalChannel = 31;
654pub const enPS2000ADigitalChannel_PS2000A_MAX_DIGITAL_CHANNELS: enPS2000ADigitalChannel = 32;
655#[doc = " <summary>"]
656#[doc = " MSO digital channels"]
657#[doc = " </summary>"]
658pub type enPS2000ADigitalChannel = ::std::os::raw::c_uint;
659#[doc = " <summary>"]
660#[doc = " MSO digital channels"]
661#[doc = " </summary>"]
662pub use self::enPS2000ADigitalChannel as PS2000A_DIGITAL_CHANNEL;
663pub const enPS2000ARange_PS2000A_10MV: enPS2000ARange = 0;
664pub const enPS2000ARange_PS2000A_20MV: enPS2000ARange = 1;
665pub const enPS2000ARange_PS2000A_50MV: enPS2000ARange = 2;
666pub const enPS2000ARange_PS2000A_100MV: enPS2000ARange = 3;
667pub const enPS2000ARange_PS2000A_200MV: enPS2000ARange = 4;
668pub const enPS2000ARange_PS2000A_500MV: enPS2000ARange = 5;
669pub const enPS2000ARange_PS2000A_1V: enPS2000ARange = 6;
670pub const enPS2000ARange_PS2000A_2V: enPS2000ARange = 7;
671pub const enPS2000ARange_PS2000A_5V: enPS2000ARange = 8;
672pub const enPS2000ARange_PS2000A_10V: enPS2000ARange = 9;
673pub const enPS2000ARange_PS2000A_20V: enPS2000ARange = 10;
674pub const enPS2000ARange_PS2000A_50V: enPS2000ARange = 11;
675pub const enPS2000ARange_PS2000A_MAX_RANGES: enPS2000ARange = 12;
676#[doc = " <summary>"]
677#[doc = " Ranges that the channels are set to:"]
678#[doc = " Not all ranges are supported by every variant"]
679#[doc = " </summary>"]
680pub type enPS2000ARange = ::std::os::raw::c_uint;
681#[doc = " <summary>"]
682#[doc = " Ranges that the channels are set to:"]
683#[doc = " Not all ranges are supported by every variant"]
684#[doc = " </summary>"]
685pub use self::enPS2000ARange as PS2000A_RANGE;
686pub const enPS2000ACoupling_PS2000A_AC: enPS2000ACoupling = 0;
687pub const enPS2000ACoupling_PS2000A_DC: enPS2000ACoupling = 1;
688#[doc = " <summary>"]
689#[doc = " Available coupling modes."]
690#[doc = " </summary>"]
691pub type enPS2000ACoupling = ::std::os::raw::c_uint;
692#[doc = " <summary>"]
693#[doc = " Available coupling modes."]
694#[doc = " </summary>"]
695pub use self::enPS2000ACoupling as PS2000A_COUPLING;
696pub const enPS2000AChannelInfo_PS2000A_CI_RANGES: enPS2000AChannelInfo = 0;
697pub type enPS2000AChannelInfo = ::std::os::raw::c_uint;
698pub use self::enPS2000AChannelInfo as PS2000A_CHANNEL_INFO;
699#[doc = " <summary>"]
700#[doc = " disables"]
701#[doc = " </summary>"]
702pub const enPS2000AEtsMode_PS2000A_ETS_OFF: enPS2000AEtsMode = 0;
703#[doc = " <summary>"]
704#[doc = " enables ETS and provides etsCycles of data, which may contain data from previously returned cycles."]
705#[doc = " </summary>"]
706pub const enPS2000AEtsMode_PS2000A_ETS_FAST: enPS2000AEtsMode = 1;
707#[doc = " <summary>"]
708#[doc = " enables ETS and provides fresh data every etsCycles. This"]
709#[doc = " mode takes longer to provide each data set, but the data sets are more stable and"]
710#[doc = " are guaranteed to contain only new data."]
711#[doc = " </summary>"]
712pub const enPS2000AEtsMode_PS2000A_ETS_SLOW: enPS2000AEtsMode = 2;
713#[doc = " <summary>"]
714#[doc = " enables ETS and provides fresh data every etsCycles. This"]
715#[doc = " mode takes longer to provide each data set, but the data sets are more stable and"]
716#[doc = " are guaranteed to contain only new data."]
717#[doc = " </summary>"]
718pub const enPS2000AEtsMode_PS2000A_ETS_MODES_MAX: enPS2000AEtsMode = 3;
719#[doc = " <summary>"]
720#[doc = " Ets modes avialable"]
721#[doc = " </summary>"]
722pub type enPS2000AEtsMode = ::std::os::raw::c_uint;
723#[doc = " <summary>"]
724#[doc = " Ets modes avialable"]
725#[doc = " </summary>"]
726pub use self::enPS2000AEtsMode as PS2000A_ETS_MODE;
727pub const enPS2000ATimeUnits_PS2000A_FS: enPS2000ATimeUnits = 0;
728pub const enPS2000ATimeUnits_PS2000A_PS: enPS2000ATimeUnits = 1;
729pub const enPS2000ATimeUnits_PS2000A_NS: enPS2000ATimeUnits = 2;
730pub const enPS2000ATimeUnits_PS2000A_US: enPS2000ATimeUnits = 3;
731pub const enPS2000ATimeUnits_PS2000A_MS: enPS2000ATimeUnits = 4;
732pub const enPS2000ATimeUnits_PS2000A_S: enPS2000ATimeUnits = 5;
733pub const enPS2000ATimeUnits_PS2000A_MAX_TIME_UNITS: enPS2000ATimeUnits = 6;
734#[doc = " <summary>"]
735#[doc = " Time units that the time paramaters are using."]
736#[doc = " </summary>"]
737pub type enPS2000ATimeUnits = ::std::os::raw::c_uint;
738#[doc = " <summary>"]
739#[doc = " Time units that the time paramaters are using."]
740#[doc = " </summary>"]
741pub use self::enPS2000ATimeUnits as PS2000A_TIME_UNITS;
742pub const enPS2000ASweepType_PS2000A_UP: enPS2000ASweepType = 0;
743pub const enPS2000ASweepType_PS2000A_DOWN: enPS2000ASweepType = 1;
744pub const enPS2000ASweepType_PS2000A_UPDOWN: enPS2000ASweepType = 2;
745pub const enPS2000ASweepType_PS2000A_DOWNUP: enPS2000ASweepType = 3;
746pub const enPS2000ASweepType_PS2000A_MAX_SWEEP_TYPES: enPS2000ASweepType = 4;
747#[doc = " <summary>"]
748#[doc = " whether the frequency will sweep from startFrequency to"]
749#[doc = " stopFrequency, or in the opposite direction, or repeatedly reverse direction"]
750#[doc = " </summary>"]
751pub type enPS2000ASweepType = ::std::os::raw::c_uint;
752#[doc = " <summary>"]
753#[doc = " whether the frequency will sweep from startFrequency to"]
754#[doc = " stopFrequency, or in the opposite direction, or repeatedly reverse direction"]
755#[doc = " </summary>"]
756pub use self::enPS2000ASweepType as PS2000A_SWEEP_TYPE;
757pub const enPS2000AWaveType_PS2000A_SINE: enPS2000AWaveType = 0;
758pub const enPS2000AWaveType_PS2000A_SQUARE: enPS2000AWaveType = 1;
759pub const enPS2000AWaveType_PS2000A_TRIANGLE: enPS2000AWaveType = 2;
760pub const enPS2000AWaveType_PS2000A_RAMP_UP: enPS2000AWaveType = 3;
761pub const enPS2000AWaveType_PS2000A_RAMP_DOWN: enPS2000AWaveType = 4;
762pub const enPS2000AWaveType_PS2000A_SINC: enPS2000AWaveType = 5;
763pub const enPS2000AWaveType_PS2000A_GAUSSIAN: enPS2000AWaveType = 6;
764pub const enPS2000AWaveType_PS2000A_HALF_SINE: enPS2000AWaveType = 7;
765pub const enPS2000AWaveType_PS2000A_DC_VOLTAGE: enPS2000AWaveType = 8;
766pub const enPS2000AWaveType_PS2000A_MAX_WAVE_TYPES: enPS2000AWaveType = 9;
767#[doc = " <summary>"]
768#[doc = " Built in waveform types"]
769#[doc = " </summary>"]
770pub type enPS2000AWaveType = ::std::os::raw::c_uint;
771#[doc = " <summary>"]
772#[doc = " Built in waveform types"]
773#[doc = " </summary>"]
774pub use self::enPS2000AWaveType as PS2000A_WAVE_TYPE;
775#[doc = " <summary>"]
776#[doc = " Normal signal generator operation specified by wavetype."]
777#[doc = " </summary>"]
778pub const enPS2000AExtraOperations_PS2000A_ES_OFF: enPS2000AExtraOperations = 0;
779#[doc = " <summary>"]
780#[doc = " The signal generator produces white noise and ignores all settings except pkToPk and offsetVoltage."]
781#[doc = " </summary>"]
782pub const enPS2000AExtraOperations_PS2000A_WHITENOISE: enPS2000AExtraOperations = 1;
783#[doc = " <summary>"]
784#[doc = " produces a pseudorandom random binary sequence with a bit rate"]
785#[doc = " specified by the start and stop frequency."]
786#[doc = " </summary>"]
787pub const enPS2000AExtraOperations_PS2000A_PRBS: enPS2000AExtraOperations = 2;
788#[doc = " <summary>"]
789#[doc = " The type of waveform to be produced, specified by one of the following"]
790#[doc = " </summary>"]
791pub type enPS2000AExtraOperations = ::std::os::raw::c_uint;
792#[doc = " <summary>"]
793#[doc = " The type of waveform to be produced, specified by one of the following"]
794#[doc = " </summary>"]
795pub use self::enPS2000AExtraOperations as PS2000A_EXTRA_OPERATIONS;
796#[doc = " <summary>"]
797#[doc = " Trigger on rising edge"]
798#[doc = " </summary>"]
799pub const enPS2000ASigGenTrigType_PS2000A_SIGGEN_RISING: enPS2000ASigGenTrigType = 0;
800#[doc = " <summary>"]
801#[doc = " Trigger on falling edge"]
802#[doc = " </summary>"]
803pub const enPS2000ASigGenTrigType_PS2000A_SIGGEN_FALLING: enPS2000ASigGenTrigType = 1;
804#[doc = " <summary>"]
805#[doc = " Run while trigger is high"]
806#[doc = " </summary>"]
807pub const enPS2000ASigGenTrigType_PS2000A_SIGGEN_GATE_HIGH: enPS2000ASigGenTrigType = 2;
808#[doc = " <summary>"]
809#[doc = " Run while trigger is low"]
810#[doc = " </summary>"]
811pub const enPS2000ASigGenTrigType_PS2000A_SIGGEN_GATE_LOW: enPS2000ASigGenTrigType = 3;
812#[doc = " <summary>"]
813#[doc = " The type of trigger that will be applied to the signal generator"]
814#[doc = " </summary>"]
815pub type enPS2000ASigGenTrigType = ::std::os::raw::c_uint;
816#[doc = " <summary>"]
817#[doc = " The type of trigger that will be applied to the signal generator"]
818#[doc = " </summary>"]
819pub use self::enPS2000ASigGenTrigType as PS2000A_SIGGEN_TRIG_TYPE;
820#[doc = " <summary>"]
821#[doc = " Run without waiting for trigger"]
822#[doc = " </summary>"]
823pub const enPS2000ASigGenTrigSource_PS2000A_SIGGEN_NONE: enPS2000ASigGenTrigSource = 0;
824#[doc = " <summary>"]
825#[doc = " Use scope trigger"]
826#[doc = " </summary"]
827pub const enPS2000ASigGenTrigSource_PS2000A_SIGGEN_SCOPE_TRIG: enPS2000ASigGenTrigSource = 1;
828#[doc = " <summary>"]
829#[doc = " Use AUXIO input"]
830#[doc = " </summary>"]
831pub const enPS2000ASigGenTrigSource_PS2000A_SIGGEN_AUX_IN: enPS2000ASigGenTrigSource = 2;
832#[doc = " <summary>"]
833#[doc = " Use external input"]
834#[doc = " </summary>"]
835pub const enPS2000ASigGenTrigSource_PS2000A_SIGGEN_EXT_IN: enPS2000ASigGenTrigSource = 3;
836#[doc = " <summary>"]
837#[doc = " Wait for software trigger"]
838#[doc = " </summary>"]
839pub const enPS2000ASigGenTrigSource_PS2000A_SIGGEN_SOFT_TRIG: enPS2000ASigGenTrigSource = 4;
840#[doc = " <summary>"]
841#[doc = " The source that will trigger the signal generator"]
842#[doc = " </summary>"]
843pub type enPS2000ASigGenTrigSource = ::std::os::raw::c_uint;
844#[doc = " <summary>"]
845#[doc = " The source that will trigger the signal generator"]
846#[doc = " </summary>"]
847pub use self::enPS2000ASigGenTrigSource as PS2000A_SIGGEN_TRIG_SOURCE;
848#[doc = " <summary>"]
849#[doc = " The generator outputs the raw contents of the buffer repeatedly ."]
850#[doc = " </summary>"]
851pub const enPS2000AIndexMode_PS2000A_SINGLE: enPS2000AIndexMode = 0;
852#[doc = " <summary>"]
853#[doc = " The generator outputs the contents of the buffer from beginning to end, and then does a second pass in the reverse"]
854#[doc = " direction through the buffer"]
855#[doc = " </summary>"]
856pub const enPS2000AIndexMode_PS2000A_DUAL: enPS2000AIndexMode = 1;
857#[doc = " <summary>"]
858#[doc = " This is similiar to the Dual but passes through the buffer four time inverting, and inverting reversed"]
859#[doc = " </summary>"]
860pub const enPS2000AIndexMode_PS2000A_QUAD: enPS2000AIndexMode = 2;
861#[doc = " <summary>"]
862#[doc = " This is similiar to the Dual but passes through the buffer four time inverting, and inverting reversed"]
863#[doc = " </summary>"]
864pub const enPS2000AIndexMode_PS2000A_MAX_INDEX_MODES: enPS2000AIndexMode = 3;
865#[doc = " <summary>"]
866#[doc = " AWG index modes"]
867#[doc = " </summary>"]
868pub type enPS2000AIndexMode = ::std::os::raw::c_uint;
869#[doc = " <summary>"]
870#[doc = " AWG index modes"]
871#[doc = " </summary>"]
872pub use self::enPS2000AIndexMode as PS2000A_INDEX_MODE;
873pub const enPS2000A_ThresholdMode_PS2000A_LEVEL: enPS2000A_ThresholdMode = 0;
874pub const enPS2000A_ThresholdMode_PS2000A_WINDOW: enPS2000A_ThresholdMode = 1;
875#[doc = " <summary>"]
876#[doc = " The number of thershold that will be used for triggering."]
877#[doc = " </summary>"]
878pub type enPS2000A_ThresholdMode = ::std::os::raw::c_uint;
879#[doc = " <summary>"]
880#[doc = " The number of thershold that will be used for triggering."]
881#[doc = " </summary>"]
882pub use self::enPS2000A_ThresholdMode as PS2000A_THRESHOLD_MODE;
883#[doc = " <summary>"]
884#[doc = " For gated triggers: above the upper threshold."]
885#[doc = " </summary>"]
886pub const enPS2000AThresholdDirection_PS2000A_ABOVE: enPS2000AThresholdDirection = 0;
887#[doc = " <summary>"]
888#[doc = " For gated triggers: below the upper threshold."]
889#[doc = " </summary"]
890pub const enPS2000AThresholdDirection_PS2000A_BELOW: enPS2000AThresholdDirection = 1;
891#[doc = " <summary>"]
892#[doc = " For threshold triggers: rising edge, using upper threshold."]
893#[doc = " </summary>"]
894pub const enPS2000AThresholdDirection_PS2000A_RISING: enPS2000AThresholdDirection = 2;
895#[doc = " <summary>"]
896#[doc = " For threshold triggers: falling edge, using upper threshold."]
897#[doc = " </summary>"]
898pub const enPS2000AThresholdDirection_PS2000A_FALLING: enPS2000AThresholdDirection = 3;
899#[doc = " <summary>"]
900#[doc = " For threshold triggers: either edge."]
901#[doc = " </summary>"]
902pub const enPS2000AThresholdDirection_PS2000A_RISING_OR_FALLING: enPS2000AThresholdDirection = 4;
903#[doc = " <summary>"]
904#[doc = " For gated triggers: above the lower threshold."]
905#[doc = " </summary>"]
906pub const enPS2000AThresholdDirection_PS2000A_ABOVE_LOWER: enPS2000AThresholdDirection = 5;
907#[doc = " <summary>"]
908#[doc = " For gated triggers: below the lower threshold."]
909#[doc = " </summary>"]
910pub const enPS2000AThresholdDirection_PS2000A_BELOW_LOWER: enPS2000AThresholdDirection = 6;
911#[doc = " <summary>"]
912#[doc = " For threshold triggers: rising edge, using lower threshold."]
913#[doc = " </summary>"]
914pub const enPS2000AThresholdDirection_PS2000A_RISING_LOWER: enPS2000AThresholdDirection = 7;
915#[doc = " <summary>"]
916#[doc = " For threshold triggers: falling edge, using lower threshold."]
917#[doc = " </summary>"]
918pub const enPS2000AThresholdDirection_PS2000A_FALLING_LOWER: enPS2000AThresholdDirection = 8;
919#[doc = " <summary>"]
920#[doc = " For window-qualified triggers: inside window."]
921#[doc = " </summary>"]
922pub const enPS2000AThresholdDirection_PS2000A_INSIDE: enPS2000AThresholdDirection = 0;
923#[doc = " <summary>"]
924#[doc = " For window-qualified triggers: outside window."]
925#[doc = " </summary>"]
926pub const enPS2000AThresholdDirection_PS2000A_OUTSIDE: enPS2000AThresholdDirection = 1;
927#[doc = " <summary>"]
928#[doc = " For window triggers: entering the window."]
929#[doc = " </summary>"]
930pub const enPS2000AThresholdDirection_PS2000A_ENTER: enPS2000AThresholdDirection = 2;
931#[doc = " <summary>"]
932#[doc = " For window triggers: leaving the window."]
933#[doc = " </summary>"]
934pub const enPS2000AThresholdDirection_PS2000A_EXIT: enPS2000AThresholdDirection = 3;
935#[doc = " <summary>"]
936#[doc = " For window triggers: either entering or leaving the window."]
937#[doc = " </summary>"]
938pub const enPS2000AThresholdDirection_PS2000A_ENTER_OR_EXIT: enPS2000AThresholdDirection = 4;
939#[doc = " <summary>"]
940#[doc = " For window-qualified triggers."]
941#[doc = " </summary>"]
942pub const enPS2000AThresholdDirection_PS2000A_POSITIVE_RUNT: enPS2000AThresholdDirection = 9;
943#[doc = " <summary>"]
944#[doc = " For window-qualified triggers."]
945#[doc = " </summary>"]
946pub const enPS2000AThresholdDirection_PS2000A_NEGATIVE_RUNT: enPS2000AThresholdDirection = 10;
947#[doc = " <summary>"]
948#[doc = " No trigger."]
949#[doc = " </summary>"]
950pub const enPS2000AThresholdDirection_PS2000A_NONE: enPS2000AThresholdDirection = 2;
951#[doc = " <summary>"]
952#[doc = " The direction that the signal will pass through the trigger."]
953#[doc = " </summary>"]
954pub type enPS2000AThresholdDirection = ::std::os::raw::c_uint;
955#[doc = " <summary>"]
956#[doc = " The direction that the signal will pass through the trigger."]
957#[doc = " </summary>"]
958pub use self::enPS2000AThresholdDirection as PS2000A_THRESHOLD_DIRECTION;
959pub const enPS2000ADigitalDirection_PS2000A_DIGITAL_DONT_CARE: enPS2000ADigitalDirection = 0;
960pub const enPS2000ADigitalDirection_PS2000A_DIGITAL_DIRECTION_LOW: enPS2000ADigitalDirection = 1;
961pub const enPS2000ADigitalDirection_PS2000A_DIGITAL_DIRECTION_HIGH: enPS2000ADigitalDirection = 2;
962pub const enPS2000ADigitalDirection_PS2000A_DIGITAL_DIRECTION_RISING: enPS2000ADigitalDirection = 3;
963pub const enPS2000ADigitalDirection_PS2000A_DIGITAL_DIRECTION_FALLING: enPS2000ADigitalDirection =
964    4;
965pub const enPS2000ADigitalDirection_PS2000A_DIGITAL_DIRECTION_RISING_OR_FALLING:
966    enPS2000ADigitalDirection = 5;
967pub const enPS2000ADigitalDirection_PS2000A_DIGITAL_MAX_DIRECTION: enPS2000ADigitalDirection = 6;
968#[doc = " <summary>"]
969#[doc = " Digital channel trigger dirction"]
970#[doc = " </summary>"]
971pub type enPS2000ADigitalDirection = ::std::os::raw::c_uint;
972#[doc = " <summary>"]
973#[doc = " Digital channel trigger dirction"]
974#[doc = " </summary>"]
975pub use self::enPS2000ADigitalDirection as PS2000A_DIGITAL_DIRECTION;
976pub const enPS2000ATriggerState_PS2000A_CONDITION_DONT_CARE: enPS2000ATriggerState = 0;
977pub const enPS2000ATriggerState_PS2000A_CONDITION_TRUE: enPS2000ATriggerState = 1;
978pub const enPS2000ATriggerState_PS2000A_CONDITION_FALSE: enPS2000ATriggerState = 2;
979pub const enPS2000ATriggerState_PS2000A_CONDITION_MAX: enPS2000ATriggerState = 3;
980#[doc = " <summary>"]
981#[doc = " The type of condition that should be applied to each channel."]
982#[doc = " The channels that are set to True or False must all meet their conditions"]
983#[doc = " simultaneously to produce a trigger. Channels set to DontCare are ignored."]
984#[doc = " </summary>"]
985pub type enPS2000ATriggerState = ::std::os::raw::c_uint;
986#[doc = " <summary>"]
987#[doc = " The type of condition that should be applied to each channel."]
988#[doc = " The channels that are set to True or False must all meet their conditions"]
989#[doc = " simultaneously to produce a trigger. Channels set to DontCare are ignored."]
990#[doc = " </summary>"]
991pub use self::enPS2000ATriggerState as PS2000A_TRIGGER_STATE;
992#[repr(C, packed)]
993#[derive(Debug, Copy, Clone)]
994pub struct tPS2000ATriggerConditions {
995    pub channelA: PS2000A_TRIGGER_STATE,
996    pub channelB: PS2000A_TRIGGER_STATE,
997    pub channelC: PS2000A_TRIGGER_STATE,
998    pub channelD: PS2000A_TRIGGER_STATE,
999    pub external: PS2000A_TRIGGER_STATE,
1000    pub aux: PS2000A_TRIGGER_STATE,
1001    pub pulseWidthQualifier: PS2000A_TRIGGER_STATE,
1002    pub digital: PS2000A_TRIGGER_STATE,
1003}
1004
1005pub type PS2000A_TRIGGER_CONDITIONS = tPS2000ATriggerConditions;
1006#[repr(C, packed)]
1007#[derive(Debug, Copy, Clone)]
1008pub struct tPS2000APwqConditions {
1009    pub channelA: PS2000A_TRIGGER_STATE,
1010    pub channelB: PS2000A_TRIGGER_STATE,
1011    pub channelC: PS2000A_TRIGGER_STATE,
1012    pub channelD: PS2000A_TRIGGER_STATE,
1013    pub external: PS2000A_TRIGGER_STATE,
1014    pub aux: PS2000A_TRIGGER_STATE,
1015    pub digital: PS2000A_TRIGGER_STATE,
1016}
1017
1018pub type PS2000A_PWQ_CONDITIONS = tPS2000APwqConditions;
1019#[repr(C, packed)]
1020#[derive(Debug, Copy, Clone)]
1021pub struct tPS2000ADigitalChannelDirections {
1022    #[doc = " <summary>"]
1023    #[doc = " The channel being configured. Channels supported by series SetChannel for allowable values."]
1024    #[doc = " </summary>"]
1025    pub channel: PS2000A_DIGITAL_CHANNEL,
1026    #[doc = " <summary>"]
1027    #[doc = " The trigger direction that should be applied to each channel."]
1028    #[doc = " </summary>"]
1029    pub direction: PS2000A_DIGITAL_DIRECTION,
1030}
1031
1032pub type PS2000A_DIGITAL_CHANNEL_DIRECTIONS = tPS2000ADigitalChannelDirections;
1033#[repr(C, packed)]
1034#[derive(Debug, Copy, Clone)]
1035pub struct tPS2000ATriggerChannelProperties {
1036    #[doc = " <summary>"]
1037    #[doc = " The upper threshold at which the trigger must fire"]
1038    #[doc = " </summary>"]
1039    pub thresholdUpper: i16,
1040    #[doc = " <summary>"]
1041    #[doc = " The hysteresis by which the trigger must exceed the upper threshold before it will fire."]
1042    #[doc = " </summary>"]
1043    pub thresholdUpperHysteresis: u16,
1044    #[doc = " <summary>"]
1045    #[doc = " The lower threshold at which the trigger must fire."]
1046    #[doc = " </summary>"]
1047    pub thresholdLower: i16,
1048    #[doc = " <summary>"]
1049    #[doc = " The hysteresis by which the trigger must exceed the lower threshold before it will fire."]
1050    #[doc = " </summary>"]
1051    pub thresholdLowerHysteresis: u16,
1052    #[doc = " <summary>"]
1053    #[doc = " The channel to which the properties apply"]
1054    #[doc = " </summary>"]
1055    pub channel: PS2000A_CHANNEL,
1056    #[doc = " <summary>"]
1057    #[doc = " Either a level or window trigger"]
1058    #[doc = " </summary>"]
1059    pub thresholdMode: PS2000A_THRESHOLD_MODE,
1060}
1061
1062pub type PS2000A_TRIGGER_CHANNEL_PROPERTIES = tPS2000ATriggerChannelProperties;
1063#[doc = " <summary>"]
1064#[doc = " No downsampling. Returns the raw data values."]
1065#[doc = " </summary>"]
1066pub const enPS2000ARatioMode_PS2000A_RATIO_MODE_NONE: enPS2000ARatioMode = 0;
1067#[doc = " <summary>"]
1068#[doc = " Reduces every block of n values to just two values: a minimum and a maximum."]
1069#[doc = " The minimum and maximum values are returned in two separate buffers."]
1070#[doc = " </summary>"]
1071pub const enPS2000ARatioMode_PS2000A_RATIO_MODE_AGGREGATE: enPS2000ARatioMode = 1;
1072#[doc = " <summary>"]
1073#[doc = " Reduces every block of n values to a single value representing the"]
1074#[doc = " average (arithmetic mean) of all the values."]
1075#[doc = " </summary>"]
1076pub const enPS2000ARatioMode_PS2000A_RATIO_MODE_DECIMATE: enPS2000ARatioMode = 2;
1077#[doc = " <summary>"]
1078#[doc = " Reduces every block of n values to just the first value in the block,"]
1079#[doc = " discarding all the other values."]
1080#[doc = " </summary>"]
1081pub const enPS2000ARatioMode_PS2000A_RATIO_MODE_AVERAGE: enPS2000ARatioMode = 4;
1082#[doc = " <summary>"]
1083#[doc = " Various methods of data reduction."]
1084#[doc = " Note that a single call to setting the buffers (ie. ps2000aSetDataBuffer) can only"]
1085#[doc = " associate one buffer with one downsampling mode. If you intend to retrieve more than one"]
1086#[doc = " downsampling mode from the get values functions, you must call set data buffer several"]
1087#[doc = "\ttimes to associate a separate buffer with each channel and downsampling mode."]
1088#[doc = " </summary>"]
1089pub type enPS2000ARatioMode = ::std::os::raw::c_uint;
1090#[doc = " <summary>"]
1091#[doc = " Various methods of data reduction."]
1092#[doc = " Note that a single call to setting the buffers (ie. ps2000aSetDataBuffer) can only"]
1093#[doc = " associate one buffer with one downsampling mode. If you intend to retrieve more than one"]
1094#[doc = " downsampling mode from the get values functions, you must call set data buffer several"]
1095#[doc = "\ttimes to associate a separate buffer with each channel and downsampling mode."]
1096#[doc = " </summary>"]
1097pub use self::enPS2000ARatioMode as PS2000A_RATIO_MODE;
1098#[doc = " <summary>"]
1099#[doc = " Do not use the pulse width qualifier"]
1100#[doc = " </summary>"]
1101pub const enPS2000APulseWidthType_PS2000A_PW_TYPE_NONE: enPS2000APulseWidthType = 0;
1102#[doc = " <summary>"]
1103#[doc = " Pulse width less than lower pulse width counter"]
1104#[doc = " </summary>"]
1105pub const enPS2000APulseWidthType_PS2000A_PW_TYPE_LESS_THAN: enPS2000APulseWidthType = 1;
1106#[doc = " <summary>"]
1107#[doc = " Pulse width greater than lower pulse width counter"]
1108#[doc = " </summary>"]
1109pub const enPS2000APulseWidthType_PS2000A_PW_TYPE_GREATER_THAN: enPS2000APulseWidthType = 2;
1110#[doc = " <summary>"]
1111#[doc = " Pulse width between lower and upper pulsee width counter"]
1112#[doc = " </summary>"]
1113pub const enPS2000APulseWidthType_PS2000A_PW_TYPE_IN_RANGE: enPS2000APulseWidthType = 3;
1114#[doc = " <summary>"]
1115#[doc = " Pulse width not between lower and upper pulse width counter"]
1116#[doc = " </summary>"]
1117pub const enPS2000APulseWidthType_PS2000A_PW_TYPE_OUT_OF_RANGE: enPS2000APulseWidthType = 4;
1118#[doc = " <summary>"]
1119#[doc = " The pulse-width type."]
1120#[doc = " </summary>"]
1121pub type enPS2000APulseWidthType = ::std::os::raw::c_uint;
1122#[doc = " <summary>"]
1123#[doc = " The pulse-width type."]
1124#[doc = " </summary>"]
1125pub use self::enPS2000APulseWidthType as PS2000A_PULSE_WIDTH_TYPE;
1126pub const enPS2000AHoldOffType_PS2000A_TIME: enPS2000AHoldOffType = 0;
1127pub const enPS2000AHoldOffType_PS2000A_MAX_HOLDOFF_TYPE: enPS2000AHoldOffType = 1;
1128pub type enPS2000AHoldOffType = ::std::os::raw::c_uint;
1129pub use self::enPS2000AHoldOffType as PS2000A_HOLDOFF_TYPE;
1130#[repr(C, packed)]
1131#[derive(Debug, Copy, Clone)]
1132pub struct tPS2000AScalingFactors {
1133    pub channelOrPort: PS2000A_CHANNEL,
1134    pub range: PS2000A_RANGE,
1135    pub offset: i16,
1136    pub scalingFactor: f64,
1137}
1138
1139pub type PS2000A_SCALING_FACTORS_VALUES = tPS2000AScalingFactors;
1140#[doc = " <summary>"]
1141#[doc = " This callback function is part of your application. You register it with the ps3000a"]
1142#[doc = " driver using series RunBlock, and the driver calls it back when block-mode data is"]
1143#[doc = " ready. You can then download the data using series GetValues."]
1144#[doc = " </summary>"]
1145#[doc = " <param name=\"handle\">Device identifier returned by OpenUnit.</param>"]
1146#[doc = " <param name=\"status\">Indicates whether an error occurred during collection of the data.</param>"]
1147#[doc = " <param name=\"pParameter\">A void pointer passed from series RunBlock. Your callback function can write to this"]
1148#[doc = "  location to send any data, such as a status flag, back to your application.</param>"]
1149pub type ps2000aBlockReady = ::std::option::Option<
1150    unsafe extern "C" fn(handle: i16, status: PICO_STATUS, pParameter: *mut ::std::os::raw::c_void),
1151>;
1152#[doc = " <summary>"]
1153#[doc = " This callback function is part of your application. You register it with the driver using"]
1154#[doc = " series GetStreamingLatestValues, and the driver calls it back when streaming- mode data is"]
1155#[doc = " ready. You can then download the data using the series GetValuesAsync function."]
1156#[doc = " </summary>"]
1157#[doc = " <param name=\"handle\">Device identifier returned by OpenUnit.</param>"]
1158#[doc = " <param name=\"noOfSamples\">The number of samples available.</param>"]
1159#[doc = " <param name=\"startIndex\">An index to the first valid sample in the buffer. This is"]
1160#[doc = "  the buffer that was previously passed to series SetDataBuffer.</param>"]
1161#[doc = " <param name=\"overflow\">Returns a set of flags that indicate whether an overvoltage has occurred"]
1162#[doc = "  on any of the channels.It is a bit pattern with bit 0 denoting Channel.</param>"]
1163#[doc = " <param name=\"triggerAt\">An index to the buffer indicating the location of the trigger point relative"]
1164#[doc = "  to startIndex.This parameter is valid only when triggered is non-zero.</param>"]
1165#[doc = " <param name=\"triggered\">A flag indicating whether a trigger occurred. If non-zero,"]
1166#[doc = "  a trigger occurred at the location indicated by triggerAt.</param>"]
1167#[doc = " <param name=\"autoStop\">The flag that was set in the call to series RunStreaming.</param>"]
1168#[doc = " <param name=\"pParameter\">a void pointer passed from series GetStreamingLatestValues."]
1169#[doc = " The callback function can write to this locatio.</param>"]
1170pub type ps2000aStreamingReady = ::std::option::Option<
1171    unsafe extern "C" fn(
1172        handle: i16,
1173        noOfSamples: i32,
1174        startIndex: u32,
1175        overflow: i16,
1176        triggerAt: u32,
1177        triggered: i16,
1178        autoStop: i16,
1179        pParameter: *mut ::std::os::raw::c_void,
1180    ),
1181>;
1182#[doc = " <summary>"]
1183#[doc = " This is a callback function that you write to collect data from the driver. You supply a"]
1184#[doc = " pointer to the function when you call ps3000aGetValuesAsync, and the driver calls"]
1185#[doc = " your function back when the data is ready."]
1186#[doc = " </summary>"]
1187#[doc = " <param name=\"handle\">Device identifier returned by OpenUnit.</param>"]
1188#[doc = " <param name=\"status\">Indicates whether an error occurred during collection of the data.</param>"]
1189#[doc = " <param name=\"noOfSamples\">the number of samples collected.</param>"]
1190#[doc = " <param name=\"overflow\">A set of flags that indicates whether an overvoltage has"]
1191#[doc = " occurred and on which channels.It is a bit field with bit 0 representing Channel A.</param>"]
1192#[doc = " <param name=\"pParameter\">A void pointer passed from ps3000aGetValuesAsync. The callback function can"]
1193#[doc = " write to this location to send any data, such as a status flag, back to the application."]
1194#[doc = " The data type is defined by the application programmer.</param>"]
1195pub type ps2000aDataReady = ::std::option::Option<
1196    unsafe extern "C" fn(
1197        handle: i16,
1198        status: PICO_STATUS,
1199        noOfSamples: u32,
1200        overflow: i16,
1201        pParameter: *mut ::std::os::raw::c_void,
1202    ),
1203>;
1204pub type __builtin_va_list = [__va_list_tag; 1usize];
1205#[repr(C)]
1206#[derive(Debug, Copy, Clone)]
1207pub struct __va_list_tag {
1208    pub gp_offset: ::std::os::raw::c_uint,
1209    pub fp_offset: ::std::os::raw::c_uint,
1210    pub overflow_arg_area: *mut ::std::os::raw::c_void,
1211    pub reg_save_area: *mut ::std::os::raw::c_void,
1212}
1213
1214extern crate libloading;
1215pub struct PS2000ALoader {
1216    __library: ::libloading::Library,
1217    pub ps2000aApplyFix: Result<unsafe extern "C" fn(u32, u16), ::libloading::Error>,
1218    pub ps2000aOpenUnit: Result<
1219        unsafe extern "C" fn(handle: *mut i16, serial: *mut i8) -> PICO_STATUS,
1220        ::libloading::Error,
1221    >,
1222    pub ps2000aOpenUnitAsync: Result<
1223        unsafe extern "C" fn(status: *mut i16, serial: *mut i8) -> PICO_STATUS,
1224        ::libloading::Error,
1225    >,
1226    pub ps2000aOpenUnitProgress: Result<
1227        unsafe extern "C" fn(
1228            handle: *mut i16,
1229            progressPercent: *mut i16,
1230            complete: *mut i16,
1231        ) -> PICO_STATUS,
1232        ::libloading::Error,
1233    >,
1234    pub ps2000aGetUnitInfo: Result<
1235        unsafe extern "C" fn(
1236            handle: i16,
1237            string: *mut i8,
1238            stringLength: i16,
1239            requiredSize: *mut i16,
1240            info: PICO_INFO,
1241        ) -> PICO_STATUS,
1242        ::libloading::Error,
1243    >,
1244    pub ps2000aFlashLed:
1245        Result<unsafe extern "C" fn(handle: i16, start: i16) -> PICO_STATUS, ::libloading::Error>,
1246    pub ps2000aCloseUnit:
1247        Result<unsafe extern "C" fn(handle: i16) -> PICO_STATUS, ::libloading::Error>,
1248    pub ps2000aMemorySegments: Result<
1249        unsafe extern "C" fn(handle: i16, nSegments: u32, nMaxSamples: *mut i32) -> PICO_STATUS,
1250        ::libloading::Error,
1251    >,
1252    pub ps2000aSetChannel: Result<
1253        unsafe extern "C" fn(
1254            handle: i16,
1255            channel: PS2000A_CHANNEL,
1256            enabled: i16,
1257            type_: PS2000A_COUPLING,
1258            range: PS2000A_RANGE,
1259            analogOffset: f32,
1260        ) -> PICO_STATUS,
1261        ::libloading::Error,
1262    >,
1263    pub ps2000aSetDigitalPort: Result<
1264        unsafe extern "C" fn(
1265            handle: i16,
1266            port: PS2000A_DIGITAL_PORT,
1267            enabled: i16,
1268            logicLevel: i16,
1269        ) -> PICO_STATUS,
1270        ::libloading::Error,
1271    >,
1272    pub ps2000aSetNoOfCaptures: Result<
1273        unsafe extern "C" fn(handle: i16, nCaptures: u32) -> PICO_STATUS,
1274        ::libloading::Error,
1275    >,
1276    pub ps2000aGetTimebase: Result<
1277        unsafe extern "C" fn(
1278            handle: i16,
1279            timebase: u32,
1280            noSamples: i32,
1281            timeIntervalNanoseconds: *mut i32,
1282            oversample: i16,
1283            maxSamples: *mut i32,
1284            segmentIndex: u32,
1285        ) -> PICO_STATUS,
1286        ::libloading::Error,
1287    >,
1288    pub ps2000aGetTimebase2: Result<
1289        unsafe extern "C" fn(
1290            handle: i16,
1291            timebase: u32,
1292            noSamples: i32,
1293            timeIntervalNanoseconds: *mut f32,
1294            oversample: i16,
1295            maxSamples: *mut i32,
1296            segmentIndex: u32,
1297        ) -> PICO_STATUS,
1298        ::libloading::Error,
1299    >,
1300    pub ps2000aSetSigGenArbitrary: Result<
1301        unsafe extern "C" fn(
1302            handle: i16,
1303            offsetVoltage: i32,
1304            pkToPk: u32,
1305            startDeltaPhase: u32,
1306            stopDeltaPhase: u32,
1307            deltaPhaseIncrement: u32,
1308            dwellCount: u32,
1309            arbitraryWaveform: *mut i16,
1310            arbitraryWaveformSize: i32,
1311            sweepType: PS2000A_SWEEP_TYPE,
1312            operation: PS2000A_EXTRA_OPERATIONS,
1313            indexMode: PS2000A_INDEX_MODE,
1314            shots: u32,
1315            sweeps: u32,
1316            triggerType: PS2000A_SIGGEN_TRIG_TYPE,
1317            triggerSource: PS2000A_SIGGEN_TRIG_SOURCE,
1318            extInThreshold: i16,
1319        ) -> PICO_STATUS,
1320        ::libloading::Error,
1321    >,
1322    pub ps2000aSetSigGenBuiltIn: Result<
1323        unsafe extern "C" fn(
1324            handle: i16,
1325            offsetVoltage: i32,
1326            pkToPk: u32,
1327            waveType: i16,
1328            startFrequency: f32,
1329            stopFrequency: f32,
1330            increment: f32,
1331            dwellTime: f32,
1332            sweepType: PS2000A_SWEEP_TYPE,
1333            operation: PS2000A_EXTRA_OPERATIONS,
1334            shots: u32,
1335            sweeps: u32,
1336            triggerType: PS2000A_SIGGEN_TRIG_TYPE,
1337            triggerSource: PS2000A_SIGGEN_TRIG_SOURCE,
1338            extInThreshold: i16,
1339        ) -> PICO_STATUS,
1340        ::libloading::Error,
1341    >,
1342    pub ps2000aSetSigGenBuiltInV2: Result<
1343        unsafe extern "C" fn(
1344            handle: i16,
1345            offsetVoltage: i32,
1346            pkToPk: u32,
1347            waveType: i16,
1348            startFrequency: f64,
1349            stopFrequency: f64,
1350            increment: f64,
1351            dwellTime: f64,
1352            sweepType: PS2000A_SWEEP_TYPE,
1353            operation: PS2000A_EXTRA_OPERATIONS,
1354            shots: u32,
1355            sweeps: u32,
1356            triggerType: PS2000A_SIGGEN_TRIG_TYPE,
1357            triggerSource: PS2000A_SIGGEN_TRIG_SOURCE,
1358            extInThreshold: i16,
1359        ) -> PICO_STATUS,
1360        ::libloading::Error,
1361    >,
1362    pub ps2000aSetSigGenPropertiesArbitrary: Result<
1363        unsafe extern "C" fn(
1364            handle: i16,
1365            startDeltaPhase: u32,
1366            stopDeltaPhase: u32,
1367            deltaPhaseIncrement: u32,
1368            dwellCount: u32,
1369            sweepType: PS2000A_SWEEP_TYPE,
1370            shots: u32,
1371            sweeps: u32,
1372            triggerType: PS2000A_SIGGEN_TRIG_TYPE,
1373            triggerSource: PS2000A_SIGGEN_TRIG_SOURCE,
1374            extInThreshold: i16,
1375        ) -> PICO_STATUS,
1376        ::libloading::Error,
1377    >,
1378    pub ps2000aSetSigGenPropertiesBuiltIn: Result<
1379        unsafe extern "C" fn(
1380            handle: i16,
1381            startFrequency: f64,
1382            stopFrequency: f64,
1383            increment: f64,
1384            dwellTime: f64,
1385            sweepType: PS2000A_SWEEP_TYPE,
1386            shots: u32,
1387            sweeps: u32,
1388            triggerType: PS2000A_SIGGEN_TRIG_TYPE,
1389            triggerSource: PS2000A_SIGGEN_TRIG_SOURCE,
1390            extInThreshold: i16,
1391        ) -> PICO_STATUS,
1392        ::libloading::Error,
1393    >,
1394    pub ps2000aSigGenFrequencyToPhase: Result<
1395        unsafe extern "C" fn(
1396            handle: i16,
1397            frequency: f64,
1398            indexMode: PS2000A_INDEX_MODE,
1399            bufferLength: u32,
1400            phase: *mut u32,
1401        ) -> PICO_STATUS,
1402        ::libloading::Error,
1403    >,
1404    pub ps2000aSigGenArbitraryMinMaxValues: Result<
1405        unsafe extern "C" fn(
1406            handle: i16,
1407            minArbitraryWaveformValue: *mut i16,
1408            maxArbitraryWaveformValue: *mut i16,
1409            minArbitraryWaveformSize: *mut u32,
1410            maxArbitraryWaveformSize: *mut u32,
1411        ) -> PICO_STATUS,
1412        ::libloading::Error,
1413    >,
1414    pub ps2000aSigGenSoftwareControl:
1415        Result<unsafe extern "C" fn(handle: i16, state: i16) -> PICO_STATUS, ::libloading::Error>,
1416    pub ps2000aSetEts: Result<
1417        unsafe extern "C" fn(
1418            handle: i16,
1419            mode: PS2000A_ETS_MODE,
1420            etsCycles: i16,
1421            etsInterleave: i16,
1422            sampleTimePicoseconds: *mut i32,
1423        ) -> PICO_STATUS,
1424        ::libloading::Error,
1425    >,
1426    pub ps2000aSetSimpleTrigger: Result<
1427        unsafe extern "C" fn(
1428            handle: i16,
1429            enable: i16,
1430            source: PS2000A_CHANNEL,
1431            threshold: i16,
1432            direction: PS2000A_THRESHOLD_DIRECTION,
1433            delay: u32,
1434            autoTrigger_ms: i16,
1435        ) -> PICO_STATUS,
1436        ::libloading::Error,
1437    >,
1438    pub ps2000aSetTriggerDigitalPortProperties: Result<
1439        unsafe extern "C" fn(
1440            handle: i16,
1441            directions: *mut PS2000A_DIGITAL_CHANNEL_DIRECTIONS,
1442            nDirections: i16,
1443        ) -> PICO_STATUS,
1444        ::libloading::Error,
1445    >,
1446    pub ps2000aSetDigitalAnalogTriggerOperand: Result<
1447        unsafe extern "C" fn(handle: i16, operand: PS2000A_TRIGGER_OPERAND) -> PICO_STATUS,
1448        ::libloading::Error,
1449    >,
1450    pub ps2000aSetPulseWidthDigitalPortProperties: Result<
1451        unsafe extern "C" fn(
1452            handle: i16,
1453            directions: *mut PS2000A_DIGITAL_CHANNEL_DIRECTIONS,
1454            nDirections: i16,
1455        ) -> PICO_STATUS,
1456        ::libloading::Error,
1457    >,
1458    pub ps2000aSetTriggerChannelProperties: Result<
1459        unsafe extern "C" fn(
1460            handle: i16,
1461            channelProperties: *mut PS2000A_TRIGGER_CHANNEL_PROPERTIES,
1462            nChannelProperties: i16,
1463            auxOutputEnable: i16,
1464            autoTriggerMilliseconds: i32,
1465        ) -> PICO_STATUS,
1466        ::libloading::Error,
1467    >,
1468    pub ps2000aSetTriggerChannelConditions: Result<
1469        unsafe extern "C" fn(
1470            handle: i16,
1471            conditions: *mut PS2000A_TRIGGER_CONDITIONS,
1472            nConditions: i16,
1473        ) -> PICO_STATUS,
1474        ::libloading::Error,
1475    >,
1476    pub ps2000aSetTriggerChannelDirections: Result<
1477        unsafe extern "C" fn(
1478            handle: i16,
1479            channelA: PS2000A_THRESHOLD_DIRECTION,
1480            channelB: PS2000A_THRESHOLD_DIRECTION,
1481            channelC: PS2000A_THRESHOLD_DIRECTION,
1482            channelD: PS2000A_THRESHOLD_DIRECTION,
1483            ext: PS2000A_THRESHOLD_DIRECTION,
1484            aux: PS2000A_THRESHOLD_DIRECTION,
1485        ) -> PICO_STATUS,
1486        ::libloading::Error,
1487    >,
1488    pub ps2000aSetTriggerDelay:
1489        Result<unsafe extern "C" fn(handle: i16, delay: u32) -> PICO_STATUS, ::libloading::Error>,
1490    pub ps2000aSetPulseWidthQualifier: Result<
1491        unsafe extern "C" fn(
1492            handle: i16,
1493            conditions: *mut PS2000A_PWQ_CONDITIONS,
1494            nConditions: i16,
1495            direction: PS2000A_THRESHOLD_DIRECTION,
1496            lower: u32,
1497            upper: u32,
1498            type_: PS2000A_PULSE_WIDTH_TYPE,
1499        ) -> PICO_STATUS,
1500        ::libloading::Error,
1501    >,
1502    pub ps2000aIsTriggerOrPulseWidthQualifierEnabled: Result<
1503        unsafe extern "C" fn(
1504            handle: i16,
1505            triggerEnabled: *mut i16,
1506            pulseWidthQualifierEnabled: *mut i16,
1507        ) -> PICO_STATUS,
1508        ::libloading::Error,
1509    >,
1510    pub ps2000aGetTriggerTimeOffset: Result<
1511        unsafe extern "C" fn(
1512            handle: i16,
1513            timeUpper: *mut u32,
1514            timeLower: *mut u32,
1515            timeUnits: *mut PS2000A_TIME_UNITS,
1516            segmentIndex: u32,
1517        ) -> PICO_STATUS,
1518        ::libloading::Error,
1519    >,
1520    pub ps2000aGetTriggerTimeOffset64: Result<
1521        unsafe extern "C" fn(
1522            handle: i16,
1523            time: *mut i64,
1524            timeUnits: *mut PS2000A_TIME_UNITS,
1525            segmentIndex: u32,
1526        ) -> PICO_STATUS,
1527        ::libloading::Error,
1528    >,
1529    pub ps2000aGetValuesTriggerTimeOffsetBulk: Result<
1530        unsafe extern "C" fn(
1531            handle: i16,
1532            timesUpper: *mut u32,
1533            timesLower: *mut u32,
1534            timeUnits: *mut PS2000A_TIME_UNITS,
1535            fromSegmentIndex: u32,
1536            toSegmentIndex: u32,
1537        ) -> PICO_STATUS,
1538        ::libloading::Error,
1539    >,
1540    pub ps2000aGetValuesTriggerTimeOffsetBulk64: Result<
1541        unsafe extern "C" fn(
1542            handle: i16,
1543            times: *mut i64,
1544            timeUnits: *mut PS2000A_TIME_UNITS,
1545            fromSegmentIndex: u32,
1546            toSegmentIndex: u32,
1547        ) -> PICO_STATUS,
1548        ::libloading::Error,
1549    >,
1550    pub ps2000aGetNoOfCaptures: Result<
1551        unsafe extern "C" fn(handle: i16, nCaptures: *mut u32) -> PICO_STATUS,
1552        ::libloading::Error,
1553    >,
1554    pub ps2000aGetNoOfProcessedCaptures: Result<
1555        unsafe extern "C" fn(handle: i16, nProcessedCaptures: *mut u32) -> PICO_STATUS,
1556        ::libloading::Error,
1557    >,
1558    pub ps2000aSetDataBuffer: Result<
1559        unsafe extern "C" fn(
1560            handle: i16,
1561            channelOrPort: i32,
1562            buffer: *mut i16,
1563            bufferLth: i32,
1564            segmentIndex: u32,
1565            mode: PS2000A_RATIO_MODE,
1566        ) -> PICO_STATUS,
1567        ::libloading::Error,
1568    >,
1569    pub ps2000aSetDataBuffers: Result<
1570        unsafe extern "C" fn(
1571            handle: i16,
1572            channelOrPort: i32,
1573            bufferMax: *mut i16,
1574            bufferMin: *mut i16,
1575            bufferLth: i32,
1576            segmentIndex: u32,
1577            mode: PS2000A_RATIO_MODE,
1578        ) -> PICO_STATUS,
1579        ::libloading::Error,
1580    >,
1581    pub ps2000aSetUnscaledDataBuffers: Result<
1582        unsafe extern "C" fn(
1583            handle: i16,
1584            channelOrPort: PS2000A_CHANNEL,
1585            bufferMax: *mut i8,
1586            bufferMin: *mut i8,
1587            bufferLth: i32,
1588            segmentIndex: u32,
1589            mode: PS2000A_RATIO_MODE,
1590        ) -> PICO_STATUS,
1591        ::libloading::Error,
1592    >,
1593    pub ps2000aSetEtsTimeBuffer: Result<
1594        unsafe extern "C" fn(handle: i16, buffer: *mut i64, bufferLth: i32) -> PICO_STATUS,
1595        ::libloading::Error,
1596    >,
1597    pub ps2000aSetEtsTimeBuffers: Result<
1598        unsafe extern "C" fn(
1599            handle: i16,
1600            timeUpper: *mut u32,
1601            timeLower: *mut u32,
1602            bufferLth: i32,
1603        ) -> PICO_STATUS,
1604        ::libloading::Error,
1605    >,
1606    pub ps2000aIsReady: Result<
1607        unsafe extern "C" fn(handle: i16, ready: *mut i16) -> PICO_STATUS,
1608        ::libloading::Error,
1609    >,
1610    pub ps2000aRunBlock: Result<
1611        unsafe extern "C" fn(
1612            handle: i16,
1613            noOfPreTriggerSamples: i32,
1614            noOfPostTriggerSamples: i32,
1615            timebase: u32,
1616            oversample: i16,
1617            timeIndisposedMs: *mut i32,
1618            segmentIndex: u32,
1619            lpReady: ps2000aBlockReady,
1620            pParameter: *mut ::std::os::raw::c_void,
1621        ) -> PICO_STATUS,
1622        ::libloading::Error,
1623    >,
1624    pub ps2000aRunStreaming: Result<
1625        unsafe extern "C" fn(
1626            handle: i16,
1627            sampleInterval: *mut u32,
1628            sampleIntervalTimeUnits: PS2000A_TIME_UNITS,
1629            maxPreTriggerSamples: u32,
1630            maxPostPreTriggerSamples: u32,
1631            autoStop: i16,
1632            downSampleRatio: u32,
1633            downSampleRatioMode: PS2000A_RATIO_MODE,
1634            overviewBufferSize: u32,
1635        ) -> PICO_STATUS,
1636        ::libloading::Error,
1637    >,
1638    pub ps2000aGetStreamingLatestValues: Result<
1639        unsafe extern "C" fn(
1640            handle: i16,
1641            lpPs2000aReady: ps2000aStreamingReady,
1642            pParameter: *mut ::std::os::raw::c_void,
1643        ) -> PICO_STATUS,
1644        ::libloading::Error,
1645    >,
1646    pub ps2000aNoOfStreamingValues: Result<
1647        unsafe extern "C" fn(handle: i16, noOfValues: *mut u32) -> PICO_STATUS,
1648        ::libloading::Error,
1649    >,
1650    pub ps2000aGetMaxDownSampleRatio: Result<
1651        unsafe extern "C" fn(
1652            handle: i16,
1653            noOfUnaggreatedSamples: u32,
1654            maxDownSampleRatio: *mut u32,
1655            downSampleRatioMode: PS2000A_RATIO_MODE,
1656            segmentIndex: u32,
1657        ) -> PICO_STATUS,
1658        ::libloading::Error,
1659    >,
1660    pub ps2000aGetValues: Result<
1661        unsafe extern "C" fn(
1662            handle: i16,
1663            startIndex: u32,
1664            noOfSamples: *mut u32,
1665            downSampleRatio: u32,
1666            downSampleRatioMode: PS2000A_RATIO_MODE,
1667            segmentIndex: u32,
1668            overflow: *mut i16,
1669        ) -> PICO_STATUS,
1670        ::libloading::Error,
1671    >,
1672    pub ps2000aGetValuesBulk: Result<
1673        unsafe extern "C" fn(
1674            handle: i16,
1675            noOfSamples: *mut u32,
1676            fromSegmentIndex: u32,
1677            toSegmentIndex: u32,
1678            downSampleRatio: u32,
1679            downSampleRatioMode: PS2000A_RATIO_MODE,
1680            overflow: *mut i16,
1681        ) -> PICO_STATUS,
1682        ::libloading::Error,
1683    >,
1684    pub ps2000aGetValuesAsync: Result<
1685        unsafe extern "C" fn(
1686            handle: i16,
1687            startIndex: u32,
1688            noOfSamples: u32,
1689            downSampleRatio: u32,
1690            downSampleRatioMode: PS2000A_RATIO_MODE,
1691            segmentIndex: u32,
1692            lpDataReady: *mut ::std::os::raw::c_void,
1693            pParameter: *mut ::std::os::raw::c_void,
1694        ) -> PICO_STATUS,
1695        ::libloading::Error,
1696    >,
1697    pub ps2000aGetValuesOverlapped: Result<
1698        unsafe extern "C" fn(
1699            handle: i16,
1700            startIndex: u32,
1701            noOfSamples: *mut u32,
1702            downSampleRatio: u32,
1703            downSampleRatioMode: PS2000A_RATIO_MODE,
1704            segmentIndex: u32,
1705            overflow: *mut i16,
1706        ) -> PICO_STATUS,
1707        ::libloading::Error,
1708    >,
1709    pub ps2000aGetValuesOverlappedBulk: Result<
1710        unsafe extern "C" fn(
1711            handle: i16,
1712            startIndex: u32,
1713            noOfSamples: *mut u32,
1714            downSampleRatio: u32,
1715            downSampleRatioMode: PS2000A_RATIO_MODE,
1716            fromSegmentIndex: u32,
1717            toSegmentIndex: u32,
1718            overflow: *mut i16,
1719        ) -> PICO_STATUS,
1720        ::libloading::Error,
1721    >,
1722    pub ps2000aStop: Result<unsafe extern "C" fn(handle: i16) -> PICO_STATUS, ::libloading::Error>,
1723    pub ps2000aHoldOff: Result<
1724        unsafe extern "C" fn(handle: i16, holdoff: u64, type_: PS2000A_HOLDOFF_TYPE) -> PICO_STATUS,
1725        ::libloading::Error,
1726    >,
1727    pub ps2000aGetChannelInformation: Result<
1728        unsafe extern "C" fn(
1729            handle: i16,
1730            info: PS2000A_CHANNEL_INFO,
1731            probe: i32,
1732            ranges: *mut i32,
1733            length: *mut i32,
1734            channels: i32,
1735        ) -> PICO_STATUS,
1736        ::libloading::Error,
1737    >,
1738    pub ps2000aEnumerateUnits: Result<
1739        unsafe extern "C" fn(count: *mut i16, serials: *mut i8, serialLth: *mut i16) -> PICO_STATUS,
1740        ::libloading::Error,
1741    >,
1742    pub ps2000aPingUnit:
1743        Result<unsafe extern "C" fn(handle: i16) -> PICO_STATUS, ::libloading::Error>,
1744    pub ps2000aMaximumValue: Result<
1745        unsafe extern "C" fn(handle: i16, value: *mut i16) -> PICO_STATUS,
1746        ::libloading::Error,
1747    >,
1748    pub ps2000aMinimumValue: Result<
1749        unsafe extern "C" fn(handle: i16, value: *mut i16) -> PICO_STATUS,
1750        ::libloading::Error,
1751    >,
1752    pub ps2000aGetAnalogueOffset: Result<
1753        unsafe extern "C" fn(
1754            handle: i16,
1755            range: PS2000A_RANGE,
1756            coupling: PS2000A_COUPLING,
1757            maximumVoltage: *mut f32,
1758            minimumVoltage: *mut f32,
1759        ) -> PICO_STATUS,
1760        ::libloading::Error,
1761    >,
1762    pub ps2000aGetMaxSegments: Result<
1763        unsafe extern "C" fn(handle: i16, maxSegments: *mut u32) -> PICO_STATUS,
1764        ::libloading::Error,
1765    >,
1766    pub ps2000aQueryOutputEdgeDetect: Result<
1767        unsafe extern "C" fn(handle: i16, state: *mut i16) -> PICO_STATUS,
1768        ::libloading::Error,
1769    >,
1770    pub ps2000aSetOutputEdgeDetect:
1771        Result<unsafe extern "C" fn(handle: i16, state: i16) -> PICO_STATUS, ::libloading::Error>,
1772    pub ps2000aGetScalingValues: Result<
1773        unsafe extern "C" fn(
1774            handle: i16,
1775            scalingValues: *mut PS2000A_SCALING_FACTORS_VALUES,
1776            nChannels: i16,
1777        ) -> PICO_STATUS,
1778        ::libloading::Error,
1779    >,
1780}
1781impl PS2000ALoader {
1782    pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
1783    where
1784        P: AsRef<::std::ffi::OsStr>,
1785    {
1786        let __library = ::libloading::Library::new(path)?;
1787        let ps2000aApplyFix = __library.get(b"ps2000aApplyFix\0").map(|sym| *sym);
1788        let ps2000aOpenUnit = __library.get(b"ps2000aOpenUnit\0").map(|sym| *sym);
1789        let ps2000aOpenUnitAsync = __library.get(b"ps2000aOpenUnitAsync\0").map(|sym| *sym);
1790        let ps2000aOpenUnitProgress = __library.get(b"ps2000aOpenUnitProgress\0").map(|sym| *sym);
1791        let ps2000aGetUnitInfo = __library.get(b"ps2000aGetUnitInfo\0").map(|sym| *sym);
1792        let ps2000aFlashLed = __library.get(b"ps2000aFlashLed\0").map(|sym| *sym);
1793        let ps2000aCloseUnit = __library.get(b"ps2000aCloseUnit\0").map(|sym| *sym);
1794        let ps2000aMemorySegments = __library.get(b"ps2000aMemorySegments\0").map(|sym| *sym);
1795        let ps2000aSetChannel = __library.get(b"ps2000aSetChannel\0").map(|sym| *sym);
1796        let ps2000aSetDigitalPort = __library.get(b"ps2000aSetDigitalPort\0").map(|sym| *sym);
1797        let ps2000aSetNoOfCaptures = __library.get(b"ps2000aSetNoOfCaptures\0").map(|sym| *sym);
1798        let ps2000aGetTimebase = __library.get(b"ps2000aGetTimebase\0").map(|sym| *sym);
1799        let ps2000aGetTimebase2 = __library.get(b"ps2000aGetTimebase2\0").map(|sym| *sym);
1800        let ps2000aSetSigGenArbitrary = __library
1801            .get(b"ps2000aSetSigGenArbitrary\0")
1802            .map(|sym| *sym);
1803        let ps2000aSetSigGenBuiltIn = __library.get(b"ps2000aSetSigGenBuiltIn\0").map(|sym| *sym);
1804        let ps2000aSetSigGenBuiltInV2 = __library
1805            .get(b"ps2000aSetSigGenBuiltInV2\0")
1806            .map(|sym| *sym);
1807        let ps2000aSetSigGenPropertiesArbitrary = __library
1808            .get(b"ps2000aSetSigGenPropertiesArbitrary\0")
1809            .map(|sym| *sym);
1810        let ps2000aSetSigGenPropertiesBuiltIn = __library
1811            .get(b"ps2000aSetSigGenPropertiesBuiltIn\0")
1812            .map(|sym| *sym);
1813        let ps2000aSigGenFrequencyToPhase = __library
1814            .get(b"ps2000aSigGenFrequencyToPhase\0")
1815            .map(|sym| *sym);
1816        let ps2000aSigGenArbitraryMinMaxValues = __library
1817            .get(b"ps2000aSigGenArbitraryMinMaxValues\0")
1818            .map(|sym| *sym);
1819        let ps2000aSigGenSoftwareControl = __library
1820            .get(b"ps2000aSigGenSoftwareControl\0")
1821            .map(|sym| *sym);
1822        let ps2000aSetEts = __library.get(b"ps2000aSetEts\0").map(|sym| *sym);
1823        let ps2000aSetSimpleTrigger = __library.get(b"ps2000aSetSimpleTrigger\0").map(|sym| *sym);
1824        let ps2000aSetTriggerDigitalPortProperties = __library
1825            .get(b"ps2000aSetTriggerDigitalPortProperties\0")
1826            .map(|sym| *sym);
1827        let ps2000aSetDigitalAnalogTriggerOperand = __library
1828            .get(b"ps2000aSetDigitalAnalogTriggerOperand\0")
1829            .map(|sym| *sym);
1830        let ps2000aSetPulseWidthDigitalPortProperties = __library
1831            .get(b"ps2000aSetPulseWidthDigitalPortProperties\0")
1832            .map(|sym| *sym);
1833        let ps2000aSetTriggerChannelProperties = __library
1834            .get(b"ps2000aSetTriggerChannelProperties\0")
1835            .map(|sym| *sym);
1836        let ps2000aSetTriggerChannelConditions = __library
1837            .get(b"ps2000aSetTriggerChannelConditions\0")
1838            .map(|sym| *sym);
1839        let ps2000aSetTriggerChannelDirections = __library
1840            .get(b"ps2000aSetTriggerChannelDirections\0")
1841            .map(|sym| *sym);
1842        let ps2000aSetTriggerDelay = __library.get(b"ps2000aSetTriggerDelay\0").map(|sym| *sym);
1843        let ps2000aSetPulseWidthQualifier = __library
1844            .get(b"ps2000aSetPulseWidthQualifier\0")
1845            .map(|sym| *sym);
1846        let ps2000aIsTriggerOrPulseWidthQualifierEnabled = __library
1847            .get(b"ps2000aIsTriggerOrPulseWidthQualifierEnabled\0")
1848            .map(|sym| *sym);
1849        let ps2000aGetTriggerTimeOffset = __library
1850            .get(b"ps2000aGetTriggerTimeOffset\0")
1851            .map(|sym| *sym);
1852        let ps2000aGetTriggerTimeOffset64 = __library
1853            .get(b"ps2000aGetTriggerTimeOffset64\0")
1854            .map(|sym| *sym);
1855        let ps2000aGetValuesTriggerTimeOffsetBulk = __library
1856            .get(b"ps2000aGetValuesTriggerTimeOffsetBulk\0")
1857            .map(|sym| *sym);
1858        let ps2000aGetValuesTriggerTimeOffsetBulk64 = __library
1859            .get(b"ps2000aGetValuesTriggerTimeOffsetBulk64\0")
1860            .map(|sym| *sym);
1861        let ps2000aGetNoOfCaptures = __library.get(b"ps2000aGetNoOfCaptures\0").map(|sym| *sym);
1862        let ps2000aGetNoOfProcessedCaptures = __library
1863            .get(b"ps2000aGetNoOfProcessedCaptures\0")
1864            .map(|sym| *sym);
1865        let ps2000aSetDataBuffer = __library.get(b"ps2000aSetDataBuffer\0").map(|sym| *sym);
1866        let ps2000aSetDataBuffers = __library.get(b"ps2000aSetDataBuffers\0").map(|sym| *sym);
1867        let ps2000aSetUnscaledDataBuffers = __library
1868            .get(b"ps2000aSetUnscaledDataBuffers\0")
1869            .map(|sym| *sym);
1870        let ps2000aSetEtsTimeBuffer = __library.get(b"ps2000aSetEtsTimeBuffer\0").map(|sym| *sym);
1871        let ps2000aSetEtsTimeBuffers = __library.get(b"ps2000aSetEtsTimeBuffers\0").map(|sym| *sym);
1872        let ps2000aIsReady = __library.get(b"ps2000aIsReady\0").map(|sym| *sym);
1873        let ps2000aRunBlock = __library.get(b"ps2000aRunBlock\0").map(|sym| *sym);
1874        let ps2000aRunStreaming = __library.get(b"ps2000aRunStreaming\0").map(|sym| *sym);
1875        let ps2000aGetStreamingLatestValues = __library
1876            .get(b"ps2000aGetStreamingLatestValues\0")
1877            .map(|sym| *sym);
1878        let ps2000aNoOfStreamingValues = __library
1879            .get(b"ps2000aNoOfStreamingValues\0")
1880            .map(|sym| *sym);
1881        let ps2000aGetMaxDownSampleRatio = __library
1882            .get(b"ps2000aGetMaxDownSampleRatio\0")
1883            .map(|sym| *sym);
1884        let ps2000aGetValues = __library.get(b"ps2000aGetValues\0").map(|sym| *sym);
1885        let ps2000aGetValuesBulk = __library.get(b"ps2000aGetValuesBulk\0").map(|sym| *sym);
1886        let ps2000aGetValuesAsync = __library.get(b"ps2000aGetValuesAsync\0").map(|sym| *sym);
1887        let ps2000aGetValuesOverlapped = __library
1888            .get(b"ps2000aGetValuesOverlapped\0")
1889            .map(|sym| *sym);
1890        let ps2000aGetValuesOverlappedBulk = __library
1891            .get(b"ps2000aGetValuesOverlappedBulk\0")
1892            .map(|sym| *sym);
1893        let ps2000aStop = __library.get(b"ps2000aStop\0").map(|sym| *sym);
1894        let ps2000aHoldOff = __library.get(b"ps2000aHoldOff\0").map(|sym| *sym);
1895        let ps2000aGetChannelInformation = __library
1896            .get(b"ps2000aGetChannelInformation\0")
1897            .map(|sym| *sym);
1898        let ps2000aEnumerateUnits = __library.get(b"ps2000aEnumerateUnits\0").map(|sym| *sym);
1899        let ps2000aPingUnit = __library.get(b"ps2000aPingUnit\0").map(|sym| *sym);
1900        let ps2000aMaximumValue = __library.get(b"ps2000aMaximumValue\0").map(|sym| *sym);
1901        let ps2000aMinimumValue = __library.get(b"ps2000aMinimumValue\0").map(|sym| *sym);
1902        let ps2000aGetAnalogueOffset = __library.get(b"ps2000aGetAnalogueOffset\0").map(|sym| *sym);
1903        let ps2000aGetMaxSegments = __library.get(b"ps2000aGetMaxSegments\0").map(|sym| *sym);
1904        let ps2000aQueryOutputEdgeDetect = __library
1905            .get(b"ps2000aQueryOutputEdgeDetect\0")
1906            .map(|sym| *sym);
1907        let ps2000aSetOutputEdgeDetect = __library
1908            .get(b"ps2000aSetOutputEdgeDetect\0")
1909            .map(|sym| *sym);
1910        let ps2000aGetScalingValues = __library.get(b"ps2000aGetScalingValues\0").map(|sym| *sym);
1911        Ok(PS2000ALoader {
1912            __library,
1913            ps2000aApplyFix,
1914            ps2000aOpenUnit,
1915            ps2000aOpenUnitAsync,
1916            ps2000aOpenUnitProgress,
1917            ps2000aGetUnitInfo,
1918            ps2000aFlashLed,
1919            ps2000aCloseUnit,
1920            ps2000aMemorySegments,
1921            ps2000aSetChannel,
1922            ps2000aSetDigitalPort,
1923            ps2000aSetNoOfCaptures,
1924            ps2000aGetTimebase,
1925            ps2000aGetTimebase2,
1926            ps2000aSetSigGenArbitrary,
1927            ps2000aSetSigGenBuiltIn,
1928            ps2000aSetSigGenBuiltInV2,
1929            ps2000aSetSigGenPropertiesArbitrary,
1930            ps2000aSetSigGenPropertiesBuiltIn,
1931            ps2000aSigGenFrequencyToPhase,
1932            ps2000aSigGenArbitraryMinMaxValues,
1933            ps2000aSigGenSoftwareControl,
1934            ps2000aSetEts,
1935            ps2000aSetSimpleTrigger,
1936            ps2000aSetTriggerDigitalPortProperties,
1937            ps2000aSetDigitalAnalogTriggerOperand,
1938            ps2000aSetPulseWidthDigitalPortProperties,
1939            ps2000aSetTriggerChannelProperties,
1940            ps2000aSetTriggerChannelConditions,
1941            ps2000aSetTriggerChannelDirections,
1942            ps2000aSetTriggerDelay,
1943            ps2000aSetPulseWidthQualifier,
1944            ps2000aIsTriggerOrPulseWidthQualifierEnabled,
1945            ps2000aGetTriggerTimeOffset,
1946            ps2000aGetTriggerTimeOffset64,
1947            ps2000aGetValuesTriggerTimeOffsetBulk,
1948            ps2000aGetValuesTriggerTimeOffsetBulk64,
1949            ps2000aGetNoOfCaptures,
1950            ps2000aGetNoOfProcessedCaptures,
1951            ps2000aSetDataBuffer,
1952            ps2000aSetDataBuffers,
1953            ps2000aSetUnscaledDataBuffers,
1954            ps2000aSetEtsTimeBuffer,
1955            ps2000aSetEtsTimeBuffers,
1956            ps2000aIsReady,
1957            ps2000aRunBlock,
1958            ps2000aRunStreaming,
1959            ps2000aGetStreamingLatestValues,
1960            ps2000aNoOfStreamingValues,
1961            ps2000aGetMaxDownSampleRatio,
1962            ps2000aGetValues,
1963            ps2000aGetValuesBulk,
1964            ps2000aGetValuesAsync,
1965            ps2000aGetValuesOverlapped,
1966            ps2000aGetValuesOverlappedBulk,
1967            ps2000aStop,
1968            ps2000aHoldOff,
1969            ps2000aGetChannelInformation,
1970            ps2000aEnumerateUnits,
1971            ps2000aPingUnit,
1972            ps2000aMaximumValue,
1973            ps2000aMinimumValue,
1974            ps2000aGetAnalogueOffset,
1975            ps2000aGetMaxSegments,
1976            ps2000aQueryOutputEdgeDetect,
1977            ps2000aSetOutputEdgeDetect,
1978            ps2000aGetScalingValues,
1979        })
1980    }
1981    pub unsafe fn ps2000aApplyFix(&self, a: u32, b: u16) {
1982        let sym = self
1983            .ps2000aApplyFix
1984            .as_ref()
1985            .expect("Expected function, got error.");
1986        (sym)(a, b)
1987    }
1988    pub unsafe fn ps2000aOpenUnit(&self, handle: *mut i16, serial: *mut i8) -> PICO_STATUS {
1989        let sym = self
1990            .ps2000aOpenUnit
1991            .as_ref()
1992            .expect("Expected function, got error.");
1993        (sym)(handle, serial)
1994    }
1995    pub unsafe fn ps2000aOpenUnitAsync(&self, status: *mut i16, serial: *mut i8) -> PICO_STATUS {
1996        let sym = self
1997            .ps2000aOpenUnitAsync
1998            .as_ref()
1999            .expect("Expected function, got error.");
2000        (sym)(status, serial)
2001    }
2002    pub unsafe fn ps2000aOpenUnitProgress(
2003        &self,
2004        handle: *mut i16,
2005        progressPercent: *mut i16,
2006        complete: *mut i16,
2007    ) -> PICO_STATUS {
2008        let sym = self
2009            .ps2000aOpenUnitProgress
2010            .as_ref()
2011            .expect("Expected function, got error.");
2012        (sym)(handle, progressPercent, complete)
2013    }
2014    pub unsafe fn ps2000aGetUnitInfo(
2015        &self,
2016        handle: i16,
2017        string: *mut i8,
2018        stringLength: i16,
2019        requiredSize: *mut i16,
2020        info: PICO_INFO,
2021    ) -> PICO_STATUS {
2022        let sym = self
2023            .ps2000aGetUnitInfo
2024            .as_ref()
2025            .expect("Expected function, got error.");
2026        (sym)(handle, string, stringLength, requiredSize, info)
2027    }
2028    pub unsafe fn ps2000aFlashLed(&self, handle: i16, start: i16) -> PICO_STATUS {
2029        let sym = self
2030            .ps2000aFlashLed
2031            .as_ref()
2032            .expect("Expected function, got error.");
2033        (sym)(handle, start)
2034    }
2035    pub unsafe fn ps2000aCloseUnit(&self, handle: i16) -> PICO_STATUS {
2036        let sym = self
2037            .ps2000aCloseUnit
2038            .as_ref()
2039            .expect("Expected function, got error.");
2040        (sym)(handle)
2041    }
2042    pub unsafe fn ps2000aMemorySegments(
2043        &self,
2044        handle: i16,
2045        nSegments: u32,
2046        nMaxSamples: *mut i32,
2047    ) -> PICO_STATUS {
2048        let sym = self
2049            .ps2000aMemorySegments
2050            .as_ref()
2051            .expect("Expected function, got error.");
2052        (sym)(handle, nSegments, nMaxSamples)
2053    }
2054    pub unsafe fn ps2000aSetChannel(
2055        &self,
2056        handle: i16,
2057        channel: PS2000A_CHANNEL,
2058        enabled: i16,
2059        type_: PS2000A_COUPLING,
2060        range: PS2000A_RANGE,
2061        analogOffset: f32,
2062    ) -> PICO_STATUS {
2063        let sym = self
2064            .ps2000aSetChannel
2065            .as_ref()
2066            .expect("Expected function, got error.");
2067        (sym)(handle, channel, enabled, type_, range, analogOffset)
2068    }
2069    pub unsafe fn ps2000aSetDigitalPort(
2070        &self,
2071        handle: i16,
2072        port: PS2000A_DIGITAL_PORT,
2073        enabled: i16,
2074        logicLevel: i16,
2075    ) -> PICO_STATUS {
2076        let sym = self
2077            .ps2000aSetDigitalPort
2078            .as_ref()
2079            .expect("Expected function, got error.");
2080        (sym)(handle, port, enabled, logicLevel)
2081    }
2082    pub unsafe fn ps2000aSetNoOfCaptures(&self, handle: i16, nCaptures: u32) -> PICO_STATUS {
2083        let sym = self
2084            .ps2000aSetNoOfCaptures
2085            .as_ref()
2086            .expect("Expected function, got error.");
2087        (sym)(handle, nCaptures)
2088    }
2089    pub unsafe fn ps2000aGetTimebase(
2090        &self,
2091        handle: i16,
2092        timebase: u32,
2093        noSamples: i32,
2094        timeIntervalNanoseconds: *mut i32,
2095        oversample: i16,
2096        maxSamples: *mut i32,
2097        segmentIndex: u32,
2098    ) -> PICO_STATUS {
2099        let sym = self
2100            .ps2000aGetTimebase
2101            .as_ref()
2102            .expect("Expected function, got error.");
2103        (sym)(
2104            handle,
2105            timebase,
2106            noSamples,
2107            timeIntervalNanoseconds,
2108            oversample,
2109            maxSamples,
2110            segmentIndex,
2111        )
2112    }
2113    pub unsafe fn ps2000aGetTimebase2(
2114        &self,
2115        handle: i16,
2116        timebase: u32,
2117        noSamples: i32,
2118        timeIntervalNanoseconds: *mut f32,
2119        oversample: i16,
2120        maxSamples: *mut i32,
2121        segmentIndex: u32,
2122    ) -> PICO_STATUS {
2123        let sym = self
2124            .ps2000aGetTimebase2
2125            .as_ref()
2126            .expect("Expected function, got error.");
2127        (sym)(
2128            handle,
2129            timebase,
2130            noSamples,
2131            timeIntervalNanoseconds,
2132            oversample,
2133            maxSamples,
2134            segmentIndex,
2135        )
2136    }
2137    pub unsafe fn ps2000aSetSigGenArbitrary(
2138        &self,
2139        handle: i16,
2140        offsetVoltage: i32,
2141        pkToPk: u32,
2142        startDeltaPhase: u32,
2143        stopDeltaPhase: u32,
2144        deltaPhaseIncrement: u32,
2145        dwellCount: u32,
2146        arbitraryWaveform: *mut i16,
2147        arbitraryWaveformSize: i32,
2148        sweepType: PS2000A_SWEEP_TYPE,
2149        operation: PS2000A_EXTRA_OPERATIONS,
2150        indexMode: PS2000A_INDEX_MODE,
2151        shots: u32,
2152        sweeps: u32,
2153        triggerType: PS2000A_SIGGEN_TRIG_TYPE,
2154        triggerSource: PS2000A_SIGGEN_TRIG_SOURCE,
2155        extInThreshold: i16,
2156    ) -> PICO_STATUS {
2157        let sym = self
2158            .ps2000aSetSigGenArbitrary
2159            .as_ref()
2160            .expect("Expected function, got error.");
2161        (sym)(
2162            handle,
2163            offsetVoltage,
2164            pkToPk,
2165            startDeltaPhase,
2166            stopDeltaPhase,
2167            deltaPhaseIncrement,
2168            dwellCount,
2169            arbitraryWaveform,
2170            arbitraryWaveformSize,
2171            sweepType,
2172            operation,
2173            indexMode,
2174            shots,
2175            sweeps,
2176            triggerType,
2177            triggerSource,
2178            extInThreshold,
2179        )
2180    }
2181    pub unsafe fn ps2000aSetSigGenBuiltIn(
2182        &self,
2183        handle: i16,
2184        offsetVoltage: i32,
2185        pkToPk: u32,
2186        waveType: i16,
2187        startFrequency: f32,
2188        stopFrequency: f32,
2189        increment: f32,
2190        dwellTime: f32,
2191        sweepType: PS2000A_SWEEP_TYPE,
2192        operation: PS2000A_EXTRA_OPERATIONS,
2193        shots: u32,
2194        sweeps: u32,
2195        triggerType: PS2000A_SIGGEN_TRIG_TYPE,
2196        triggerSource: PS2000A_SIGGEN_TRIG_SOURCE,
2197        extInThreshold: i16,
2198    ) -> PICO_STATUS {
2199        let sym = self
2200            .ps2000aSetSigGenBuiltIn
2201            .as_ref()
2202            .expect("Expected function, got error.");
2203        (sym)(
2204            handle,
2205            offsetVoltage,
2206            pkToPk,
2207            waveType,
2208            startFrequency,
2209            stopFrequency,
2210            increment,
2211            dwellTime,
2212            sweepType,
2213            operation,
2214            shots,
2215            sweeps,
2216            triggerType,
2217            triggerSource,
2218            extInThreshold,
2219        )
2220    }
2221    pub unsafe fn ps2000aSetSigGenBuiltInV2(
2222        &self,
2223        handle: i16,
2224        offsetVoltage: i32,
2225        pkToPk: u32,
2226        waveType: i16,
2227        startFrequency: f64,
2228        stopFrequency: f64,
2229        increment: f64,
2230        dwellTime: f64,
2231        sweepType: PS2000A_SWEEP_TYPE,
2232        operation: PS2000A_EXTRA_OPERATIONS,
2233        shots: u32,
2234        sweeps: u32,
2235        triggerType: PS2000A_SIGGEN_TRIG_TYPE,
2236        triggerSource: PS2000A_SIGGEN_TRIG_SOURCE,
2237        extInThreshold: i16,
2238    ) -> PICO_STATUS {
2239        let sym = self
2240            .ps2000aSetSigGenBuiltInV2
2241            .as_ref()
2242            .expect("Expected function, got error.");
2243        (sym)(
2244            handle,
2245            offsetVoltage,
2246            pkToPk,
2247            waveType,
2248            startFrequency,
2249            stopFrequency,
2250            increment,
2251            dwellTime,
2252            sweepType,
2253            operation,
2254            shots,
2255            sweeps,
2256            triggerType,
2257            triggerSource,
2258            extInThreshold,
2259        )
2260    }
2261    pub unsafe fn ps2000aSetSigGenPropertiesArbitrary(
2262        &self,
2263        handle: i16,
2264        startDeltaPhase: u32,
2265        stopDeltaPhase: u32,
2266        deltaPhaseIncrement: u32,
2267        dwellCount: u32,
2268        sweepType: PS2000A_SWEEP_TYPE,
2269        shots: u32,
2270        sweeps: u32,
2271        triggerType: PS2000A_SIGGEN_TRIG_TYPE,
2272        triggerSource: PS2000A_SIGGEN_TRIG_SOURCE,
2273        extInThreshold: i16,
2274    ) -> PICO_STATUS {
2275        let sym = self
2276            .ps2000aSetSigGenPropertiesArbitrary
2277            .as_ref()
2278            .expect("Expected function, got error.");
2279        (sym)(
2280            handle,
2281            startDeltaPhase,
2282            stopDeltaPhase,
2283            deltaPhaseIncrement,
2284            dwellCount,
2285            sweepType,
2286            shots,
2287            sweeps,
2288            triggerType,
2289            triggerSource,
2290            extInThreshold,
2291        )
2292    }
2293    pub unsafe fn ps2000aSetSigGenPropertiesBuiltIn(
2294        &self,
2295        handle: i16,
2296        startFrequency: f64,
2297        stopFrequency: f64,
2298        increment: f64,
2299        dwellTime: f64,
2300        sweepType: PS2000A_SWEEP_TYPE,
2301        shots: u32,
2302        sweeps: u32,
2303        triggerType: PS2000A_SIGGEN_TRIG_TYPE,
2304        triggerSource: PS2000A_SIGGEN_TRIG_SOURCE,
2305        extInThreshold: i16,
2306    ) -> PICO_STATUS {
2307        let sym = self
2308            .ps2000aSetSigGenPropertiesBuiltIn
2309            .as_ref()
2310            .expect("Expected function, got error.");
2311        (sym)(
2312            handle,
2313            startFrequency,
2314            stopFrequency,
2315            increment,
2316            dwellTime,
2317            sweepType,
2318            shots,
2319            sweeps,
2320            triggerType,
2321            triggerSource,
2322            extInThreshold,
2323        )
2324    }
2325    pub unsafe fn ps2000aSigGenFrequencyToPhase(
2326        &self,
2327        handle: i16,
2328        frequency: f64,
2329        indexMode: PS2000A_INDEX_MODE,
2330        bufferLength: u32,
2331        phase: *mut u32,
2332    ) -> PICO_STATUS {
2333        let sym = self
2334            .ps2000aSigGenFrequencyToPhase
2335            .as_ref()
2336            .expect("Expected function, got error.");
2337        (sym)(handle, frequency, indexMode, bufferLength, phase)
2338    }
2339    pub unsafe fn ps2000aSigGenArbitraryMinMaxValues(
2340        &self,
2341        handle: i16,
2342        minArbitraryWaveformValue: *mut i16,
2343        maxArbitraryWaveformValue: *mut i16,
2344        minArbitraryWaveformSize: *mut u32,
2345        maxArbitraryWaveformSize: *mut u32,
2346    ) -> PICO_STATUS {
2347        let sym = self
2348            .ps2000aSigGenArbitraryMinMaxValues
2349            .as_ref()
2350            .expect("Expected function, got error.");
2351        (sym)(
2352            handle,
2353            minArbitraryWaveformValue,
2354            maxArbitraryWaveformValue,
2355            minArbitraryWaveformSize,
2356            maxArbitraryWaveformSize,
2357        )
2358    }
2359    pub unsafe fn ps2000aSigGenSoftwareControl(&self, handle: i16, state: i16) -> PICO_STATUS {
2360        let sym = self
2361            .ps2000aSigGenSoftwareControl
2362            .as_ref()
2363            .expect("Expected function, got error.");
2364        (sym)(handle, state)
2365    }
2366    pub unsafe fn ps2000aSetEts(
2367        &self,
2368        handle: i16,
2369        mode: PS2000A_ETS_MODE,
2370        etsCycles: i16,
2371        etsInterleave: i16,
2372        sampleTimePicoseconds: *mut i32,
2373    ) -> PICO_STATUS {
2374        let sym = self
2375            .ps2000aSetEts
2376            .as_ref()
2377            .expect("Expected function, got error.");
2378        (sym)(
2379            handle,
2380            mode,
2381            etsCycles,
2382            etsInterleave,
2383            sampleTimePicoseconds,
2384        )
2385    }
2386    pub unsafe fn ps2000aSetSimpleTrigger(
2387        &self,
2388        handle: i16,
2389        enable: i16,
2390        source: PS2000A_CHANNEL,
2391        threshold: i16,
2392        direction: PS2000A_THRESHOLD_DIRECTION,
2393        delay: u32,
2394        autoTrigger_ms: i16,
2395    ) -> PICO_STATUS {
2396        let sym = self
2397            .ps2000aSetSimpleTrigger
2398            .as_ref()
2399            .expect("Expected function, got error.");
2400        (sym)(
2401            handle,
2402            enable,
2403            source,
2404            threshold,
2405            direction,
2406            delay,
2407            autoTrigger_ms,
2408        )
2409    }
2410    pub unsafe fn ps2000aSetTriggerDigitalPortProperties(
2411        &self,
2412        handle: i16,
2413        directions: *mut PS2000A_DIGITAL_CHANNEL_DIRECTIONS,
2414        nDirections: i16,
2415    ) -> PICO_STATUS {
2416        let sym = self
2417            .ps2000aSetTriggerDigitalPortProperties
2418            .as_ref()
2419            .expect("Expected function, got error.");
2420        (sym)(handle, directions, nDirections)
2421    }
2422    pub unsafe fn ps2000aSetDigitalAnalogTriggerOperand(
2423        &self,
2424        handle: i16,
2425        operand: PS2000A_TRIGGER_OPERAND,
2426    ) -> PICO_STATUS {
2427        let sym = self
2428            .ps2000aSetDigitalAnalogTriggerOperand
2429            .as_ref()
2430            .expect("Expected function, got error.");
2431        (sym)(handle, operand)
2432    }
2433    pub unsafe fn ps2000aSetPulseWidthDigitalPortProperties(
2434        &self,
2435        handle: i16,
2436        directions: *mut PS2000A_DIGITAL_CHANNEL_DIRECTIONS,
2437        nDirections: i16,
2438    ) -> PICO_STATUS {
2439        let sym = self
2440            .ps2000aSetPulseWidthDigitalPortProperties
2441            .as_ref()
2442            .expect("Expected function, got error.");
2443        (sym)(handle, directions, nDirections)
2444    }
2445    pub unsafe fn ps2000aSetTriggerChannelProperties(
2446        &self,
2447        handle: i16,
2448        channelProperties: *mut PS2000A_TRIGGER_CHANNEL_PROPERTIES,
2449        nChannelProperties: i16,
2450        auxOutputEnable: i16,
2451        autoTriggerMilliseconds: i32,
2452    ) -> PICO_STATUS {
2453        let sym = self
2454            .ps2000aSetTriggerChannelProperties
2455            .as_ref()
2456            .expect("Expected function, got error.");
2457        (sym)(
2458            handle,
2459            channelProperties,
2460            nChannelProperties,
2461            auxOutputEnable,
2462            autoTriggerMilliseconds,
2463        )
2464    }
2465    pub unsafe fn ps2000aSetTriggerChannelConditions(
2466        &self,
2467        handle: i16,
2468        conditions: *mut PS2000A_TRIGGER_CONDITIONS,
2469        nConditions: i16,
2470    ) -> PICO_STATUS {
2471        let sym = self
2472            .ps2000aSetTriggerChannelConditions
2473            .as_ref()
2474            .expect("Expected function, got error.");
2475        (sym)(handle, conditions, nConditions)
2476    }
2477    pub unsafe fn ps2000aSetTriggerChannelDirections(
2478        &self,
2479        handle: i16,
2480        channelA: PS2000A_THRESHOLD_DIRECTION,
2481        channelB: PS2000A_THRESHOLD_DIRECTION,
2482        channelC: PS2000A_THRESHOLD_DIRECTION,
2483        channelD: PS2000A_THRESHOLD_DIRECTION,
2484        ext: PS2000A_THRESHOLD_DIRECTION,
2485        aux: PS2000A_THRESHOLD_DIRECTION,
2486    ) -> PICO_STATUS {
2487        let sym = self
2488            .ps2000aSetTriggerChannelDirections
2489            .as_ref()
2490            .expect("Expected function, got error.");
2491        (sym)(handle, channelA, channelB, channelC, channelD, ext, aux)
2492    }
2493    pub unsafe fn ps2000aSetTriggerDelay(&self, handle: i16, delay: u32) -> PICO_STATUS {
2494        let sym = self
2495            .ps2000aSetTriggerDelay
2496            .as_ref()
2497            .expect("Expected function, got error.");
2498        (sym)(handle, delay)
2499    }
2500    pub unsafe fn ps2000aSetPulseWidthQualifier(
2501        &self,
2502        handle: i16,
2503        conditions: *mut PS2000A_PWQ_CONDITIONS,
2504        nConditions: i16,
2505        direction: PS2000A_THRESHOLD_DIRECTION,
2506        lower: u32,
2507        upper: u32,
2508        type_: PS2000A_PULSE_WIDTH_TYPE,
2509    ) -> PICO_STATUS {
2510        let sym = self
2511            .ps2000aSetPulseWidthQualifier
2512            .as_ref()
2513            .expect("Expected function, got error.");
2514        (sym)(
2515            handle,
2516            conditions,
2517            nConditions,
2518            direction,
2519            lower,
2520            upper,
2521            type_,
2522        )
2523    }
2524    pub unsafe fn ps2000aIsTriggerOrPulseWidthQualifierEnabled(
2525        &self,
2526        handle: i16,
2527        triggerEnabled: *mut i16,
2528        pulseWidthQualifierEnabled: *mut i16,
2529    ) -> PICO_STATUS {
2530        let sym = self
2531            .ps2000aIsTriggerOrPulseWidthQualifierEnabled
2532            .as_ref()
2533            .expect("Expected function, got error.");
2534        (sym)(handle, triggerEnabled, pulseWidthQualifierEnabled)
2535    }
2536    pub unsafe fn ps2000aGetTriggerTimeOffset(
2537        &self,
2538        handle: i16,
2539        timeUpper: *mut u32,
2540        timeLower: *mut u32,
2541        timeUnits: *mut PS2000A_TIME_UNITS,
2542        segmentIndex: u32,
2543    ) -> PICO_STATUS {
2544        let sym = self
2545            .ps2000aGetTriggerTimeOffset
2546            .as_ref()
2547            .expect("Expected function, got error.");
2548        (sym)(handle, timeUpper, timeLower, timeUnits, segmentIndex)
2549    }
2550    pub unsafe fn ps2000aGetTriggerTimeOffset64(
2551        &self,
2552        handle: i16,
2553        time: *mut i64,
2554        timeUnits: *mut PS2000A_TIME_UNITS,
2555        segmentIndex: u32,
2556    ) -> PICO_STATUS {
2557        let sym = self
2558            .ps2000aGetTriggerTimeOffset64
2559            .as_ref()
2560            .expect("Expected function, got error.");
2561        (sym)(handle, time, timeUnits, segmentIndex)
2562    }
2563    pub unsafe fn ps2000aGetValuesTriggerTimeOffsetBulk(
2564        &self,
2565        handle: i16,
2566        timesUpper: *mut u32,
2567        timesLower: *mut u32,
2568        timeUnits: *mut PS2000A_TIME_UNITS,
2569        fromSegmentIndex: u32,
2570        toSegmentIndex: u32,
2571    ) -> PICO_STATUS {
2572        let sym = self
2573            .ps2000aGetValuesTriggerTimeOffsetBulk
2574            .as_ref()
2575            .expect("Expected function, got error.");
2576        (sym)(
2577            handle,
2578            timesUpper,
2579            timesLower,
2580            timeUnits,
2581            fromSegmentIndex,
2582            toSegmentIndex,
2583        )
2584    }
2585    pub unsafe fn ps2000aGetValuesTriggerTimeOffsetBulk64(
2586        &self,
2587        handle: i16,
2588        times: *mut i64,
2589        timeUnits: *mut PS2000A_TIME_UNITS,
2590        fromSegmentIndex: u32,
2591        toSegmentIndex: u32,
2592    ) -> PICO_STATUS {
2593        let sym = self
2594            .ps2000aGetValuesTriggerTimeOffsetBulk64
2595            .as_ref()
2596            .expect("Expected function, got error.");
2597        (sym)(handle, times, timeUnits, fromSegmentIndex, toSegmentIndex)
2598    }
2599    pub unsafe fn ps2000aGetNoOfCaptures(&self, handle: i16, nCaptures: *mut u32) -> PICO_STATUS {
2600        let sym = self
2601            .ps2000aGetNoOfCaptures
2602            .as_ref()
2603            .expect("Expected function, got error.");
2604        (sym)(handle, nCaptures)
2605    }
2606    pub unsafe fn ps2000aGetNoOfProcessedCaptures(
2607        &self,
2608        handle: i16,
2609        nProcessedCaptures: *mut u32,
2610    ) -> PICO_STATUS {
2611        let sym = self
2612            .ps2000aGetNoOfProcessedCaptures
2613            .as_ref()
2614            .expect("Expected function, got error.");
2615        (sym)(handle, nProcessedCaptures)
2616    }
2617    pub unsafe fn ps2000aSetDataBuffer(
2618        &self,
2619        handle: i16,
2620        channelOrPort: i32,
2621        buffer: *mut i16,
2622        bufferLth: i32,
2623        segmentIndex: u32,
2624        mode: PS2000A_RATIO_MODE,
2625    ) -> PICO_STATUS {
2626        let sym = self
2627            .ps2000aSetDataBuffer
2628            .as_ref()
2629            .expect("Expected function, got error.");
2630        (sym)(handle, channelOrPort, buffer, bufferLth, segmentIndex, mode)
2631    }
2632    pub unsafe fn ps2000aSetDataBuffers(
2633        &self,
2634        handle: i16,
2635        channelOrPort: i32,
2636        bufferMax: *mut i16,
2637        bufferMin: *mut i16,
2638        bufferLth: i32,
2639        segmentIndex: u32,
2640        mode: PS2000A_RATIO_MODE,
2641    ) -> PICO_STATUS {
2642        let sym = self
2643            .ps2000aSetDataBuffers
2644            .as_ref()
2645            .expect("Expected function, got error.");
2646        (sym)(
2647            handle,
2648            channelOrPort,
2649            bufferMax,
2650            bufferMin,
2651            bufferLth,
2652            segmentIndex,
2653            mode,
2654        )
2655    }
2656    pub unsafe fn ps2000aSetUnscaledDataBuffers(
2657        &self,
2658        handle: i16,
2659        channelOrPort: PS2000A_CHANNEL,
2660        bufferMax: *mut i8,
2661        bufferMin: *mut i8,
2662        bufferLth: i32,
2663        segmentIndex: u32,
2664        mode: PS2000A_RATIO_MODE,
2665    ) -> PICO_STATUS {
2666        let sym = self
2667            .ps2000aSetUnscaledDataBuffers
2668            .as_ref()
2669            .expect("Expected function, got error.");
2670        (sym)(
2671            handle,
2672            channelOrPort,
2673            bufferMax,
2674            bufferMin,
2675            bufferLth,
2676            segmentIndex,
2677            mode,
2678        )
2679    }
2680    pub unsafe fn ps2000aSetEtsTimeBuffer(
2681        &self,
2682        handle: i16,
2683        buffer: *mut i64,
2684        bufferLth: i32,
2685    ) -> PICO_STATUS {
2686        let sym = self
2687            .ps2000aSetEtsTimeBuffer
2688            .as_ref()
2689            .expect("Expected function, got error.");
2690        (sym)(handle, buffer, bufferLth)
2691    }
2692    pub unsafe fn ps2000aSetEtsTimeBuffers(
2693        &self,
2694        handle: i16,
2695        timeUpper: *mut u32,
2696        timeLower: *mut u32,
2697        bufferLth: i32,
2698    ) -> PICO_STATUS {
2699        let sym = self
2700            .ps2000aSetEtsTimeBuffers
2701            .as_ref()
2702            .expect("Expected function, got error.");
2703        (sym)(handle, timeUpper, timeLower, bufferLth)
2704    }
2705    pub unsafe fn ps2000aIsReady(&self, handle: i16, ready: *mut i16) -> PICO_STATUS {
2706        let sym = self
2707            .ps2000aIsReady
2708            .as_ref()
2709            .expect("Expected function, got error.");
2710        (sym)(handle, ready)
2711    }
2712    pub unsafe fn ps2000aRunBlock(
2713        &self,
2714        handle: i16,
2715        noOfPreTriggerSamples: i32,
2716        noOfPostTriggerSamples: i32,
2717        timebase: u32,
2718        oversample: i16,
2719        timeIndisposedMs: *mut i32,
2720        segmentIndex: u32,
2721        lpReady: ps2000aBlockReady,
2722        pParameter: *mut ::std::os::raw::c_void,
2723    ) -> PICO_STATUS {
2724        let sym = self
2725            .ps2000aRunBlock
2726            .as_ref()
2727            .expect("Expected function, got error.");
2728        (sym)(
2729            handle,
2730            noOfPreTriggerSamples,
2731            noOfPostTriggerSamples,
2732            timebase,
2733            oversample,
2734            timeIndisposedMs,
2735            segmentIndex,
2736            lpReady,
2737            pParameter,
2738        )
2739    }
2740    pub unsafe fn ps2000aRunStreaming(
2741        &self,
2742        handle: i16,
2743        sampleInterval: *mut u32,
2744        sampleIntervalTimeUnits: PS2000A_TIME_UNITS,
2745        maxPreTriggerSamples: u32,
2746        maxPostPreTriggerSamples: u32,
2747        autoStop: i16,
2748        downSampleRatio: u32,
2749        downSampleRatioMode: PS2000A_RATIO_MODE,
2750        overviewBufferSize: u32,
2751    ) -> PICO_STATUS {
2752        let sym = self
2753            .ps2000aRunStreaming
2754            .as_ref()
2755            .expect("Expected function, got error.");
2756        (sym)(
2757            handle,
2758            sampleInterval,
2759            sampleIntervalTimeUnits,
2760            maxPreTriggerSamples,
2761            maxPostPreTriggerSamples,
2762            autoStop,
2763            downSampleRatio,
2764            downSampleRatioMode,
2765            overviewBufferSize,
2766        )
2767    }
2768    pub unsafe fn ps2000aGetStreamingLatestValues(
2769        &self,
2770        handle: i16,
2771        lpPs2000aReady: ps2000aStreamingReady,
2772        pParameter: *mut ::std::os::raw::c_void,
2773    ) -> PICO_STATUS {
2774        let sym = self
2775            .ps2000aGetStreamingLatestValues
2776            .as_ref()
2777            .expect("Expected function, got error.");
2778        (sym)(handle, lpPs2000aReady, pParameter)
2779    }
2780    pub unsafe fn ps2000aNoOfStreamingValues(
2781        &self,
2782        handle: i16,
2783        noOfValues: *mut u32,
2784    ) -> PICO_STATUS {
2785        let sym = self
2786            .ps2000aNoOfStreamingValues
2787            .as_ref()
2788            .expect("Expected function, got error.");
2789        (sym)(handle, noOfValues)
2790    }
2791    pub unsafe fn ps2000aGetMaxDownSampleRatio(
2792        &self,
2793        handle: i16,
2794        noOfUnaggreatedSamples: u32,
2795        maxDownSampleRatio: *mut u32,
2796        downSampleRatioMode: PS2000A_RATIO_MODE,
2797        segmentIndex: u32,
2798    ) -> PICO_STATUS {
2799        let sym = self
2800            .ps2000aGetMaxDownSampleRatio
2801            .as_ref()
2802            .expect("Expected function, got error.");
2803        (sym)(
2804            handle,
2805            noOfUnaggreatedSamples,
2806            maxDownSampleRatio,
2807            downSampleRatioMode,
2808            segmentIndex,
2809        )
2810    }
2811    pub unsafe fn ps2000aGetValues(
2812        &self,
2813        handle: i16,
2814        startIndex: u32,
2815        noOfSamples: *mut u32,
2816        downSampleRatio: u32,
2817        downSampleRatioMode: PS2000A_RATIO_MODE,
2818        segmentIndex: u32,
2819        overflow: *mut i16,
2820    ) -> PICO_STATUS {
2821        let sym = self
2822            .ps2000aGetValues
2823            .as_ref()
2824            .expect("Expected function, got error.");
2825        (sym)(
2826            handle,
2827            startIndex,
2828            noOfSamples,
2829            downSampleRatio,
2830            downSampleRatioMode,
2831            segmentIndex,
2832            overflow,
2833        )
2834    }
2835    pub unsafe fn ps2000aGetValuesBulk(
2836        &self,
2837        handle: i16,
2838        noOfSamples: *mut u32,
2839        fromSegmentIndex: u32,
2840        toSegmentIndex: u32,
2841        downSampleRatio: u32,
2842        downSampleRatioMode: PS2000A_RATIO_MODE,
2843        overflow: *mut i16,
2844    ) -> PICO_STATUS {
2845        let sym = self
2846            .ps2000aGetValuesBulk
2847            .as_ref()
2848            .expect("Expected function, got error.");
2849        (sym)(
2850            handle,
2851            noOfSamples,
2852            fromSegmentIndex,
2853            toSegmentIndex,
2854            downSampleRatio,
2855            downSampleRatioMode,
2856            overflow,
2857        )
2858    }
2859    pub unsafe fn ps2000aGetValuesAsync(
2860        &self,
2861        handle: i16,
2862        startIndex: u32,
2863        noOfSamples: u32,
2864        downSampleRatio: u32,
2865        downSampleRatioMode: PS2000A_RATIO_MODE,
2866        segmentIndex: u32,
2867        lpDataReady: *mut ::std::os::raw::c_void,
2868        pParameter: *mut ::std::os::raw::c_void,
2869    ) -> PICO_STATUS {
2870        let sym = self
2871            .ps2000aGetValuesAsync
2872            .as_ref()
2873            .expect("Expected function, got error.");
2874        (sym)(
2875            handle,
2876            startIndex,
2877            noOfSamples,
2878            downSampleRatio,
2879            downSampleRatioMode,
2880            segmentIndex,
2881            lpDataReady,
2882            pParameter,
2883        )
2884    }
2885    pub unsafe fn ps2000aGetValuesOverlapped(
2886        &self,
2887        handle: i16,
2888        startIndex: u32,
2889        noOfSamples: *mut u32,
2890        downSampleRatio: u32,
2891        downSampleRatioMode: PS2000A_RATIO_MODE,
2892        segmentIndex: u32,
2893        overflow: *mut i16,
2894    ) -> PICO_STATUS {
2895        let sym = self
2896            .ps2000aGetValuesOverlapped
2897            .as_ref()
2898            .expect("Expected function, got error.");
2899        (sym)(
2900            handle,
2901            startIndex,
2902            noOfSamples,
2903            downSampleRatio,
2904            downSampleRatioMode,
2905            segmentIndex,
2906            overflow,
2907        )
2908    }
2909    pub unsafe fn ps2000aGetValuesOverlappedBulk(
2910        &self,
2911        handle: i16,
2912        startIndex: u32,
2913        noOfSamples: *mut u32,
2914        downSampleRatio: u32,
2915        downSampleRatioMode: PS2000A_RATIO_MODE,
2916        fromSegmentIndex: u32,
2917        toSegmentIndex: u32,
2918        overflow: *mut i16,
2919    ) -> PICO_STATUS {
2920        let sym = self
2921            .ps2000aGetValuesOverlappedBulk
2922            .as_ref()
2923            .expect("Expected function, got error.");
2924        (sym)(
2925            handle,
2926            startIndex,
2927            noOfSamples,
2928            downSampleRatio,
2929            downSampleRatioMode,
2930            fromSegmentIndex,
2931            toSegmentIndex,
2932            overflow,
2933        )
2934    }
2935    pub unsafe fn ps2000aStop(&self, handle: i16) -> PICO_STATUS {
2936        let sym = self
2937            .ps2000aStop
2938            .as_ref()
2939            .expect("Expected function, got error.");
2940        (sym)(handle)
2941    }
2942    pub unsafe fn ps2000aHoldOff(
2943        &self,
2944        handle: i16,
2945        holdoff: u64,
2946        type_: PS2000A_HOLDOFF_TYPE,
2947    ) -> PICO_STATUS {
2948        let sym = self
2949            .ps2000aHoldOff
2950            .as_ref()
2951            .expect("Expected function, got error.");
2952        (sym)(handle, holdoff, type_)
2953    }
2954    pub unsafe fn ps2000aGetChannelInformation(
2955        &self,
2956        handle: i16,
2957        info: PS2000A_CHANNEL_INFO,
2958        probe: i32,
2959        ranges: *mut i32,
2960        length: *mut i32,
2961        channels: i32,
2962    ) -> PICO_STATUS {
2963        let sym = self
2964            .ps2000aGetChannelInformation
2965            .as_ref()
2966            .expect("Expected function, got error.");
2967        (sym)(handle, info, probe, ranges, length, channels)
2968    }
2969    pub unsafe fn ps2000aEnumerateUnits(
2970        &self,
2971        count: *mut i16,
2972        serials: *mut i8,
2973        serialLth: *mut i16,
2974    ) -> PICO_STATUS {
2975        let sym = self
2976            .ps2000aEnumerateUnits
2977            .as_ref()
2978            .expect("Expected function, got error.");
2979        (sym)(count, serials, serialLth)
2980    }
2981    pub unsafe fn ps2000aPingUnit(&self, handle: i16) -> PICO_STATUS {
2982        let sym = self
2983            .ps2000aPingUnit
2984            .as_ref()
2985            .expect("Expected function, got error.");
2986        (sym)(handle)
2987    }
2988    pub unsafe fn ps2000aMaximumValue(&self, handle: i16, value: *mut i16) -> PICO_STATUS {
2989        let sym = self
2990            .ps2000aMaximumValue
2991            .as_ref()
2992            .expect("Expected function, got error.");
2993        (sym)(handle, value)
2994    }
2995    pub unsafe fn ps2000aMinimumValue(&self, handle: i16, value: *mut i16) -> PICO_STATUS {
2996        let sym = self
2997            .ps2000aMinimumValue
2998            .as_ref()
2999            .expect("Expected function, got error.");
3000        (sym)(handle, value)
3001    }
3002    pub unsafe fn ps2000aGetAnalogueOffset(
3003        &self,
3004        handle: i16,
3005        range: PS2000A_RANGE,
3006        coupling: PS2000A_COUPLING,
3007        maximumVoltage: *mut f32,
3008        minimumVoltage: *mut f32,
3009    ) -> PICO_STATUS {
3010        let sym = self
3011            .ps2000aGetAnalogueOffset
3012            .as_ref()
3013            .expect("Expected function, got error.");
3014        (sym)(handle, range, coupling, maximumVoltage, minimumVoltage)
3015    }
3016    pub unsafe fn ps2000aGetMaxSegments(&self, handle: i16, maxSegments: *mut u32) -> PICO_STATUS {
3017        let sym = self
3018            .ps2000aGetMaxSegments
3019            .as_ref()
3020            .expect("Expected function, got error.");
3021        (sym)(handle, maxSegments)
3022    }
3023    pub unsafe fn ps2000aQueryOutputEdgeDetect(&self, handle: i16, state: *mut i16) -> PICO_STATUS {
3024        let sym = self
3025            .ps2000aQueryOutputEdgeDetect
3026            .as_ref()
3027            .expect("Expected function, got error.");
3028        (sym)(handle, state)
3029    }
3030    pub unsafe fn ps2000aSetOutputEdgeDetect(&self, handle: i16, state: i16) -> PICO_STATUS {
3031        let sym = self
3032            .ps2000aSetOutputEdgeDetect
3033            .as_ref()
3034            .expect("Expected function, got error.");
3035        (sym)(handle, state)
3036    }
3037    pub unsafe fn ps2000aGetScalingValues(
3038        &self,
3039        handle: i16,
3040        scalingValues: *mut PS2000A_SCALING_FACTORS_VALUES,
3041        nChannels: i16,
3042    ) -> PICO_STATUS {
3043        let sym = self
3044            .ps2000aGetScalingValues
3045            .as_ref()
3046            .expect("Expected function, got error.");
3047        (sym)(handle, scalingValues, nChannels)
3048    }
3049}