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}