ps4000Api.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979
  1. /****************************************************************************
  2. *
  3. * Filename: ps4000Api.h
  4. * Author: MAS
  5. * Description:
  6. *
  7. * This header defines the interface to driver routines for the
  8. * PicoScope 4000 Series PC Oscilloscopes.
  9. *
  10. * Copyright � 2008 - 2022 Pico Technology Ltd. All rights reserved.
  11. *
  12. ****************************************************************************/
  13. #ifndef __PS4000API_H__
  14. #define __PS4000API_H__
  15. #include <stdint.h>
  16. #include "PicoStatus.h"
  17. #ifdef __cplusplus
  18. #define PREF0 extern "C"
  19. #define TYPE_ENUM
  20. #else
  21. #define PREF0
  22. #define TYPE_ENUM enum
  23. #endif
  24. #ifdef WIN32
  25. typedef uint64_t uint64_t;
  26. #ifdef PREF1
  27. #undef PREF1
  28. #endif
  29. #ifdef PREF2
  30. #undef PREF2
  31. #endif
  32. #ifdef PREF3
  33. #undef PREF3
  34. #endif
  35. /* If you are dynamically linking ps4000.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. #else
  51. #ifdef DYNLINK
  52. #define PREF1 typedef
  53. #define PREF2
  54. #define PREF3(x) (*x)
  55. #else
  56. #ifdef _USRDLL
  57. #define PREF1 __attribute__((visibility("default")))
  58. #else
  59. #define PREF1
  60. #endif
  61. #define PREF2
  62. #define PREF3(x) x
  63. #endif
  64. #define __stdcall
  65. #endif
  66. #define PS4000_MAX_OVERSAMPLE_12BIT 16
  67. #define PS4000_MAX_OVERSAMPLE_8BIT 256
  68. /* Depending on the adc; oversample (collect multiple readings at each time) by up to 256.
  69. * the results are therefore ALWAYS scaled up to 16-bits, even if
  70. * oversampling is not used.
  71. *
  72. * The maximum and minimum values returned are therefore as follows:
  73. */
  74. #define PS4XXX_MAX_ETS_CYCLES 400
  75. #define PS4XXX_MAX_INTERLEAVE 80
  76. #define PS4262_MAX_VALUE 32767
  77. #define PS4262_MIN_VALUE -32767
  78. #define PS4000_MAX_VALUE 32764
  79. #define PS4000_MIN_VALUE -32764
  80. #define PS4000_LOST_DATA -32768
  81. #define PS4000_EXT_MAX_VALUE 32767
  82. #define PS4000_EXT_MIN_VALUE -32767
  83. #define MAX_PULSE_WIDTH_QUALIFIER_COUNT 16777215L
  84. #define MAX_DELAY_COUNT 8388607L
  85. #define MIN_SIG_GEN_FREQ 0.0f
  86. #define MAX_SIG_GEN_FREQ 100000.0f
  87. #define MAX_SIG_GEN_FREQ_4262 20000.0f
  88. // applicable to all variants with a signal generator
  89. #define MIN_SIG_GEN_BUFFER_SIZE 1
  90. // values relate to the PS4227 and PS4226
  91. #define MAX_SIG_GEN_BUFFER_SIZE 8192
  92. #define MIN_DWELL_COUNT 10
  93. #define PS4262_MAX_WAVEFORM_BUFFER_SIZE 4096
  94. #define PS4262_MIN_DWELL_COUNT 3
  95. #define MAX_SWEEPS_SHOTS ((1 << 30) - 1)
  96. typedef enum enChannelBufferIndex
  97. {
  98. PS4000_CHANNEL_A_MAX,
  99. PS4000_CHANNEL_A_MIN,
  100. PS4000_CHANNEL_B_MAX,
  101. PS4000_CHANNEL_B_MIN,
  102. PS4000_CHANNEL_C_MAX,
  103. PS4000_CHANNEL_C_MIN,
  104. PS4000_CHANNEL_D_MAX,
  105. PS4000_CHANNEL_D_MIN,
  106. PS4000_MAX_CHANNEL_BUFFERS
  107. } PS4000_CHANNEL_BUFFER_INDEX;
  108. typedef enum enPS4000Channel
  109. {
  110. PS4000_CHANNEL_A,
  111. PS4000_CHANNEL_B,
  112. PS4000_CHANNEL_C,
  113. PS4000_CHANNEL_D,
  114. PS4000_EXTERNAL,
  115. PS4000_MAX_CHANNELS = PS4000_EXTERNAL,
  116. PS4000_TRIGGER_AUX,
  117. PS4000_MAX_TRIGGER_SOURCES
  118. } PS4000_CHANNEL;
  119. typedef enum enPS4000Range
  120. {
  121. PS4000_10MV,
  122. PS4000_20MV,
  123. PS4000_50MV,
  124. PS4000_100MV,
  125. PS4000_200MV,
  126. PS4000_500MV,
  127. PS4000_1V,
  128. PS4000_2V,
  129. PS4000_5V,
  130. PS4000_10V,
  131. PS4000_20V,
  132. PS4000_50V,
  133. PS4000_100V,
  134. PS4000_MAX_RANGES,
  135. PS4000_RESISTANCE_100R = PS4000_MAX_RANGES,
  136. PS4000_RESISTANCE_1K,
  137. PS4000_RESISTANCE_10K,
  138. PS4000_RESISTANCE_100K,
  139. PS4000_RESISTANCE_1M,
  140. PS4000_MAX_RESISTANCES,
  141. PS4000_ACCELEROMETER_10MV = PS4000_MAX_RESISTANCES,
  142. PS4000_ACCELEROMETER_20MV,
  143. PS4000_ACCELEROMETER_50MV,
  144. PS4000_ACCELEROMETER_100MV,
  145. PS4000_ACCELEROMETER_200MV,
  146. PS4000_ACCELEROMETER_500MV,
  147. PS4000_ACCELEROMETER_1V,
  148. PS4000_ACCELEROMETER_2V,
  149. PS4000_ACCELEROMETER_5V,
  150. PS4000_ACCELEROMETER_10V,
  151. PS4000_ACCELEROMETER_20V,
  152. PS4000_ACCELEROMETER_50V,
  153. PS4000_ACCELEROMETER_100V,
  154. PS4000_MAX_ACCELEROMETER,
  155. PS4000_TEMPERATURE_UPTO_40 = PS4000_MAX_ACCELEROMETER,
  156. PS4000_TEMPERATURE_UPTO_70,
  157. PS4000_TEMPERATURE_UPTO_100,
  158. PS4000_TEMPERATURE_UPTO_130,
  159. PS4000_MAX_TEMPERATURES,
  160. PS4000_RESISTANCE_5K = PS4000_MAX_TEMPERATURES,
  161. PS4000_RESISTANCE_25K,
  162. PS4000_RESISTANCE_50K,
  163. PS4000_MAX_EXTRA_RESISTANCES
  164. } PS4000_RANGE;
  165. typedef enum enPS4000Probe
  166. {
  167. P_NONE,
  168. P_CURRENT_CLAMP_10A,
  169. P_CURRENT_CLAMP_1000A,
  170. P_TEMPERATURE_SENSOR,
  171. P_CURRENT_MEASURING_DEVICE,
  172. P_PRESSURE_SENSOR_50BAR,
  173. P_PRESSURE_SENSOR_5BAR,
  174. P_OPTICAL_SWITCH,
  175. P_UNKNOWN,
  176. P_MAX_PROBES = P_UNKNOWN
  177. } PS4000_PROBE;
  178. typedef enum enPS4000ChannelInfo
  179. {
  180. CI_RANGES,
  181. CI_RESISTANCES,
  182. CI_ACCELEROMETER,
  183. CI_PROBES,
  184. CI_TEMPERATURES
  185. } PS4000_CHANNEL_INFO;
  186. typedef enum enPS4000EtsMode
  187. {
  188. PS4000_ETS_OFF, // ETS disabled
  189. PS4000_ETS_FAST,
  190. PS4000_ETS_SLOW,
  191. PS4000_ETS_MODES_MAX
  192. } PS4000_ETS_MODE;
  193. typedef enum enPS4000TimeUnits
  194. {
  195. PS4000_FS,
  196. PS4000_PS,
  197. PS4000_NS,
  198. PS4000_US,
  199. PS4000_MS,
  200. PS4000_S,
  201. PS4000_MAX_TIME_UNITS,
  202. } PS4000_TIME_UNITS;
  203. typedef enum enSweepType
  204. {
  205. UP,
  206. DOWN,
  207. UPDOWN,
  208. DOWNUP,
  209. MAX_SWEEP_TYPES
  210. } SWEEP_TYPE;
  211. typedef enum enPS4000OperationTypes
  212. {
  213. PS4000_OP_NONE,
  214. PS4000_WHITENOISE,
  215. PS4000_PRBS
  216. } PS4000_OPERATION_TYPES;
  217. typedef enum enWaveType
  218. {
  219. PS4000_SINE,
  220. PS4000_SQUARE,
  221. PS4000_TRIANGLE,
  222. PS4000_RAMP_UP,
  223. PS4000_RAMP_DOWN,
  224. PS4000_SINC,
  225. PS4000_GAUSSIAN,
  226. PS4000_HALF_SINE,
  227. PS4000_DC_VOLTAGE,
  228. PS4000_WHITE_NOISE,
  229. MAX_WAVE_TYPES
  230. } WAVE_TYPE;
  231. typedef enum enSigGenTrigType
  232. {
  233. SIGGEN_RISING,
  234. SIGGEN_FALLING,
  235. SIGGEN_GATE_HIGH,
  236. SIGGEN_GATE_LOW
  237. } SIGGEN_TRIG_TYPE;
  238. typedef enum enSigGenTrigSource
  239. {
  240. SIGGEN_NONE,
  241. SIGGEN_SCOPE_TRIG,
  242. SIGGEN_AUX_IN,
  243. SIGGEN_EXT_IN,
  244. SIGGEN_SOFT_TRIG
  245. } SIGGEN_TRIG_SOURCE;
  246. typedef enum enIndexMode
  247. {
  248. SINGLE,
  249. DUAL,
  250. QUAD,
  251. MAX_INDEX_MODES
  252. } INDEX_MODE;
  253. typedef enum enThresholdMode
  254. {
  255. LEVEL,
  256. WINDOW
  257. } THRESHOLD_MODE;
  258. typedef enum enThresholdDirection
  259. {
  260. ABOVE, //using upper threshold
  261. BELOW,
  262. RISING, // using upper threshold
  263. FALLING, // using upper threshold
  264. RISING_OR_FALLING, // using both threshold
  265. ABOVE_LOWER, // using lower threshold
  266. BELOW_LOWER, // using lower threshold
  267. RISING_LOWER, // using lower threshold
  268. FALLING_LOWER, // using lower threshold
  269. // Windowing using both thresholds
  270. INSIDE = ABOVE,
  271. OUTSIDE = BELOW,
  272. ENTER = RISING,
  273. EXIT = FALLING,
  274. ENTER_OR_EXIT = RISING_OR_FALLING,
  275. POSITIVE_RUNT = 9,
  276. NEGATIVE_RUNT,
  277. // no trigger set
  278. NONE = RISING
  279. } THRESHOLD_DIRECTION;
  280. typedef enum enTriggerState
  281. {
  282. CONDITION_DONT_CARE,
  283. CONDITION_TRUE,
  284. CONDITION_FALSE,
  285. CONDITION_MAX
  286. } TRIGGER_STATE;
  287. #pragma pack(1)
  288. typedef struct tTriggerConditions
  289. {
  290. TRIGGER_STATE channelA;
  291. TRIGGER_STATE channelB;
  292. TRIGGER_STATE channelC;
  293. TRIGGER_STATE channelD;
  294. TRIGGER_STATE external;
  295. TRIGGER_STATE aux;
  296. TRIGGER_STATE pulseWidthQualifier;
  297. } TRIGGER_CONDITIONS;
  298. #pragma pack()
  299. #pragma pack(1)
  300. typedef struct tPwqConditions
  301. {
  302. TRIGGER_STATE channelA;
  303. TRIGGER_STATE channelB;
  304. TRIGGER_STATE channelC;
  305. TRIGGER_STATE channelD;
  306. TRIGGER_STATE external;
  307. TRIGGER_STATE aux;
  308. } PWQ_CONDITIONS;
  309. #pragma pack()
  310. #pragma pack(1)
  311. typedef struct tTriggerChannelProperties
  312. {
  313. int16_t thresholdUpper;
  314. uint16_t thresholdUpperHysteresis;
  315. int16_t thresholdLower;
  316. uint16_t thresholdLowerHysteresis;
  317. PS4000_CHANNEL channel;
  318. THRESHOLD_MODE thresholdMode;
  319. } TRIGGER_CHANNEL_PROPERTIES;
  320. #pragma pack()
  321. typedef enum enRatioMode
  322. {
  323. RATIO_MODE_NONE,
  324. RATIO_MODE_AGGREGATE = 1,
  325. RATIO_MODE_AVERAGE = 2
  326. } RATIO_MODE;
  327. typedef enum enPulseWidthType
  328. {
  329. PW_TYPE_NONE,
  330. PW_TYPE_LESS_THAN,
  331. PW_TYPE_GREATER_THAN,
  332. PW_TYPE_IN_RANGE,
  333. PW_TYPE_OUT_OF_RANGE
  334. } PULSE_WIDTH_TYPE;
  335. typedef enum enPs4000HoldOffType
  336. {
  337. PS4000_TIME,
  338. PS4000_MAX_HOLDOFF_TYPE
  339. } PS4000_HOLDOFF_TYPE;
  340. typedef enum enPS4000FrequencyCounterRange
  341. {
  342. FC_2K,
  343. FC_20K,
  344. FC_20,
  345. FC_200,
  346. FC_MAX
  347. }PS4000_FREQUENCY_COUNTER_RANGE;
  348. typedef void (__stdcall *ps4000BlockReady)
  349. (
  350. int16_t handle,
  351. PICO_STATUS status,
  352. void *pParameter
  353. );
  354. typedef void (__stdcall *ps4000StreamingReady)
  355. (
  356. int16_t handle,
  357. int32_t noOfSamples,
  358. uint32_t startIndex,
  359. int16_t overflow,
  360. uint32_t triggerAt,
  361. int16_t triggered,
  362. int16_t autoStop,
  363. void *pParameter
  364. );
  365. typedef void (__stdcall *ps4000DataReady)
  366. (
  367. int16_t handle,
  368. int32_t noOfSamples,
  369. int16_t overflow,
  370. uint32_t triggerAt,
  371. int16_t triggered,
  372. void *pParameter
  373. );
  374. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000OpenUnit)
  375. (
  376. int16_t *handle
  377. );
  378. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000OpenUnitAsync)
  379. (
  380. int16_t *status
  381. );
  382. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000OpenUnitEx)
  383. (
  384. int16_t *handle,
  385. int8_t *serial
  386. );
  387. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000OpenUnitAsyncEx)
  388. (
  389. int16_t *status,
  390. int8_t *serial
  391. );
  392. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000OpenUnitProgress)
  393. (
  394. int16_t *handle,
  395. int16_t *progressPercent,
  396. int16_t *complete
  397. );
  398. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetUnitInfo)
  399. (
  400. int16_t handle,
  401. int8_t *string,
  402. int16_t stringLength,
  403. int16_t *requiredSize,
  404. PICO_INFO info
  405. );
  406. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000FlashLed)
  407. (
  408. int16_t handle,
  409. int16_t start
  410. );
  411. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000IsLedFlashing)
  412. (
  413. int16_t handle,
  414. int16_t *status
  415. );
  416. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000CloseUnit)
  417. (
  418. int16_t handle
  419. );
  420. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000MemorySegments)
  421. (
  422. int16_t handle,
  423. uint16_t nSegments,
  424. int32_t *nMaxSamples
  425. );
  426. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetChannel)
  427. (
  428. int16_t handle,
  429. PS4000_CHANNEL channel,
  430. int16_t enabled,
  431. int16_t dc,
  432. PS4000_RANGE range
  433. );
  434. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetNoOfCaptures)
  435. (
  436. int16_t handle,
  437. uint16_t nCaptures
  438. );
  439. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetTimebase)
  440. (
  441. int16_t handle,
  442. uint32_t timebase,
  443. int32_t noSamples,
  444. int32_t *timeIntervalNanoseconds,
  445. int16_t oversample,
  446. int32_t *maxSamples,
  447. uint16_t segmentIndex
  448. );
  449. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetTimebase2)
  450. (
  451. int16_t handle,
  452. uint32_t timebase,
  453. int32_t noSamples,
  454. float *timeIntervalNanoseconds,
  455. int16_t oversample,
  456. int32_t *maxSamples,
  457. uint16_t segmentIndex
  458. );
  459. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SigGenOff)
  460. (
  461. int16_t handle
  462. );
  463. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetSigGenArbitrary)
  464. (
  465. int16_t handle,
  466. int32_t offsetVoltage,
  467. uint32_t pkToPk,
  468. uint32_t startDeltaPhase,
  469. uint32_t stopDeltaPhase,
  470. uint32_t deltaPhaseIncrement,
  471. uint32_t dwellCount,
  472. int16_t *arbitraryWaveform,
  473. int32_t arbitraryWaveformSize,
  474. SWEEP_TYPE sweepType,
  475. int16_t operationType,
  476. INDEX_MODE indexMode,
  477. uint32_t shots,
  478. uint32_t sweeps,
  479. SIGGEN_TRIG_TYPE triggerType,
  480. SIGGEN_TRIG_SOURCE triggerSource,
  481. int16_t extInThreshold
  482. );
  483. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000SetSigGenBuiltIn)
  484. (
  485. int16_t handle,
  486. int32_t offsetVoltage,
  487. uint32_t pkToPk,
  488. int16_t waveType,
  489. float startFrequency,
  490. float stopFrequency,
  491. float increment,
  492. float dwellTime,
  493. SWEEP_TYPE sweepType,
  494. int16_t operationType,
  495. uint32_t shots,
  496. uint32_t sweeps,
  497. SIGGEN_TRIG_TYPE triggerType,
  498. SIGGEN_TRIG_SOURCE triggerSource,
  499. int16_t extInThreshold
  500. );
  501. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000SigGenFrequencyToPhase)
  502. (
  503. int16_t handle,
  504. double frequency,
  505. INDEX_MODE indexMode,
  506. uint32_t bufferLength,
  507. uint32_t * phase
  508. );
  509. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000SigGenArbitraryMinMaxValues)
  510. (
  511. int16_t handle,
  512. int16_t * minArbitraryWaveformValue,
  513. int16_t * maxArbitraryWaveformValue,
  514. uint32_t * minArbitraryWaveformSize,
  515. uint32_t * maxArbitraryWaveformSize
  516. );
  517. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SigGenSoftwareControl)
  518. (
  519. int16_t handle,
  520. int16_t state
  521. );
  522. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetEts)
  523. (
  524. int16_t handle,
  525. PS4000_ETS_MODE mode,
  526. int16_t etsCycles,
  527. int16_t etsInterleave,
  528. int32_t *sampleTimePicoseconds
  529. );
  530. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetSimpleTrigger)
  531. (
  532. int16_t handle,
  533. int16_t enable,
  534. PS4000_CHANNEL source,
  535. int16_t threshold,
  536. THRESHOLD_DIRECTION direction,
  537. uint32_t delay,
  538. int16_t autoTrigger_ms
  539. );
  540. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetTriggerChannelProperties)
  541. (
  542. int16_t handle,
  543. TRIGGER_CHANNEL_PROPERTIES *channelProperties,
  544. int16_t nChannelProperties,
  545. int16_t auxOutputEnable,
  546. int32_t autoTriggerMilliseconds
  547. );
  548. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetExtTriggerRange)
  549. (
  550. int16_t handle,
  551. PS4000_RANGE extRange
  552. );
  553. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetTriggerChannelConditions)
  554. (
  555. int16_t handle,
  556. TRIGGER_CONDITIONS *conditions,
  557. int16_t nConditions
  558. );
  559. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetTriggerChannelDirections)
  560. (
  561. int16_t handle,
  562. THRESHOLD_DIRECTION channelA,
  563. THRESHOLD_DIRECTION channelB,
  564. THRESHOLD_DIRECTION channelC,
  565. THRESHOLD_DIRECTION channelD,
  566. THRESHOLD_DIRECTION ext,
  567. THRESHOLD_DIRECTION aux
  568. );
  569. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetTriggerDelay)
  570. (
  571. int16_t handle,
  572. uint32_t delay
  573. );
  574. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetPulseWidthQualifier)
  575. (
  576. int16_t handle,
  577. PWQ_CONDITIONS *conditions,
  578. int16_t nConditions,
  579. THRESHOLD_DIRECTION direction,
  580. uint32_t lower,
  581. uint32_t upper,
  582. PULSE_WIDTH_TYPE type
  583. );
  584. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000IsTriggerOrPulseWidthQualifierEnabled)
  585. (
  586. int16_t handle,
  587. int16_t *triggerEnabled,
  588. int16_t *pulseWidthQualifierEnabled
  589. );
  590. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetTriggerTimeOffset)
  591. (
  592. int16_t handle,
  593. uint32_t *timeUpper,
  594. uint32_t *timeLower,
  595. PS4000_TIME_UNITS *timeUnits,
  596. uint16_t segmentIndex
  597. );
  598. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetTriggerChannelTimeOffset)
  599. (
  600. int16_t handle,
  601. uint32_t *timeUpper,
  602. uint32_t *timeLower,
  603. PS4000_TIME_UNITS *timeUnits,
  604. uint16_t segmentIndex,
  605. PS4000_CHANNEL channel
  606. );
  607. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetTriggerTimeOffset64)
  608. (
  609. int16_t handle,
  610. int64_t *time,
  611. PS4000_TIME_UNITS *timeUnits,
  612. uint16_t segmentIndex
  613. );
  614. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetTriggerChannelTimeOffset64)
  615. (
  616. int16_t handle,
  617. int64_t *time,
  618. PS4000_TIME_UNITS *timeUnits,
  619. uint16_t segmentIndex,
  620. PS4000_CHANNEL channel
  621. );
  622. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetValuesTriggerTimeOffsetBulk)
  623. (
  624. int16_t handle,
  625. uint32_t *timesUpper,
  626. uint32_t *timesLower,
  627. PS4000_TIME_UNITS *timeUnits,
  628. uint16_t fromSegmentIndex,
  629. uint16_t toSegmentIndex
  630. );
  631. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetValuesTriggerChannelTimeOffsetBulk)
  632. (
  633. int16_t handle,
  634. uint32_t *timesUpper,
  635. uint32_t *timesLower,
  636. PS4000_TIME_UNITS *timeUnits,
  637. uint16_t fromSegmentIndex,
  638. uint16_t toSegmentIndex,
  639. PS4000_CHANNEL channel
  640. );
  641. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetValuesTriggerTimeOffsetBulk64)
  642. (
  643. int16_t handle,
  644. int64_t *times,
  645. PS4000_TIME_UNITS *timeUnits,
  646. uint16_t fromSegmentIndex,
  647. uint16_t toSegmentIndex
  648. );
  649. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetValuesTriggerChannelTimeOffsetBulk64)
  650. (
  651. int16_t handle,
  652. int64_t *times,
  653. PS4000_TIME_UNITS *timeUnits,
  654. uint16_t fromSegmentIndex,
  655. uint16_t toSegmentIndex,
  656. PS4000_CHANNEL channel
  657. );
  658. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetDataBufferBulk)
  659. (
  660. int16_t handle,
  661. PS4000_CHANNEL channel,
  662. int16_t *buffer,
  663. int32_t bufferLth,
  664. uint16_t waveform
  665. );
  666. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetDataBuffers)
  667. (
  668. int16_t handle,
  669. PS4000_CHANNEL channel,
  670. int16_t *bufferMax,
  671. int16_t *bufferMin,
  672. int32_t bufferLth
  673. );
  674. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetDataBufferWithMode)
  675. (
  676. int16_t handle,
  677. PS4000_CHANNEL channel,
  678. int16_t *buffer,
  679. int32_t bufferLth,
  680. RATIO_MODE mode
  681. );
  682. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetDataBuffersWithMode)
  683. (
  684. int16_t handle,
  685. PS4000_CHANNEL channel,
  686. int16_t *bufferMax,
  687. int16_t *bufferMin,
  688. int32_t bufferLth,
  689. RATIO_MODE mode
  690. );
  691. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetDataBuffer)
  692. (
  693. int16_t handle,
  694. PS4000_CHANNEL channel,
  695. int16_t *buffer,
  696. int32_t bufferLth
  697. );
  698. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetEtsTimeBuffer)
  699. (
  700. int16_t handle,
  701. int64_t *buffer,
  702. int32_t bufferLth
  703. );
  704. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetEtsTimeBuffers)
  705. (
  706. int16_t handle,
  707. uint32_t *timeUpper,
  708. uint32_t *timeLower,
  709. int32_t bufferLth
  710. );
  711. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000RunBlock)
  712. (
  713. int16_t handle,
  714. int32_t noOfPreTriggerSamples,
  715. int32_t noOfPostTriggerSamples,
  716. uint32_t timebase,
  717. int16_t oversample,
  718. int32_t *timeIndisposedMs,
  719. uint16_t segmentIndex,
  720. ps4000BlockReady lpReady,
  721. void *pParameter
  722. );
  723. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000RunStreaming)
  724. (
  725. int16_t handle,
  726. uint32_t *sampleInterval,
  727. PS4000_TIME_UNITS sampleIntervalTimeUnits,
  728. uint32_t maxPreTriggerSamples,
  729. uint32_t maxPostPreTriggerSamples,
  730. int16_t autoStop,
  731. uint32_t downSampleRatio,
  732. uint32_t overviewBufferSize
  733. );
  734. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000RunStreamingEx)
  735. (
  736. int16_t handle,
  737. uint32_t *sampleInterval,
  738. PS4000_TIME_UNITS sampleIntervalTimeUnits,
  739. uint32_t maxPreTriggerSamples,
  740. uint32_t maxPostPreTriggerSamples,
  741. int16_t autoStop,
  742. uint32_t downSampleRatio,
  743. int16_t downSampleRatioMode,
  744. uint32_t overviewBufferSize
  745. );
  746. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000IsReady)
  747. (
  748. int16_t handle,
  749. int16_t * ready
  750. );
  751. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetStreamingLatestValues)
  752. (
  753. int16_t handle,
  754. ps4000StreamingReady lpPs4000Ready,
  755. void *pParameter
  756. );
  757. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000NoOfStreamingValues)
  758. (
  759. int16_t handle,
  760. uint32_t *noOfValues
  761. );
  762. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetMaxDownSampleRatio)
  763. (
  764. int16_t handle,
  765. uint32_t noOfUnaggreatedSamples,
  766. uint32_t *maxDownSampleRatio,
  767. int16_t downSampleRatioMode,
  768. uint16_t segmentIndex
  769. );
  770. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetValues)
  771. (
  772. int16_t handle,
  773. uint32_t startIndex,
  774. uint32_t *noOfSamples,
  775. uint32_t downSampleRatio,
  776. int16_t downSampleRatioMode,
  777. uint16_t segmentIndex,
  778. int16_t *overflow
  779. );
  780. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetValuesBulk)
  781. (
  782. int16_t handle,
  783. uint32_t *noOfSamples,
  784. uint16_t fromSegmentIndex,
  785. uint16_t toSegmentIndex,
  786. int16_t *overflow
  787. );
  788. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetValuesAsync)
  789. (
  790. int16_t handle,
  791. uint32_t startIndex,
  792. uint32_t noOfSamples,
  793. uint32_t downSampleRatio,
  794. int16_t downSampleRatioMode,
  795. uint16_t segmentIndex,
  796. void *lpDataReady,
  797. void *pParameter
  798. );
  799. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000Stop)
  800. (
  801. int16_t handle
  802. );
  803. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetProbe)
  804. (
  805. int16_t handle,
  806. PS4000_PROBE probe,
  807. PS4000_RANGE range
  808. );
  809. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000HoldOff)
  810. (
  811. int16_t handle,
  812. uint64_t holdoff,
  813. PS4000_HOLDOFF_TYPE type
  814. );
  815. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetProbe)
  816. (
  817. int16_t handle,
  818. PS4000_PROBE *probe
  819. );
  820. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetChannelInformation)
  821. (
  822. int16_t handle,
  823. PS4000_CHANNEL_INFO info,
  824. int32_t probe,
  825. int32_t *ranges,
  826. int32_t *length,
  827. int32_t channels
  828. );
  829. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetFrequencyCounter)
  830. (
  831. int16_t handle,
  832. PS4000_CHANNEL channel,
  833. int16_t enabled,
  834. PS4000_FREQUENCY_COUNTER_RANGE range,
  835. int16_t thresholdMajor,
  836. int16_t thresholdMinor
  837. );
  838. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000EnumerateUnits)
  839. (
  840. int16_t *count,
  841. int8_t *serials,
  842. int16_t *serialLth
  843. );
  844. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000PingUnit)
  845. (
  846. int16_t handle
  847. );
  848. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000SetBwFilter)
  849. (
  850. int16_t handle,
  851. PS4000_CHANNEL channel,
  852. int16_t enable
  853. );
  854. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000TriggerWithinPreTriggerSamples)
  855. (
  856. int16_t handle,
  857. int16_t state
  858. );
  859. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000GetNoOfCaptures)
  860. (
  861. int16_t handle,
  862. uint16_t *nCaptures
  863. );
  864. #endif