ps5000aApi.h 32 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249
  1. /****************************************************************************
  2. *
  3. * Filename: ps5000aApi.h
  4. * Author: MAS
  5. * Description:
  6. *
  7. * This header defines the interface to driver routines for the
  8. * PicoScope 5000A, B & D Series PC Oscilloscopes.
  9. *
  10. * Copyright � 2012 - 2022 Pico Technology Ltd. All rights reserved.
  11. *
  12. ****************************************************************************/
  13. #ifndef __PS5000AAPI_H__
  14. #define __PS5000AAPI_H__
  15. #ifdef __GNUC__
  16. #define DEPRECATED(text, func) func __attribute__ ((deprecated(text)));
  17. #elif _MSC_VER
  18. #define DEPRECATED(text, func) __declspec(deprecated(text)) func;
  19. #else
  20. #pragma message("WARNING: You need to implement DEPRECATED for this compiler")
  21. #define DEPRECATED(func) func;
  22. #endif
  23. #include <stdint.h>
  24. #include "PicoStatus.h"
  25. #include "PicoVersion.h"
  26. #include "PicoCallback.h"
  27. #ifdef PREF0
  28. #undef PREF0
  29. #endif
  30. #ifdef PREF1
  31. #undef PREF1
  32. #endif
  33. #ifdef PREF2
  34. #undef PREF2
  35. #endif
  36. #ifdef PREF3
  37. #undef PREF3
  38. #endif
  39. #ifdef __cplusplus
  40. #define PREF0 extern "C"
  41. #else
  42. #define PREF0
  43. #endif
  44. #ifdef WIN32
  45. /* If you are dynamically linking ps5000a.dll into your project #define DYNLINK here
  46. */
  47. #ifdef DYNLINK
  48. #define PREF1 typedef
  49. #define PREF2
  50. #define PREF3(x) (__stdcall *x)
  51. #else
  52. #define PREF1
  53. #ifdef _USRDLL
  54. #define PREF2 __declspec(dllexport) __stdcall
  55. #else
  56. #define PREF2 __declspec(dllimport) __stdcall
  57. #endif
  58. #define PREF3(x) x
  59. #endif
  60. #define PREF4 __stdcall
  61. #else
  62. /* Define a 64-bit integer type */
  63. #ifdef DYNLINK
  64. #define PREF1 typedef
  65. #define PREF2
  66. #define PREF3(x) (*x)
  67. #else
  68. #ifdef _USRDLL
  69. #define PREF1 __attribute__((visibility("default")))
  70. #else
  71. #define PREF1
  72. #endif
  73. #define PREF2
  74. #define PREF3(x) x
  75. #endif
  76. #define PREF4
  77. #endif
  78. #define PS5000A_MAX_VALUE_8BIT 32512
  79. #define PS5000A_MIN_VALUE_8BIT -32512
  80. #define PS5000A_MAX_VALUE_16BIT 32767
  81. #define PS5000A_MIN_VALUE_16BIT -32767
  82. #define PS5000A_EXT_MAX_VALUE 32767
  83. #define PS5000A_EXT_MIN_VALUE -32767
  84. // covers the 5242A/B and 5442A/B
  85. #define PS5X42A_MAX_SIG_GEN_BUFFER_SIZE 16384
  86. // covers the 5243A/B and 5443A/B
  87. #define PS5X43A_MAX_SIG_GEN_BUFFER_SIZE 32768
  88. // covers the 5244A/B and 5444A/B
  89. #define PS5X44A_MAX_SIG_GEN_BUFFER_SIZE 49152
  90. // covers the PicoScope 5000D Series
  91. #define PS5X4XD_MAX_SIG_GEN_BUFFER_SIZE 32768
  92. #define MIN_SIG_GEN_BUFFER_SIZE 1
  93. #define MIN_DWELL_COUNT 3
  94. #define MAX_SWEEPS_SHOTS ((1 << 30) - 1)
  95. #define AWG_DAC_FREQUENCY 200e6
  96. #define PS5000AB_DDS_FREQUENCY 200e6
  97. #define PS5000D_DDS_FREQUENCY 100e6
  98. #define AWG_PHASE_ACCUMULATOR 4294967296.0
  99. #define MAX_ANALOGUE_OFFSET_50MV_200MV 0.250f
  100. #define MIN_ANALOGUE_OFFSET_50MV_200MV -0.250f
  101. #define MAX_ANALOGUE_OFFSET_500MV_2V 2.500f
  102. #define MIN_ANALOGUE_OFFSET_500MV_2V -2.500f
  103. #define MAX_ANALOGUE_OFFSET_5V_20V 20.f
  104. #define MIN_ANALOGUE_OFFSET_5V_20V -20.f
  105. #define PS5244A_MAX_ETS_CYCLES 500 // PS5242A, PS5242B, PS5442A, PS5442B
  106. #define PS5244A_MAX_ETS_INTERLEAVE 40
  107. #define PS5243A_MAX_ETS_CYCLES 250 // PS5243A, PS5243B, PS5443A, PS5443B
  108. #define PS5243A_MAX_ETS_INTERLEAVE 20
  109. #define PS5242A_MAX_ETS_CYCLES 125 // PS5242A, PS5242B, PS5442A, PS5442B
  110. #define PS5242A_MAX_ETS_INTERLEAVE 10
  111. #define PS5X44D_MAX_ETS_CYCLES 500 // PS5244D, PS5244DMSO, PS5444D, PS5444DMSO
  112. #define PS5X44D_MAX_ETS_INTERLEAVE 80
  113. #define PS5X43D_MAX_ETS_CYCLES 250 // PS5243D, PS5243DMSO, PS5443D, PS5443DMSO
  114. #define PS5X43D_MAX_ETS_INTERLEAVE 40
  115. #define PS5X42D_MAX_ETS_CYCLES 125 // PS5242D, PS5242DMSO, PS5442D, PS5442DMSO
  116. #define PS5X42D_MAX_ETS_INTERLEAVE 5
  117. #define PS5000A_SHOT_SWEEP_TRIGGER_CONTINUOUS_RUN 0xFFFFFFFF
  118. typedef enum enPS5000ADeviceResolution
  119. {
  120. PS5000A_DR_8BIT,
  121. PS5000A_DR_12BIT,
  122. PS5000A_DR_14BIT,
  123. PS5000A_DR_15BIT,
  124. PS5000A_DR_16BIT
  125. } PS5000A_DEVICE_RESOLUTION;
  126. typedef enum enPS5000AExtraOperations
  127. {
  128. PS5000A_ES_OFF,
  129. PS5000A_WHITENOISE,
  130. PS5000A_PRBS // Pseudo-Random Bit Stream
  131. } PS5000A_EXTRA_OPERATIONS;
  132. typedef enum enPS5000ABandwidthLimiter
  133. {
  134. PS5000A_BW_FULL,
  135. PS5000A_BW_20MHZ,
  136. } PS5000A_BANDWIDTH_LIMITER;
  137. typedef enum enPS5000ACoupling
  138. {
  139. PS5000A_AC,
  140. PS5000A_DC
  141. } PS5000A_COUPLING;
  142. typedef enum enPS5000AChannel
  143. {
  144. PS5000A_CHANNEL_A,
  145. PS5000A_CHANNEL_B,
  146. PS5000A_CHANNEL_C,
  147. PS5000A_CHANNEL_D,
  148. PS5000A_EXTERNAL,
  149. PS5000A_MAX_CHANNELS = PS5000A_EXTERNAL,
  150. PS5000A_TRIGGER_AUX,
  151. PS5000A_MAX_TRIGGER_SOURCES,
  152. PS5000A_DIGITAL_PORT0 = 0x80, // digital channel 0 - 7
  153. PS5000A_DIGITAL_PORT1, // digital channel 8 - 15
  154. PS5000A_DIGITAL_PORT2, // digital channel 16 - 23
  155. PS5000A_DIGITAL_PORT3, // digital channel 24 - 31
  156. PS5000A_PULSE_WIDTH_SOURCE = 0x10000000
  157. } PS5000A_CHANNEL;
  158. typedef enum enPS5000AChannelFlags
  159. {
  160. PS5000A_CHANNEL_A_FLAGS = 1,
  161. PS5000A_CHANNEL_B_FLAGS = 2,
  162. PS5000A_CHANNEL_C_FLAGS = 4,
  163. PS5000A_CHANNEL_D_FLAGS = 8,
  164. PS5000A_PORT0_FLAGS = 65536,
  165. PS5000A_PORT1_FLAGS = 131072,
  166. PS5000A_PORT2_FLAGS = 262144,
  167. PS5000A_PORT3_FLAGS = 524288
  168. } PS5000A_CHANNEL_FLAGS;
  169. typedef enum enPS5000ADigitalChannel
  170. {
  171. PS5000A_DIGITAL_CHANNEL_0,
  172. PS5000A_DIGITAL_CHANNEL_1,
  173. PS5000A_DIGITAL_CHANNEL_2,
  174. PS5000A_DIGITAL_CHANNEL_3,
  175. PS5000A_DIGITAL_CHANNEL_4,
  176. PS5000A_DIGITAL_CHANNEL_5,
  177. PS5000A_DIGITAL_CHANNEL_6,
  178. PS5000A_DIGITAL_CHANNEL_7,
  179. PS5000A_DIGITAL_CHANNEL_8,
  180. PS5000A_DIGITAL_CHANNEL_9,
  181. PS5000A_DIGITAL_CHANNEL_10,
  182. PS5000A_DIGITAL_CHANNEL_11,
  183. PS5000A_DIGITAL_CHANNEL_12,
  184. PS5000A_DIGITAL_CHANNEL_13,
  185. PS5000A_DIGITAL_CHANNEL_14,
  186. PS5000A_DIGITAL_CHANNEL_15,
  187. PS5000A_DIGITAL_CHANNEL_16,
  188. PS5000A_DIGITAL_CHANNEL_17,
  189. PS5000A_DIGITAL_CHANNEL_18,
  190. PS5000A_DIGITAL_CHANNEL_19,
  191. PS5000A_DIGITAL_CHANNEL_20,
  192. PS5000A_DIGITAL_CHANNEL_21,
  193. PS5000A_DIGITAL_CHANNEL_22,
  194. PS5000A_DIGITAL_CHANNEL_23,
  195. PS5000A_DIGITAL_CHANNEL_24,
  196. PS5000A_DIGITAL_CHANNEL_25,
  197. PS5000A_DIGITAL_CHANNEL_26,
  198. PS5000A_DIGITAL_CHANNEL_27,
  199. PS5000A_DIGITAL_CHANNEL_28,
  200. PS5000A_DIGITAL_CHANNEL_29,
  201. PS5000A_DIGITAL_CHANNEL_30,
  202. PS5000A_DIGITAL_CHANNEL_31,
  203. PS5000A_MAX_DIGITAL_CHANNELS
  204. } PS5000A_DIGITAL_CHANNEL;
  205. typedef enum enPS5000ADigitalDirection
  206. {
  207. PS5000A_DIGITAL_DONT_CARE,
  208. PS5000A_DIGITAL_DIRECTION_LOW,
  209. PS5000A_DIGITAL_DIRECTION_HIGH,
  210. PS5000A_DIGITAL_DIRECTION_RISING,
  211. PS5000A_DIGITAL_DIRECTION_FALLING,
  212. PS5000A_DIGITAL_DIRECTION_RISING_OR_FALLING,
  213. PS5000A_DIGITAL_MAX_DIRECTION
  214. } PS5000A_DIGITAL_DIRECTION;
  215. typedef enum enPS5000ARange
  216. {
  217. PS5000A_10MV,
  218. PS5000A_20MV,
  219. PS5000A_50MV,
  220. PS5000A_100MV,
  221. PS5000A_200MV,
  222. PS5000A_500MV,
  223. PS5000A_1V,
  224. PS5000A_2V,
  225. PS5000A_5V,
  226. PS5000A_10V,
  227. PS5000A_20V,
  228. PS5000A_50V,
  229. PS5000A_MAX_RANGES
  230. } PS5000A_RANGE;
  231. typedef enum enPS5000AEtsMode
  232. {
  233. PS5000A_ETS_OFF, // ETS disabled
  234. PS5000A_ETS_FAST, // Return ready as soon as requested no of interleaves is available
  235. PS5000A_ETS_SLOW, // Return ready every time a new set of no_of_cycles is collected
  236. PS5000A_ETS_MODES_MAX
  237. } PS5000A_ETS_MODE;
  238. typedef enum enPS5000ATimeUnits
  239. {
  240. PS5000A_FS,
  241. PS5000A_PS,
  242. PS5000A_NS,
  243. PS5000A_US,
  244. PS5000A_MS,
  245. PS5000A_S,
  246. PS5000A_MAX_TIME_UNITS,
  247. } PS5000A_TIME_UNITS;
  248. typedef enum enPS5000ASweepType
  249. {
  250. PS5000A_UP,
  251. PS5000A_DOWN,
  252. PS5000A_UPDOWN,
  253. PS5000A_DOWNUP,
  254. PS5000A_MAX_SWEEP_TYPES
  255. } PS5000A_SWEEP_TYPE;
  256. typedef enum enPS5000AWaveType
  257. {
  258. PS5000A_SINE,
  259. PS5000A_SQUARE,
  260. PS5000A_TRIANGLE,
  261. PS5000A_RAMP_UP,
  262. PS5000A_RAMP_DOWN,
  263. PS5000A_SINC,
  264. PS5000A_GAUSSIAN,
  265. PS5000A_HALF_SINE,
  266. PS5000A_DC_VOLTAGE,
  267. PS5000A_WHITE_NOISE,
  268. PS5000A_MAX_WAVE_TYPES
  269. } PS5000A_WAVE_TYPE;
  270. typedef enum enPS5000AConditionsInfo
  271. {
  272. PS5000A_CLEAR = 0x00000001,
  273. PS5000A_ADD = 0x00000002
  274. } PS5000A_CONDITIONS_INFO;
  275. #define PS5000A_SINE_MAX_FREQUENCY 20000000.f
  276. #define PS5000A_SQUARE_MAX_FREQUENCY 20000000.f
  277. #define PS5000A_TRIANGLE_MAX_FREQUENCY 20000000.f
  278. #define PS5000A_SINC_MAX_FREQUENCY 20000000.f
  279. #define PS5000A_RAMP_MAX_FREQUENCY 20000000.f
  280. #define PS5000A_HALF_SINE_MAX_FREQUENCY 20000000.f
  281. #define PS5000A_GAUSSIAN_MAX_FREQUENCY 20000000.f
  282. #define PS5000A_MIN_FREQUENCY 0.03f
  283. typedef enum enPS5000ASigGenTrigType
  284. {
  285. PS5000A_SIGGEN_RISING,
  286. PS5000A_SIGGEN_FALLING,
  287. PS5000A_SIGGEN_GATE_HIGH,
  288. PS5000A_SIGGEN_GATE_LOW
  289. } PS5000A_SIGGEN_TRIG_TYPE;
  290. typedef enum enPS5000ASigGenTrigSource
  291. {
  292. PS5000A_SIGGEN_NONE,
  293. PS5000A_SIGGEN_SCOPE_TRIG,
  294. PS5000A_SIGGEN_AUX_IN,
  295. PS5000A_SIGGEN_EXT_IN,
  296. PS5000A_SIGGEN_SOFT_TRIG
  297. } PS5000A_SIGGEN_TRIG_SOURCE;
  298. typedef enum enPS5000AIndexMode
  299. {
  300. PS5000A_SINGLE,
  301. PS5000A_DUAL,
  302. PS5000A_QUAD,
  303. PS5000A_MAX_INDEX_MODES
  304. } PS5000A_INDEX_MODE;
  305. typedef enum enPS5000AThresholdMode
  306. {
  307. PS5000A_LEVEL,
  308. PS5000A_WINDOW
  309. } PS5000A_THRESHOLD_MODE;
  310. typedef enum enPS5000AThresholdDirection
  311. {
  312. PS5000A_ABOVE, //using upper threshold
  313. PS5000A_BELOW, //using upper threshold
  314. PS5000A_RISING, // using upper threshold
  315. PS5000A_FALLING, // using upper threshold
  316. PS5000A_RISING_OR_FALLING, // using both threshold
  317. PS5000A_ABOVE_LOWER, // using lower threshold
  318. PS5000A_BELOW_LOWER, // using lower threshold
  319. PS5000A_RISING_LOWER, // using lower threshold
  320. PS5000A_FALLING_LOWER, // using lower threshold
  321. // Windowing using both thresholds
  322. PS5000A_INSIDE = PS5000A_ABOVE,
  323. PS5000A_OUTSIDE = PS5000A_BELOW,
  324. PS5000A_ENTER = PS5000A_RISING,
  325. PS5000A_EXIT = PS5000A_FALLING,
  326. PS5000A_ENTER_OR_EXIT = PS5000A_RISING_OR_FALLING,
  327. PS5000A_POSITIVE_RUNT = 9,
  328. PS5000A_NEGATIVE_RUNT,
  329. // no trigger set
  330. PS5000A_NONE = PS5000A_RISING} PS5000A_THRESHOLD_DIRECTION;
  331. typedef enum enPS5000ATriggerState
  332. {
  333. PS5000A_CONDITION_DONT_CARE,
  334. PS5000A_CONDITION_TRUE,
  335. PS5000A_CONDITION_FALSE,
  336. PS5000A_CONDITION_MAX
  337. } PS5000A_TRIGGER_STATE;
  338. typedef enum enPS5000ATriggerWithinPreTrigger
  339. {
  340. PS5000A_DISABLE,
  341. PS5000A_ARM
  342. } PS5000A_TRIGGER_WITHIN_PRE_TRIGGER;
  343. #pragma pack(push, 1)
  344. typedef struct tPS5000ATriggerInfo
  345. {
  346. PICO_STATUS status;
  347. uint32_t segmentIndex;
  348. uint32_t triggerIndex;
  349. int64_t triggerTime;
  350. int16_t timeUnits;
  351. int16_t reserved0;
  352. uint64_t timeStampCounter;
  353. } PS5000A_TRIGGER_INFO;
  354. typedef struct tPS5000ATriggerConditions
  355. {
  356. PS5000A_TRIGGER_STATE channelA;
  357. PS5000A_TRIGGER_STATE channelB;
  358. PS5000A_TRIGGER_STATE channelC;
  359. PS5000A_TRIGGER_STATE channelD;
  360. PS5000A_TRIGGER_STATE external;
  361. PS5000A_TRIGGER_STATE aux;
  362. PS5000A_TRIGGER_STATE pulseWidthQualifier;
  363. } PS5000A_TRIGGER_CONDITIONS;
  364. typedef struct tPS5000ACondition
  365. {
  366. PS5000A_CHANNEL source;
  367. PS5000A_TRIGGER_STATE condition;
  368. } PS5000A_CONDITION;
  369. typedef struct tPS5000ADirection
  370. {
  371. PS5000A_CHANNEL source;
  372. PS5000A_THRESHOLD_DIRECTION direction;
  373. PS5000A_THRESHOLD_MODE mode;
  374. } PS5000A_DIRECTION;
  375. typedef struct tPS5000APwqConditions
  376. {
  377. PS5000A_TRIGGER_STATE channelA;
  378. PS5000A_TRIGGER_STATE channelB;
  379. PS5000A_TRIGGER_STATE channelC;
  380. PS5000A_TRIGGER_STATE channelD;
  381. PS5000A_TRIGGER_STATE external;
  382. PS5000A_TRIGGER_STATE aux;
  383. } PS5000A_PWQ_CONDITIONS;
  384. typedef struct tPS5000AScalingFactors
  385. {
  386. PS5000A_CHANNEL source;
  387. PS5000A_RANGE range;
  388. int16_t offset;
  389. double scalingFactor;
  390. }PS5000A_SCALING_FACTORS_VALUES;
  391. typedef struct tPS5000ATriggerChannelProperties
  392. {
  393. int16_t thresholdUpper;
  394. uint16_t thresholdUpperHysteresis;
  395. int16_t thresholdLower;
  396. uint16_t thresholdLowerHysteresis;
  397. PS5000A_CHANNEL channel;
  398. PS5000A_THRESHOLD_MODE thresholdMode;
  399. } PS5000A_TRIGGER_CHANNEL_PROPERTIES;
  400. typedef struct tPS5000ATriggerChannelPropertiesV2
  401. {
  402. int16_t thresholdUpper;
  403. uint16_t thresholdUpperHysteresis;
  404. int16_t thresholdLower;
  405. uint16_t thresholdLowerHysteresis;
  406. PS5000A_CHANNEL channel;
  407. } PS5000A_TRIGGER_CHANNEL_PROPERTIES_V2;
  408. typedef struct tPS5000ADigitalChannelDirections
  409. {
  410. PS5000A_DIGITAL_CHANNEL channel;
  411. PS5000A_DIGITAL_DIRECTION direction;
  412. } PS5000A_DIGITAL_CHANNEL_DIRECTIONS;
  413. #pragma pack(pop)
  414. typedef enum enPS5000ARatioMode
  415. {
  416. PS5000A_RATIO_MODE_NONE = 0,
  417. PS5000A_RATIO_MODE_AGGREGATE = 1,
  418. PS5000A_RATIO_MODE_DECIMATE = 2,
  419. PS5000A_RATIO_MODE_AVERAGE = 4,
  420. PS5000A_RATIO_MODE_DISTRIBUTION = 8
  421. } PS5000A_RATIO_MODE;
  422. typedef enum enPS5000APulseWidthType
  423. {
  424. PS5000A_PW_TYPE_NONE,
  425. PS5000A_PW_TYPE_LESS_THAN,
  426. PS5000A_PW_TYPE_GREATER_THAN,
  427. PS5000A_PW_TYPE_IN_RANGE,
  428. PS5000A_PW_TYPE_OUT_OF_RANGE
  429. } PS5000A_PULSE_WIDTH_TYPE;
  430. typedef enum enPS5000AChannelInfo
  431. {
  432. PS5000A_CI_RANGES,
  433. } PS5000A_CHANNEL_INFO;
  434. typedef void (PREF4 *ps5000aBlockReady)
  435. (
  436. int16_t handle,
  437. PICO_STATUS status,
  438. void *pParameter
  439. );
  440. typedef void (PREF4 *ps5000aStreamingReady)
  441. (
  442. int16_t handle,
  443. int32_t noOfSamples,
  444. uint32_t startIndex,
  445. int16_t overflow,
  446. uint32_t triggerAt,
  447. int16_t triggered,
  448. int16_t autoStop,
  449. void *pParameter
  450. );
  451. typedef void (PREF4 *ps5000aDataReady)
  452. (
  453. int16_t handle,
  454. PICO_STATUS status,
  455. uint32_t noOfSamples,
  456. int16_t overflow,
  457. void *pParameter
  458. );
  459. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aOpenUnit)(
  460. int16_t *handle,
  461. int8_t *serial,
  462. PS5000A_DEVICE_RESOLUTION resolution
  463. );
  464. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aOpenUnitAsync)
  465. (
  466. int16_t *status,
  467. int8_t *serial,
  468. PS5000A_DEVICE_RESOLUTION resolution
  469. );
  470. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aOpenUnitProgress)
  471. (
  472. int16_t *handle,
  473. int16_t *progressPercent,
  474. int16_t *complete
  475. );
  476. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetUnitInfo)
  477. (
  478. int16_t handle,
  479. int8_t * string,
  480. int16_t stringLength,
  481. int16_t *requiredSize,
  482. PICO_INFO info
  483. );
  484. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aFlashLed)
  485. (
  486. int16_t handle,
  487. int16_t start
  488. );
  489. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aIsLedFlashing)
  490. (
  491. int16_t handle,
  492. int16_t *status
  493. );
  494. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aCloseUnit)
  495. (
  496. int16_t handle
  497. );
  498. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aMemorySegments)
  499. (
  500. int16_t handle,
  501. uint32_t nSegments,
  502. int32_t *nMaxSamples
  503. );
  504. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetChannel)
  505. (
  506. int16_t handle,
  507. PS5000A_CHANNEL channel,
  508. int16_t enabled,
  509. PS5000A_COUPLING type,
  510. PS5000A_RANGE range,
  511. float analogOffset
  512. );
  513. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aSetDigitalPort)
  514. (
  515. int16_t handle,
  516. PS5000A_CHANNEL port,
  517. int16_t enabled,
  518. int16_t logicLevel
  519. );
  520. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetBandwidthFilter)
  521. (
  522. int16_t handle,
  523. PS5000A_CHANNEL channel,
  524. PS5000A_BANDWIDTH_LIMITER bandwidth
  525. );
  526. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetTimebase)
  527. (
  528. int16_t handle,
  529. uint32_t timebase,
  530. int32_t noSamples,
  531. int32_t *timeIntervalNanoseconds,
  532. int32_t *maxSamples,
  533. uint32_t segmentIndex
  534. );
  535. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetTimebase2)
  536. (
  537. int16_t handle,
  538. uint32_t timebase,
  539. int32_t noSamples,
  540. float *timeIntervalNanoseconds,
  541. int32_t *maxSamples,
  542. uint32_t segmentIndex
  543. );
  544. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aNearestSampleIntervalStateless)
  545. (
  546. int16_t handle,
  547. PS5000A_CHANNEL_FLAGS enabledChannelOrPortFlags,
  548. double timeIntervalRequested,
  549. PS5000A_DEVICE_RESOLUTION resolution,
  550. uint16_t useEts,
  551. uint32_t * timebase,
  552. double * timeIntervalAvailable
  553. );
  554. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aGetMinimumTimebaseStateless)
  555. (
  556. int16_t handle,
  557. PS5000A_CHANNEL_FLAGS enabledChannelOrPortFlags,
  558. uint32_t * timebase,
  559. double * timeInterval,
  560. PS5000A_DEVICE_RESOLUTION resolution
  561. );
  562. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aChannelCombinationsStateless)
  563. (
  564. int16_t handle,
  565. PS5000A_CHANNEL_FLAGS * channelOrPortFlagsCombinations,
  566. uint32_t * nChannelCombinations,
  567. PS5000A_DEVICE_RESOLUTION resolution,
  568. uint32_t timebase,
  569. int16_t hasDcPowerSupplyConnected
  570. );
  571. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetSigGenArbitrary)
  572. (
  573. int16_t handle,
  574. int32_t offsetVoltage,
  575. uint32_t pkToPk,
  576. uint32_t startDeltaPhase,
  577. uint32_t stopDeltaPhase,
  578. uint32_t deltaPhaseIncrement,
  579. uint32_t dwellCount,
  580. int16_t *arbitraryWaveform,
  581. int32_t arbitraryWaveformSize,
  582. PS5000A_SWEEP_TYPE sweepType,
  583. PS5000A_EXTRA_OPERATIONS operation,
  584. PS5000A_INDEX_MODE indexMode,
  585. uint32_t shots,
  586. uint32_t sweeps,
  587. PS5000A_SIGGEN_TRIG_TYPE triggerType,
  588. PS5000A_SIGGEN_TRIG_SOURCE triggerSource,
  589. int16_t extInThreshold
  590. );
  591. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aSetSigGenBuiltIn)
  592. (
  593. int16_t handle,
  594. int32_t offsetVoltage,
  595. uint32_t pkToPk,
  596. PS5000A_WAVE_TYPE waveType,
  597. float startFrequency,
  598. float stopFrequency,
  599. float increment,
  600. float dwellTime,
  601. PS5000A_SWEEP_TYPE sweepType,
  602. PS5000A_EXTRA_OPERATIONS operation,
  603. uint32_t shots,
  604. uint32_t sweeps,
  605. PS5000A_SIGGEN_TRIG_TYPE triggerType,
  606. PS5000A_SIGGEN_TRIG_SOURCE triggerSource,
  607. int16_t extInThreshold
  608. );
  609. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aSetSigGenBuiltInV2)
  610. (
  611. int16_t handle,
  612. int32_t offsetVoltage,
  613. uint32_t pkToPk,
  614. PS5000A_WAVE_TYPE waveType,
  615. double startFrequency,
  616. double stopFrequency,
  617. double increment,
  618. double dwellTime,
  619. PS5000A_SWEEP_TYPE sweepType,
  620. PS5000A_EXTRA_OPERATIONS operation,
  621. uint32_t shots,
  622. uint32_t sweeps,
  623. PS5000A_SIGGEN_TRIG_TYPE triggerType,
  624. PS5000A_SIGGEN_TRIG_SOURCE triggerSource,
  625. int16_t extInThreshold
  626. );
  627. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetSigGenPropertiesArbitrary)
  628. (
  629. int16_t handle,
  630. uint32_t startDeltaPhase,
  631. uint32_t stopDeltaPhase,
  632. uint32_t deltaPhaseIncrement,
  633. uint32_t dwellCount,
  634. PS5000A_SWEEP_TYPE sweepType,
  635. uint32_t shots,
  636. uint32_t sweeps,
  637. PS5000A_SIGGEN_TRIG_TYPE triggerType,
  638. PS5000A_SIGGEN_TRIG_SOURCE triggerSource,
  639. int16_t extInThreshold
  640. );
  641. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aSetSigGenPropertiesBuiltIn)
  642. (
  643. int16_t handle,
  644. double startFrequency,
  645. double stopFrequency,
  646. double increment,
  647. double dwellTime,
  648. PS5000A_SWEEP_TYPE sweepType,
  649. uint32_t shots,
  650. uint32_t sweeps,
  651. PS5000A_SIGGEN_TRIG_TYPE triggerType,
  652. PS5000A_SIGGEN_TRIG_SOURCE triggerSource,
  653. int16_t extInThreshold
  654. );
  655. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aSigGenFrequencyToPhase)
  656. (
  657. int16_t handle,
  658. double frequency,
  659. PS5000A_INDEX_MODE indexMode,
  660. uint32_t bufferLength,
  661. uint32_t * phase
  662. );
  663. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aSigGenArbitraryMinMaxValues)
  664. (
  665. int16_t handle,
  666. int16_t * minArbitraryWaveformValue,
  667. int16_t * maxArbitraryWaveformValue,
  668. uint32_t * minArbitraryWaveformSize,
  669. uint32_t * maxArbitraryWaveformSize
  670. );
  671. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSigGenSoftwareControl)
  672. (
  673. int16_t handle,
  674. int16_t state
  675. );
  676. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetEts)
  677. (
  678. int16_t handle,
  679. PS5000A_ETS_MODE mode,
  680. int16_t etsCycles,
  681. int16_t etsInterleave,
  682. int32_t *sampleTimePicoseconds
  683. );
  684. PREF0 DEPRECATED("this function is marked as deprecated use ps5000aSetTriggerChannelPropertiesV2", PREF1 PICO_STATUS PREF2 PREF3(ps5000aSetTriggerChannelProperties)
  685. (
  686. int16_t handle,
  687. PS5000A_TRIGGER_CHANNEL_PROPERTIES *channelProperties,
  688. int16_t nChannelProperties,
  689. int16_t auxOutputEnable,
  690. int32_t autoTriggerMilliseconds
  691. ))
  692. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetTriggerChannelPropertiesV2)
  693. (
  694. int16_t handle,
  695. PS5000A_TRIGGER_CHANNEL_PROPERTIES_V2 * channelProperties,
  696. int16_t nChannelProperties,
  697. int16_t auxOutputEnable
  698. );
  699. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aSetAutoTriggerMicroSeconds)
  700. (
  701. int16_t handle,
  702. uint64_t autoTriggerMicroseconds
  703. );
  704. PREF0 DEPRECATED("this function is marked as deprecated use ps5000aSetTriggerChannelConditionsV2", PREF1 PICO_STATUS PREF2 PREF3(ps5000aSetTriggerChannelConditions)
  705. (
  706. int16_t handle,
  707. PS5000A_TRIGGER_CONDITIONS *conditions,
  708. int16_t nConditions
  709. ))
  710. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aSetTriggerChannelConditionsV2)
  711. (
  712. int16_t handle,
  713. PS5000A_CONDITION * conditions,
  714. int16_t nConditions,
  715. PS5000A_CONDITIONS_INFO info
  716. );
  717. PREF0 DEPRECATED("this function is marked as deprecated use ps5000aSetTriggerChannelDirectionsV2", PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetTriggerChannelDirections)
  718. (
  719. int16_t handle,
  720. PS5000A_THRESHOLD_DIRECTION channelA,
  721. PS5000A_THRESHOLD_DIRECTION channelB,
  722. PS5000A_THRESHOLD_DIRECTION channelC,
  723. PS5000A_THRESHOLD_DIRECTION channelD,
  724. PS5000A_THRESHOLD_DIRECTION ext,
  725. PS5000A_THRESHOLD_DIRECTION aux
  726. ))
  727. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aSetTriggerChannelDirectionsV2)
  728. (
  729. int16_t handle,
  730. PS5000A_DIRECTION * directions,
  731. uint16_t nDirections
  732. );
  733. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetSimpleTrigger)
  734. (
  735. int16_t handle,
  736. int16_t enable,
  737. PS5000A_CHANNEL channel,
  738. int16_t threshold,
  739. PS5000A_THRESHOLD_DIRECTION direction,
  740. uint32_t delay,
  741. int16_t autoTrigger_ms
  742. );
  743. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aSetTriggerDigitalPortProperties)
  744. (
  745. int16_t handle,
  746. PS5000A_DIGITAL_CHANNEL_DIRECTIONS * directions,
  747. int16_t nDirections
  748. );
  749. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aSetPulseWidthDigitalPortProperties)
  750. (
  751. int16_t handle,
  752. PS5000A_DIGITAL_CHANNEL_DIRECTIONS * directions,
  753. int16_t nDirections
  754. );
  755. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetTriggerDelay)
  756. (
  757. int16_t handle,
  758. uint32_t delay
  759. );
  760. PREF0 DEPRECATED("this function is marked as deprecated use ps5000aSetPulseWidthQualifierProperties, ps5000aSetPulseWidthQualifierConditions, ps5000aSetPulseWidthQualifierDirections", PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetPulseWidthQualifier)
  761. (
  762. int16_t handle,
  763. PS5000A_PWQ_CONDITIONS *conditions,
  764. int16_t nConditions,
  765. PS5000A_THRESHOLD_DIRECTION direction,
  766. uint32_t lower,
  767. uint32_t upper,
  768. PS5000A_PULSE_WIDTH_TYPE type
  769. ))
  770. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aSetPulseWidthQualifierProperties)
  771. (
  772. int16_t handle,
  773. uint32_t lower,
  774. uint32_t upper,
  775. PS5000A_PULSE_WIDTH_TYPE type
  776. );
  777. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aSetPulseWidthQualifierConditions)
  778. (
  779. int16_t handle,
  780. PS5000A_CONDITION * conditions,
  781. int16_t nConditions,
  782. PS5000A_CONDITIONS_INFO info
  783. );
  784. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetPulseWidthQualifierDirections)
  785. (
  786. int16_t handle,
  787. PS5000A_DIRECTION * directions,
  788. int16_t nDirections
  789. );
  790. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aIsTriggerOrPulseWidthQualifierEnabled)
  791. (
  792. int16_t handle,
  793. int16_t *triggerEnabled,
  794. int16_t *pulseWidthQualifierEnabled
  795. );
  796. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetTriggerTimeOffset)
  797. (
  798. int16_t handle,
  799. uint32_t *timeUpper,
  800. uint32_t *timeLower,
  801. PS5000A_TIME_UNITS *timeUnits,
  802. uint32_t segmentIndex
  803. );
  804. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetTriggerTimeOffset64)
  805. (
  806. int16_t handle,
  807. int64_t *time,
  808. PS5000A_TIME_UNITS *timeUnits,
  809. uint32_t segmentIndex
  810. );
  811. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetValuesTriggerTimeOffsetBulk)
  812. (
  813. int16_t handle,
  814. uint32_t *timesUpper,
  815. uint32_t *timesLower,
  816. PS5000A_TIME_UNITS *timeUnits,
  817. uint32_t fromSegmentIndex,
  818. uint32_t toSegmentIndex
  819. );
  820. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetValuesTriggerTimeOffsetBulk64)
  821. (
  822. int16_t handle,
  823. int64_t *times,
  824. PS5000A_TIME_UNITS *timeUnits,
  825. uint32_t fromSegmentIndex,
  826. uint32_t toSegmentIndex
  827. );
  828. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetDataBuffers)
  829. (
  830. int16_t handle,
  831. PS5000A_CHANNEL source,
  832. int16_t *bufferMax,
  833. int16_t *bufferMin,
  834. int32_t bufferLth,
  835. uint32_t segmentIndex,
  836. PS5000A_RATIO_MODE mode
  837. );
  838. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetDataBuffer)
  839. (
  840. int16_t handle,
  841. PS5000A_CHANNEL source,
  842. int16_t *buffer,
  843. int32_t bufferLth,
  844. uint32_t segmentIndex,
  845. PS5000A_RATIO_MODE mode
  846. );
  847. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aSetUnscaledDataBuffers)
  848. (
  849. int16_t handle,
  850. PS5000A_CHANNEL source,
  851. int8_t *bufferMax,
  852. int8_t *bufferMin,
  853. int32_t bufferLth,
  854. uint32_t segmentIndex,
  855. PS5000A_RATIO_MODE mode
  856. );
  857. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetEtsTimeBuffer)
  858. (
  859. int16_t handle,
  860. int64_t *buffer,
  861. int32_t bufferLth
  862. );
  863. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetEtsTimeBuffers)
  864. (
  865. int16_t handle,
  866. uint32_t *timeUpper,
  867. uint32_t *timeLower,
  868. int32_t bufferLth
  869. );
  870. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aIsReady)
  871. (
  872. int16_t handle,
  873. int16_t * ready
  874. );
  875. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aRunBlock)
  876. (
  877. int16_t handle,
  878. int32_t noOfPreTriggerSamples,
  879. int32_t noOfPostTriggerSamples,
  880. uint32_t timebase,
  881. int32_t *timeIndisposedMs,
  882. uint32_t segmentIndex,
  883. ps5000aBlockReady lpReady,
  884. void *pParameter
  885. );
  886. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aRunStreaming)
  887. (
  888. int16_t handle,
  889. uint32_t *sampleInterval,
  890. PS5000A_TIME_UNITS sampleIntervalTimeUnits,
  891. uint32_t maxPreTriggerSamples,
  892. uint32_t maxPostTriggerSamples,
  893. int16_t autoStop,
  894. uint32_t downSampleRatio,
  895. PS5000A_RATIO_MODE downSampleRatioMode,
  896. uint32_t overviewBufferSize
  897. );
  898. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetStreamingLatestValues)
  899. (
  900. int16_t handle,
  901. ps5000aStreamingReady lpPs5000aReady,
  902. void *pParameter
  903. );
  904. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aNoOfStreamingValues)
  905. (
  906. int16_t handle,
  907. uint32_t *noOfValues
  908. );
  909. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetMaxDownSampleRatio)
  910. (
  911. int16_t handle,
  912. uint32_t noOfUnaggreatedSamples,
  913. uint32_t *maxDownSampleRatio,
  914. PS5000A_RATIO_MODE downSampleRatioMode,
  915. uint32_t segmentIndex
  916. );
  917. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetValues)
  918. (
  919. int16_t handle,
  920. uint32_t startIndex,
  921. uint32_t *noOfSamples,
  922. uint32_t downSampleRatio,
  923. PS5000A_RATIO_MODE downSampleRatioMode,
  924. uint32_t segmentIndex,
  925. int16_t *overflow
  926. );
  927. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetValuesAsync)
  928. (
  929. int16_t handle,
  930. uint32_t startIndex,
  931. uint32_t noOfSamples,
  932. uint32_t downSampleRatio,
  933. PS5000A_RATIO_MODE downSampleRatioMode,
  934. uint32_t segmentIndex,
  935. void *lpDataReady,
  936. void *pParameter
  937. );
  938. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetValuesBulk)
  939. (
  940. int16_t handle,
  941. uint32_t *noOfSamples,
  942. uint32_t fromSegmentIndex,
  943. uint32_t toSegmentIndex,
  944. uint32_t downSampleRatio,
  945. PS5000A_RATIO_MODE downSampleRatioMode,
  946. int16_t *overflow
  947. );
  948. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetValuesOverlapped)
  949. (
  950. int16_t handle,
  951. uint32_t startIndex,
  952. uint32_t *noOfSamples,
  953. uint32_t downSampleRatio,
  954. PS5000A_RATIO_MODE downSampleRatioMode,
  955. uint32_t segmentIndex,
  956. int16_t *overflow
  957. );
  958. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetValuesOverlappedBulk)
  959. (
  960. int16_t handle,
  961. uint32_t startIndex,
  962. uint32_t *noOfSamples,
  963. uint32_t downSampleRatio,
  964. PS5000A_RATIO_MODE downSampleRatioMode,
  965. uint32_t fromSegmentIndex,
  966. uint32_t toSegmentIndex,
  967. int16_t *overflow
  968. );
  969. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aTriggerWithinPreTriggerSamples)
  970. (
  971. int16_t handle,
  972. PS5000A_TRIGGER_WITHIN_PRE_TRIGGER state
  973. );
  974. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetTriggerInfoBulk)
  975. (
  976. int16_t handle,
  977. PS5000A_TRIGGER_INFO * triggerInfo,
  978. uint32_t fromSegmentIndex,
  979. uint32_t toSegmentIndex
  980. );
  981. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aEnumerateUnits)
  982. (
  983. int16_t *count,
  984. int8_t *serials,
  985. int16_t *serialLth
  986. );
  987. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetChannelInformation)
  988. (
  989. int16_t handle,
  990. PS5000A_CHANNEL_INFO info,
  991. int32_t probe,
  992. int32_t *ranges,
  993. int32_t *length,
  994. int32_t channels
  995. );
  996. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aMaximumValue)
  997. (
  998. int16_t handle,
  999. int16_t *value
  1000. );
  1001. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aMinimumValue)
  1002. (
  1003. int16_t handle,
  1004. int16_t * value
  1005. );
  1006. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetAnalogueOffset)
  1007. (
  1008. int16_t handle,
  1009. PS5000A_RANGE range,
  1010. PS5000A_COUPLING coupling,
  1011. float *maximumVoltage,
  1012. float *minimumVoltage
  1013. );
  1014. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetMaxSegments)
  1015. (
  1016. int16_t handle,
  1017. uint32_t *maxSegments
  1018. );
  1019. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aChangePowerSource)
  1020. (
  1021. int16_t handle,
  1022. PICO_STATUS powerState
  1023. );
  1024. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aCurrentPowerSource)
  1025. (
  1026. int16_t handle
  1027. );
  1028. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aStop)
  1029. (
  1030. int16_t handle
  1031. );
  1032. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aPingUnit)
  1033. (
  1034. int16_t handle
  1035. );
  1036. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetNoOfCaptures)
  1037. (
  1038. int16_t handle,
  1039. uint32_t nCaptures
  1040. );
  1041. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetNoOfCaptures)
  1042. (
  1043. int16_t handle,
  1044. uint32_t *nCaptures
  1045. );
  1046. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetNoOfProcessedCaptures)
  1047. (
  1048. int16_t handle,
  1049. uint32_t *nProcessedCaptures
  1050. );
  1051. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aSetDeviceResolution)
  1052. (
  1053. int16_t handle,
  1054. PS5000A_DEVICE_RESOLUTION resolution
  1055. );
  1056. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000aGetDeviceResolution)
  1057. (
  1058. int16_t handle,
  1059. PS5000A_DEVICE_RESOLUTION *resolution
  1060. );
  1061. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aQueryOutputEdgeDetect)
  1062. (
  1063. int16_t handle,
  1064. int16_t * state
  1065. );
  1066. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aSetOutputEdgeDetect)
  1067. (
  1068. int16_t handle,
  1069. int16_t state
  1070. );
  1071. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aGetScalingValues)
  1072. (
  1073. int16_t handle,
  1074. PS5000A_SCALING_FACTORS_VALUES *scalingValues,
  1075. int16_t nChannels
  1076. );
  1077. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aCheckForUpdate)
  1078. (
  1079. int16_t handle,
  1080. PICO_VERSION * current,
  1081. PICO_VERSION * update,
  1082. uint16_t * updateRequired
  1083. );
  1084. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000aStartFirmwareUpdate)
  1085. (
  1086. int16_t handle,
  1087. PicoUpdateFirmwareProgress progress
  1088. );
  1089. #endif