ps5000Api.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749
  1. /****************************************************************************
  2. *
  3. * Filename: ps5000Api.h
  4. * Author: MAS
  5. * Description:
  6. *
  7. * This header defines the interface to driver routines for the
  8. * PicoScope 5203 and 5204 PC Oscilloscopes.
  9. *
  10. * Copyright � 2002 - 2022 Pico Technology Ltd. All rights reserved.
  11. *
  12. ****************************************************************************/
  13. #ifndef __PS5000API_H__
  14. #define __PS5000API_H__
  15. #include <stdint.h>
  16. #include "PicoStatus.h"
  17. #ifdef PREF0
  18. #undef PREF0
  19. #endif
  20. #ifdef PREF1
  21. #undef PREF1
  22. #endif
  23. #ifdef PREF2
  24. #undef PREF2
  25. #endif
  26. #ifdef PREF3
  27. #undef PREF3
  28. #endif
  29. #ifdef __cplusplus
  30. #define PREF0 extern "C"
  31. #else
  32. #define PREF0
  33. #endif
  34. #ifdef WIN32
  35. /* If you are dynamically linking ps5000.dll into your project #define DYNLINK here
  36. */
  37. #ifdef DYNLINK
  38. #define PREF1 typedef
  39. #define PREF2
  40. #define PREF3(x) (__stdcall *x)
  41. #else
  42. #define PREF1
  43. #ifdef _USRDLL
  44. #define PREF2 __declspec(dllexport) __stdcall
  45. #else
  46. #define PREF2 __declspec(dllimport) __stdcall
  47. #endif
  48. #define PREF3(x) x
  49. #endif
  50. #define PREF4 __stdcall
  51. #else
  52. /* Define a 64-bit integer type */
  53. #ifdef DYNLINK
  54. #define PREF1 typedef
  55. #define PREF2
  56. #define PREF3(x) (*x)
  57. #else
  58. #ifdef _USRDLL
  59. #define PREF1 __attribute__((visibility("default")))
  60. #else
  61. #define PREF1
  62. #endif
  63. #define PREF2
  64. #define PREF3(x) x
  65. #endif
  66. #define PREF4
  67. #endif
  68. #define PS5000_MAX_OVERSAMPLE_8BIT 256
  69. /* Although the PS5000 uses an 8-bit ADC, it is usually possible to
  70. * oversample (collect multiple readings at each time) by up to 256.
  71. * the results are therefore ALWAYS scaled up to 16-bits, even if
  72. * oversampling is not used.
  73. *
  74. * The maximum and minimum values returned are therefore as follows:
  75. */
  76. #define PS5000_MAX_VALUE 32512
  77. #define PS5000_MIN_VALUE -32512
  78. #define PS5000_LOST_DATA -32768
  79. #define PS5000_EXT_MAX_VALUE 32767
  80. #define PS5000_EXT_MIN_VALUE -32767
  81. #define MAX_PULSE_WIDTH_QUALIFIER_COUNT 16777215L
  82. #define MAX_DELAY_COUNT 8388607L
  83. #define MAX_SIG_GEN_BUFFER_SIZE 8192
  84. #define MIN_SIG_GEN_BUFFER_SIZE 10
  85. #define MIN_DWELL_COUNT 10
  86. #define MAX_SWEEPS_SHOTS ((1 << 30) - 1)
  87. typedef enum enPS5000Channel
  88. {
  89. PS5000_CHANNEL_A,
  90. PS5000_CHANNEL_B,
  91. PS5000_CHANNEL_C,
  92. PS5000_CHANNEL_D,
  93. PS5000_EXTERNAL,
  94. PS5000_MAX_CHANNELS = PS5000_EXTERNAL,
  95. PS5000_TRIGGER_AUX,
  96. PS5000_MAX_TRIGGER_SOURCES
  97. } PS5000_CHANNEL;
  98. typedef enum enChannelBufferIndex
  99. {
  100. PS5000_CHANNEL_A_MAX,
  101. PS5000_CHANNEL_A_MIN,
  102. PS5000_CHANNEL_B_MAX,
  103. PS5000_CHANNEL_B_MIN,
  104. PS5000_CHANNEL_C_MAX,
  105. PS5000_CHANNEL_C_MIN,
  106. PS5000_CHANNEL_D_MAX,
  107. PS5000_CHANNEL_D_MIN,
  108. PS5000_MAX_CHANNEL_BUFFERS
  109. } PS5000_CHANNEL_BUFFER_INDEX;
  110. typedef enum enPS5000Range
  111. {
  112. PS5000_10MV,
  113. PS5000_20MV,
  114. PS5000_50MV,
  115. PS5000_100MV,
  116. PS5000_200MV,
  117. PS5000_500MV,
  118. PS5000_1V,
  119. PS5000_2V,
  120. PS5000_5V,
  121. PS5000_10V,
  122. PS5000_20V,
  123. PS5000_50V,
  124. PS5000_MAX_RANGES
  125. } PS5000_RANGE;
  126. typedef enum enPS5000EtsMode
  127. {
  128. PS5000_ETS_OFF, // ETS disabled
  129. PS5000_ETS_FAST, // Return ready as soon as requested no of interleaves is available
  130. PS5000_ETS_SLOW, // Return ready every time a new set of no_of_cycles is collected
  131. PS5000_ETS_MODES_MAX
  132. } PS5000_ETS_MODE;
  133. typedef enum enPS5000TimeUnits
  134. {
  135. PS5000_FS,
  136. PS5000_PS,
  137. PS5000_NS,
  138. PS5000_US,
  139. PS5000_MS,
  140. PS5000_S,
  141. PS5000_MAX_TIME_UNITS,
  142. } PS5000_TIME_UNITS;
  143. typedef enum enSweepType
  144. {
  145. UP,
  146. DOWN,
  147. UPDOWN,
  148. DOWNUP,
  149. MAX_SWEEP_TYPES
  150. } SWEEP_TYPE;
  151. typedef enum enWaveType
  152. {
  153. PS5000_SINE,
  154. PS5000_SQUARE,
  155. PS5000_TRIANGLE,
  156. PS5000_RAMP_UP,
  157. PS5000_RAMP_DOWN,
  158. PS5000_SINC,
  159. PS5000_GAUSSIAN,
  160. PS5000_HALF_SINE,
  161. PS5000_DC_VOLTAGE,
  162. PS5000_WHITE_NOISE,
  163. MAX_WAVE_TYPES
  164. } WAVE_TYPE;
  165. #define PS5000_SINE_MAX_FREQUENCY 20000000.f
  166. #define PS5000_SQUARE_MAX_FREQUENCY 20000000.f
  167. #define PS5000_TRIANGLE_MAX_FREQUENCY 20000000.f
  168. #define PS5000_SINC_MAX_FREQUENCY 20000000.f
  169. #define PS5000_RAMP_MAX_FREQUENCY 20000000.f
  170. #define PS5000_HALF_SINE_MAX_FREQUENCY 20000000.f
  171. #define PS5000_GAUSSIAN_MAX_FREQUENCY 20000000.f
  172. #define PS5000_MIN_FREQUENCY 0.03f
  173. typedef enum enSigGenTrigType
  174. {
  175. SIGGEN_RISING,
  176. SIGGEN_FALLING,
  177. SIGGEN_GATE_HIGH,
  178. SIGGEN_GATE_LOW
  179. } SIGGEN_TRIG_TYPE;
  180. typedef enum enSigGenTrigSource
  181. {
  182. SIGGEN_NONE,
  183. SIGGEN_SCOPE_TRIG,
  184. SIGGEN_AUX_IN,
  185. SIGGEN_EXT_IN,
  186. SIGGEN_SOFT_TRIG
  187. } SIGGEN_TRIG_SOURCE;
  188. typedef enum enIndexMode
  189. {
  190. SINGLE,
  191. DUAL,
  192. QUAD,
  193. MAX_INDEX_MODES
  194. } INDEX_MODE;
  195. typedef enum enThresholdMode
  196. {
  197. LEVEL,
  198. WINDOW
  199. } THRESHOLD_MODE;
  200. typedef enum enThresholdDirection
  201. {
  202. ABOVE,
  203. BELOW,
  204. RISING,
  205. FALLING,
  206. RISING_OR_FALLING,
  207. INSIDE = ABOVE,
  208. OUTSIDE = BELOW,
  209. ENTER = RISING,
  210. EXIT = FALLING,
  211. ENTER_OR_EXIT = RISING_OR_FALLING,
  212. NONE = RISING
  213. } THRESHOLD_DIRECTION;
  214. typedef enum enTriggerState
  215. {
  216. CONDITION_DONT_CARE,
  217. CONDITION_TRUE,
  218. CONDITION_FALSE,
  219. CONDITION_MAX
  220. } TRIGGER_STATE;
  221. #pragma pack(push,1)
  222. typedef struct tTriggerConditions
  223. {
  224. TRIGGER_STATE channelA;
  225. TRIGGER_STATE channelB;
  226. TRIGGER_STATE channelC;
  227. TRIGGER_STATE channelD;
  228. TRIGGER_STATE external;
  229. TRIGGER_STATE aux;
  230. TRIGGER_STATE pulseWidthQualifier;
  231. } TRIGGER_CONDITIONS;
  232. #pragma pack(pop)
  233. #pragma pack(push,1)
  234. typedef struct tPwqConditions
  235. {
  236. TRIGGER_STATE channelA;
  237. TRIGGER_STATE channelB;
  238. TRIGGER_STATE channelC;
  239. TRIGGER_STATE channelD;
  240. TRIGGER_STATE external;
  241. TRIGGER_STATE aux;
  242. } PWQ_CONDITIONS;
  243. #pragma pack(pop)
  244. #pragma pack(push,1)
  245. typedef struct tTriggerChannelProperties
  246. {
  247. int16_t thresholdMajor;
  248. int16_t thresholdMinor;
  249. uint16_t hysteresis;
  250. PS5000_CHANNEL channel;
  251. THRESHOLD_MODE thresholdMode;
  252. } TRIGGER_CHANNEL_PROPERTIES;
  253. #pragma pack(pop)
  254. typedef enum enRatioMode
  255. {
  256. RATIO_MODE_NONE = 0,
  257. RATIO_MODE_AGGREGATE = 1,
  258. RATIO_MODE_DECIMATE = 2,
  259. RATIO_MODE_AVERAGE = 4,
  260. RATIO_MODE_DISTRIBUTION = 8
  261. } RATIO_MODE;
  262. typedef enum enPulseWidthType
  263. {
  264. PW_TYPE_NONE,
  265. PW_TYPE_LESS_THAN,
  266. PW_TYPE_GREATER_THAN,
  267. PW_TYPE_IN_RANGE,
  268. PW_TYPE_OUT_OF_RANGE
  269. } PULSE_WIDTH_TYPE;
  270. typedef enum enPS5000ChannelInfo
  271. {
  272. CI_RANGES,
  273. } PS5000_CHANNEL_INFO;
  274. typedef void (PREF4 *ps5000BlockReady)
  275. (
  276. int16_t handle,
  277. PICO_STATUS status,
  278. void *pParameter
  279. );
  280. typedef void (PREF4 *ps5000StreamingReady)
  281. (
  282. int16_t handle,
  283. int32_t noOfSamples,
  284. uint32_t startIndex,
  285. int16_t overflow,
  286. uint32_t triggerAt,
  287. int16_t triggered,
  288. int16_t autoStop,
  289. void *pParameter
  290. );
  291. typedef void (PREF4 *ps5000DataReady)
  292. (
  293. int16_t handle,
  294. int32_t noOfSamples,
  295. int16_t overflow,
  296. uint32_t triggerAt,
  297. int16_t triggered,
  298. void *pParameter
  299. );
  300. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000OpenUnit)
  301. (
  302. int16_t *handle
  303. );
  304. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000OpenUnitAsync)
  305. (
  306. int16_t *status
  307. );
  308. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000OpenUnitProgress)
  309. (
  310. int16_t *handle,
  311. int16_t *progressPercent,
  312. int16_t *complete
  313. );
  314. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000GetUnitInfo)
  315. (
  316. int16_t handle,
  317. int8_t *string,
  318. int16_t stringLength,
  319. int16_t *requiredSize,
  320. PICO_INFO info
  321. );
  322. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000FlashLed)
  323. (
  324. int16_t handle,
  325. int16_t start
  326. );
  327. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000IsLedFlashing)
  328. (
  329. int16_t handle,
  330. int16_t *status
  331. );
  332. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000CloseUnit)
  333. (
  334. int16_t handle
  335. );
  336. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000MemorySegments)
  337. (
  338. int16_t handle,
  339. uint16_t nSegments,
  340. int32_t *nMaxSamples
  341. );
  342. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000SetChannel)
  343. (
  344. int16_t handle,
  345. PS5000_CHANNEL channel,
  346. int16_t enabled,
  347. int16_t dc,
  348. PS5000_RANGE range
  349. );
  350. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000GetTimebase)
  351. (
  352. int16_t handle,
  353. uint32_t timebase,
  354. int32_t noSamples,
  355. int32_t *timeIntervalNanoseconds,
  356. int16_t oversample,
  357. int32_t *maxSamples,
  358. uint16_t segmentIndex
  359. );
  360. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000GetTimebase2)
  361. (
  362. int16_t handle,
  363. uint32_t timebase,
  364. int32_t noSamples,
  365. float *timeIntervalNanoseconds,
  366. int16_t oversample,
  367. int32_t *maxSamples,
  368. uint16_t segmentIndex
  369. );
  370. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000SetSigGenArbitrary)
  371. (
  372. int16_t handle,
  373. int32_t offsetVoltage,
  374. uint32_t pkToPk,
  375. uint32_t startDeltaPhase,
  376. uint32_t stopDeltaPhase,
  377. uint32_t deltaPhaseIncrement,
  378. uint32_t dwellCount,
  379. int16_t *arbitraryWaveform,
  380. int32_t arbitraryWaveformSize,
  381. SWEEP_TYPE sweepType,
  382. int16_t whiteNoise,
  383. INDEX_MODE indexMode,
  384. uint32_t shots,
  385. uint32_t sweeps,
  386. SIGGEN_TRIG_TYPE triggerType,
  387. SIGGEN_TRIG_SOURCE triggerSource,
  388. int16_t extInThreshold
  389. );
  390. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000SetSigGenBuiltIn)
  391. (
  392. int16_t handle,
  393. int32_t offsetVoltage,
  394. uint32_t pkToPk,
  395. int16_t waveType,
  396. float startFrequency,
  397. float stopFrequency,
  398. float increment,
  399. float dwellTime,
  400. SWEEP_TYPE sweepType,
  401. int16_t whiteNoise,
  402. uint32_t shots,
  403. uint32_t sweeps,
  404. SIGGEN_TRIG_TYPE triggerType,
  405. SIGGEN_TRIG_SOURCE triggerSource,
  406. int16_t extInThreshold
  407. );
  408. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000SetSigGenBuiltInV2)
  409. (
  410. int16_t handle,
  411. int32_t offsetVoltage,
  412. uint32_t pkToPk,
  413. int16_t waveType,
  414. double startFrequency,
  415. double stopFrequency,
  416. double increment,
  417. double dwellTime,
  418. SWEEP_TYPE sweepType,
  419. int16_t whiteNoise,
  420. uint32_t shots,
  421. uint32_t sweeps,
  422. SIGGEN_TRIG_TYPE triggerType,
  423. SIGGEN_TRIG_SOURCE triggerSource,
  424. int16_t extInThreshold
  425. );
  426. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000SigGenFrequencyToPhase)
  427. (
  428. int16_t handle,
  429. double frequency,
  430. INDEX_MODE indexMode,
  431. uint32_t bufferLength,
  432. uint32_t * phase
  433. );
  434. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps5000SigGenArbitraryMinMaxValues)
  435. (
  436. int16_t handle,
  437. int16_t * minArbitraryWaveformValue,
  438. int16_t * maxArbitraryWaveformValue,
  439. uint32_t * minArbitraryWaveformSize,
  440. uint32_t * maxArbitraryWaveformSize
  441. );
  442. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000SigGenSoftwareControl)
  443. (
  444. int16_t handle,
  445. int16_t state
  446. );
  447. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000SetEts)
  448. (
  449. int16_t handle,
  450. PS5000_ETS_MODE mode,
  451. int16_t etsCycles,
  452. int16_t etsInterleave,
  453. int32_t *sampleTimePicoseconds
  454. );
  455. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000SetTriggerChannelProperties)
  456. (
  457. int16_t handle,
  458. TRIGGER_CHANNEL_PROPERTIES *channelProperties,
  459. int16_t nChannelProperties,
  460. int16_t auxOutputEnable,
  461. int32_t autoTriggerMilliseconds
  462. );
  463. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000SetTriggerChannelConditions)
  464. (
  465. int16_t handle,
  466. TRIGGER_CONDITIONS *conditions,
  467. int16_t nConditions
  468. );
  469. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000SetTriggerChannelDirections)
  470. (
  471. int16_t handle,
  472. THRESHOLD_DIRECTION channelA,
  473. THRESHOLD_DIRECTION channelB,
  474. THRESHOLD_DIRECTION channelC,
  475. THRESHOLD_DIRECTION channelD,
  476. THRESHOLD_DIRECTION ext,
  477. THRESHOLD_DIRECTION aux
  478. );
  479. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000SetSimpleTrigger)
  480. (
  481. int16_t handle,
  482. int16_t enable,
  483. PS5000_CHANNEL source,
  484. int16_t threshold,
  485. THRESHOLD_DIRECTION direction,
  486. uint32_t delay,
  487. int16_t autoTrigger_ms
  488. );
  489. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000SetTriggerDelay)
  490. (
  491. int16_t handle,
  492. uint32_t delay
  493. );
  494. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000SetPulseWidthQualifier)
  495. (
  496. int16_t handle,
  497. PWQ_CONDITIONS *conditions,
  498. int16_t nConditions,
  499. THRESHOLD_DIRECTION direction,
  500. uint32_t lower,
  501. uint32_t upper,
  502. PULSE_WIDTH_TYPE type
  503. );
  504. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000IsTriggerOrPulseWidthQualifierEnabled)
  505. (
  506. int16_t handle,
  507. int16_t *triggerEnabled,
  508. int16_t *pulseWidthQualifierEnabled
  509. );
  510. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000GetTriggerTimeOffset)
  511. (
  512. int16_t handle,
  513. uint32_t *timeUpper,
  514. uint32_t *timeLower,
  515. PS5000_TIME_UNITS *timeUnits,
  516. uint16_t segmentIndex
  517. );
  518. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000GetTriggerTimeOffset64)
  519. (
  520. int16_t handle,
  521. int64_t *time,
  522. PS5000_TIME_UNITS *timeUnits,
  523. uint16_t segmentIndex
  524. );
  525. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000GetValuesTriggerTimeOffsetBulk)
  526. (
  527. int16_t handle,
  528. uint32_t *timesUpper,
  529. uint32_t *timesLower,
  530. PS5000_TIME_UNITS *timeUnits,
  531. uint16_t fromSegmentIndex,
  532. uint16_t toSegmentIndex
  533. );
  534. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000GetValuesTriggerTimeOffsetBulk64)
  535. (
  536. int16_t handle,
  537. int64_t *times,
  538. PS5000_TIME_UNITS *timeUnits,
  539. uint16_t fromSegmentIndex,
  540. uint16_t toSegmentIndex
  541. );
  542. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000SetDataBuffers)
  543. (
  544. int16_t handle,
  545. PS5000_CHANNEL channel,
  546. int16_t *bufferMax,
  547. int16_t *bufferMin,
  548. int32_t bufferLth
  549. );
  550. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000SetDataBuffer)
  551. (
  552. int16_t handle,
  553. PS5000_CHANNEL channel,
  554. int16_t *buffer,
  555. int32_t bufferLth
  556. );
  557. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000SetDataBufferBulk)
  558. (
  559. int16_t handle,
  560. PS5000_CHANNEL channel,
  561. int16_t *buffer,
  562. int32_t bufferLth,
  563. uint16_t waveform
  564. );
  565. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000SetEtsTimeBuffer)
  566. (
  567. int16_t handle,
  568. int64_t *buffer,
  569. int32_t bufferLth
  570. );
  571. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000SetEtsTimeBuffers)
  572. (
  573. int16_t handle,
  574. uint32_t *timeUpper,
  575. uint32_t *timeLower,
  576. int32_t bufferLth
  577. );
  578. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000IsReady)
  579. (
  580. int16_t handle,
  581. int16_t *ready
  582. );
  583. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000RunBlock)
  584. (
  585. int16_t handle,
  586. int32_t noOfPreTriggerSamples,
  587. int32_t noOfPostTriggerSamples,
  588. uint32_t timebase,
  589. int16_t oversample,
  590. int32_t *timeIndisposedMs,
  591. uint16_t segmentIndex,
  592. ps5000BlockReady lpReady,
  593. void *pParameter
  594. );
  595. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000RunStreaming)
  596. (
  597. int16_t handle,
  598. uint32_t *sampleInterval,
  599. PS5000_TIME_UNITS sampleIntervalTimeUnits,
  600. uint32_t maxPreTriggerSamples,
  601. uint32_t maxPostPreTriggerSamples,
  602. int16_t autoStop,
  603. uint32_t downSampleRatio,
  604. uint32_t overviewBufferSize
  605. );
  606. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000GetStreamingLatestValues)
  607. (
  608. int16_t handle,
  609. ps5000StreamingReady lpPs5000Ready,
  610. void *pParameter
  611. );
  612. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000NoOfStreamingValues)
  613. (
  614. int16_t handle,
  615. uint32_t *noOfValues
  616. );
  617. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000GetMaxDownSampleRatio)
  618. (
  619. int16_t handle,
  620. uint32_t noOfUnaggreatedSamples,
  621. uint32_t *maxDownSampleRatio,
  622. int16_t downSampleRatioMode,
  623. uint16_t segmentIndex
  624. );
  625. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000GetValues)
  626. (
  627. int16_t handle,
  628. uint32_t startIndex,
  629. uint32_t *noOfSamples,
  630. uint32_t downSampleRatio,
  631. int16_t downSampleRatioMode,
  632. uint16_t segmentIndex,
  633. int16_t *overflow
  634. );
  635. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000GetValuesBulk)
  636. (
  637. int16_t handle,
  638. uint32_t *noOfSamples,
  639. uint16_t fromSegmentIndex,
  640. uint16_t toSegmentIndex,
  641. int16_t *overflow
  642. );
  643. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000GetValuesAsync)
  644. (
  645. int16_t handle,
  646. uint32_t startIndex,
  647. uint32_t noOfSamples,
  648. uint32_t downSampleRatio,
  649. int16_t downSampleRatioMode,
  650. uint16_t segmentIndex,
  651. void *lpDataReady,
  652. void *pParameter
  653. );
  654. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000Stop)
  655. (
  656. int16_t handle
  657. );
  658. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000PingUnit)
  659. (
  660. int16_t handle
  661. );
  662. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps5000SetNoOfCaptures)
  663. (
  664. int16_t handle,
  665. uint16_t nCaptures
  666. );
  667. #endif