ps4000aApi.h 31 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286
  1. /****************************************************************************
  2. *
  3. * Filename: ps4000aApi.h
  4. * Author: MAS
  5. * Description:
  6. *
  7. * This header defines the interface to driver routines for the
  8. * PicoScope 4444 and 4824 PC Oscilloscopes.
  9. *
  10. * Copyright � 2013 - 2022 Pico Technology Ltd. All rights reserved.
  11. *
  12. ****************************************************************************/
  13. #ifndef __PS4000AAPI_H__
  14. #define __PS4000AAPI_H__
  15. #include <stdint.h>
  16. #include "PicoStatus.h"
  17. #include "../inc/PicoCallback.h"
  18. #include "../inc/PicoConnectProbes.h"
  19. #include "../inc/PicoVersion.h"
  20. #ifdef PREF0
  21. #undef PREF0
  22. #endif
  23. #ifdef PREF1
  24. #undef PREF1
  25. #endif
  26. #ifdef PREF2
  27. #undef PREF2
  28. #endif
  29. #ifdef PREF3
  30. #undef PREF3
  31. #endif
  32. #ifdef __cplusplus
  33. #define PREF0 extern "C"
  34. #else
  35. #define PREF0
  36. #endif
  37. #ifdef WIN32
  38. /* If you are dynamically linking ps4000a.dll into your project #define DYNLINK here
  39. */
  40. #ifdef DYNLINK
  41. #define PREF1 typedef
  42. #define PREF2
  43. #define PREF3(x) (__stdcall *x)
  44. #else
  45. #define PREF1
  46. #ifdef _USRDLL
  47. #define PREF2 __declspec(dllexport) __stdcall
  48. #else
  49. #define PREF2 __declspec(dllimport) __stdcall
  50. #endif
  51. #define PREF3(x) x
  52. #endif
  53. #define PREF4 __stdcall
  54. #else
  55. /* Define a 64-bit integer type */
  56. #ifdef DYNLINK
  57. #define PREF1 typedef
  58. #define PREF2
  59. #define PREF3(x) (*x)
  60. #else
  61. #ifdef _USRDLL
  62. #define PREF1 __attribute__((visibility("default")))
  63. #else
  64. #define PREF1
  65. #endif
  66. #define PREF2
  67. #define PREF3(x) x
  68. #endif
  69. #define PREF4
  70. #endif
  71. #define PS4000A_EXT_MAX_VALUE 32767
  72. #define PS4000A_EXT_MIN_VALUE -32767
  73. #define MAX_PULSE_WIDTH_QUALIFIER_COUNT 16777215L
  74. #define MAX_DELAY_COUNT 8388607L
  75. #define PS4000A_MAX_SIG_GEN_BUFFER_SIZE 16384
  76. #define PS4000A_MIN_SIG_GEN_BUFFER_SIZE 10
  77. #define PS4000A_MIN_DWELL_COUNT 10
  78. #define PS4000A_MAX_SWEEPS_SHOTS ((1 << 30) - 1)
  79. #define PS4000A_AWG_DAC_FREQUENCY 80e6
  80. #define PS4000A_AWG_PHASE_ACCUMULATOR 4294967296.0
  81. #define PS4000A_MAX_ANALOGUE_OFFSET_50MV_200MV 0.250f
  82. #define PS4000A_MIN_ANALOGUE_OFFSET_50MV_200MV -0.250f
  83. #define PS4000A_MAX_ANALOGUE_OFFSET_500MV_2V 2.500f
  84. #define PS4000A_MIN_ANALOGUE_OFFSET_500MV_2V -2.500f
  85. #define PS4000A_MAX_ANALOGUE_OFFSET_5V_20V 20.f
  86. #define PS4000A_MIN_ANALOGUE_OFFSET_5V_20V -20.f
  87. #define PS4000A_MAX_ANALOGUE_OFFSET_10V_50V 25.f
  88. #define PS4000A_MIN_ANALOGUE_OFFSET_10V_50V -25.f
  89. typedef enum enPS4000ADeviceResolution
  90. {
  91. PS4000A_DR_8BIT,
  92. PS4000A_DR_12BIT,
  93. PS4000A_DR_14BIT,
  94. PS4000A_DR_15BIT,
  95. PS4000A_DR_16BIT,
  96. } PS4000A_DEVICE_RESOLUTION;
  97. typedef enum enPS4000AExtraOperations
  98. {
  99. PS4000A_ES_OFF,
  100. PS4000A_WHITENOISE,
  101. PS4000A_PRBS // Pseudo-Random Bit Stream
  102. } PS4000A_EXTRA_OPERATIONS;
  103. typedef enum enPS4000ABandwidthLimiterFlags
  104. {
  105. PS4000A_BW_FULL_FLAG = (1 << 0),
  106. PS4000A_BW_20KHZ_FLAG = (1 << 1),
  107. PS4000A_BW_100KHZ_FLAG = (1 << 2), //( default when current clamp detected: can be changed)
  108. PS4000A_BW_1MHZ_FLAG = (1 << 3) //( default for 14 bits: can be changed)
  109. } PS4000A_BANDWIDTH_LIMITER_FLAGS;
  110. typedef enum enPS4000ABandwidthLimiter
  111. {
  112. PS4000A_BW_FULL,
  113. PS4000A_BW_20KHZ,
  114. PS4000A_BW_100KHZ, //( default when current clamp detected: can be changed)
  115. PS4000A_BW_1MHZ
  116. } PS4000A_BANDWIDTH_LIMITER;
  117. typedef enum enPS4000ACoupling
  118. {
  119. PS4000A_AC,
  120. PS4000A_DC
  121. } PS4000A_COUPLING;
  122. typedef enum enPS4000AChannel
  123. {
  124. PS4000A_CHANNEL_A,
  125. PS4000A_CHANNEL_B,
  126. PS4000A_CHANNEL_C,
  127. PS4000A_CHANNEL_D,
  128. PS4000A_MAX_4_CHANNELS,
  129. PS4000A_CHANNEL_E = PS4000A_MAX_4_CHANNELS,
  130. PS4000A_CHANNEL_F,
  131. PS4000A_CHANNEL_G,
  132. PS4000A_CHANNEL_H,
  133. PS4000A_EXTERNAL,
  134. PS4000A_MAX_CHANNELS = PS4000A_EXTERNAL,
  135. PS4000A_TRIGGER_AUX,
  136. PS4000A_MAX_TRIGGER_SOURCES,
  137. PS4000A_PULSE_WIDTH_SOURCE = 0x10000000
  138. } PS4000A_CHANNEL;
  139. typedef enum enPS4000AChannelBufferIndex
  140. {
  141. PS4000A_CHANNEL_A_MAX,
  142. PS4000A_CHANNEL_A_MIN,
  143. PS4000A_CHANNEL_B_MAX,
  144. PS4000A_CHANNEL_B_MIN,
  145. PS4000A_CHANNEL_C_MAX,
  146. PS4000A_CHANNEL_C_MIN,
  147. PS4000A_CHANNEL_D_MAX,
  148. PS4000A_CHANNEL_D_MIN,
  149. PS4000A_CHANNEL_E_MAX,
  150. PS4000A_CHANNEL_E_MIN,
  151. PS4000A_CHANNEL_F_MAX,
  152. PS4000A_CHANNEL_F_MIN,
  153. PS4000A_CHANNEL_G_MAX,
  154. PS4000A_CHANNEL_G_MIN,
  155. PS4000A_CHANNEL_H_MAX,
  156. PS4000A_CHANNEL_H_MIN,
  157. PS4000A_MAX_CHANNEL_BUFFERS
  158. } PS4000A_CHANNEL_BUFFER_INDEX;
  159. typedef enum enPS4000ARange
  160. {
  161. PS4000A_10MV,
  162. PS4000A_20MV,
  163. PS4000A_50MV,
  164. PS4000A_100MV,
  165. PS4000A_200MV,
  166. PS4000A_500MV,
  167. PS4000A_1V,
  168. PS4000A_2V,
  169. PS4000A_5V,
  170. PS4000A_10V,
  171. PS4000A_20V,
  172. PS4000A_50V,
  173. PS4000A_100V,
  174. PS4000A_200V,
  175. PS4000A_MAX_RANGES
  176. } PS4000A_RANGE;
  177. typedef enum enPS4000AResistanceRange
  178. {
  179. PS4000A_RESISTANCE_315K = 0x00000200,
  180. PS4000A_RESISTANCE_1100K,
  181. PS4000A_RESISTANCE_10M,
  182. PS4000A_MAX_RESISTANCE_RANGES = (PS4000A_RESISTANCE_10M + 1) - PS4000A_RESISTANCE_315K,
  183. PS4000A_RESISTANCE_ADCV = 0x10000000
  184. } PS4000A_RESISTANCE_RANGE;
  185. typedef enum enPS4000AEtsMode
  186. {
  187. PS4000A_ETS_OFF, // ETS disabled
  188. PS4000A_ETS_FAST, // Return ready as soon as requested no of interleaves is available
  189. PS4000A_ETS_SLOW, // Return ready every time a new set of no_of_cycles is collected
  190. PS4000A_ETS_MODES_MAX
  191. } PS4000A_ETS_MODE;
  192. typedef enum enPS4000ATimeUnits
  193. {
  194. PS4000A_FS,
  195. PS4000A_PS,
  196. PS4000A_NS,
  197. PS4000A_US,
  198. PS4000A_MS,
  199. PS4000A_S,
  200. PS4000A_MAX_TIME_UNITS,
  201. } PS4000A_TIME_UNITS;
  202. typedef enum enPS4000ASweepType
  203. {
  204. PS4000A_UP,
  205. PS4000A_DOWN,
  206. PS4000A_UPDOWN,
  207. PS4000A_DOWNUP,
  208. PS4000A_MAX_SWEEP_TYPES
  209. } PS4000A_SWEEP_TYPE;
  210. typedef enum enPS4000AWaveType
  211. {
  212. PS4000A_SINE,
  213. PS4000A_SQUARE,
  214. PS4000A_TRIANGLE,
  215. PS4000A_RAMP_UP,
  216. PS4000A_RAMP_DOWN,
  217. PS4000A_SINC,
  218. PS4000A_GAUSSIAN,
  219. PS4000A_HALF_SINE,
  220. PS4000A_DC_VOLTAGE,
  221. PS4000A_WHITE_NOISE,
  222. PS4000A_MAX_WAVE_TYPES
  223. } PS4000A_WAVE_TYPE;
  224. typedef enum enPS4000APinStates
  225. {
  226. PS4000A_CAL_PINS_OFF,
  227. PS4000A_GND_SIGNAL,
  228. PS4000A_SIGNAL_SIGNAL
  229. } PS4000A_PIN_STATES;
  230. #define PS4000A_SINE_MAX_FREQUENCY 1000000.f
  231. #define PS4000A_SQUARE_MAX_FREQUENCY 1000000.f
  232. #define PS4000A_TRIANGLE_MAX_FREQUENCY 1000000.f
  233. #define PS4000A_SINC_MAX_FREQUENCY 1000000.f
  234. #define PS4000A_RAMP_MAX_FREQUENCY 1000000.f
  235. #define PS4000A_HALF_SINE_MAX_FREQUENCY 1000000.f
  236. #define PS4000A_GAUSSIAN_MAX_FREQUENCY 1000000.f
  237. #define PS4000A_MIN_FREQUENCY 0.03f
  238. typedef enum enPS4000AChannelLed
  239. {
  240. PS4000A_CHANNEL_LED_OFF,
  241. PS4000A_CHANNEL_LED_RED,
  242. PS4000A_CHANNEL_LED_GREEN
  243. } PS4000A_CHANNEL_LED;
  244. typedef enum enPS4000AProbeLedPosition
  245. {
  246. PS4000A_UPPER_LEFT_LED = 1,
  247. PS4000A_LOWER_LEFT_LED = 2,
  248. PS4000A_UPPER_RIGHT_LED = 4,
  249. PS4000A_LOWER_RIGHT_LED = 8,
  250. PS4000A_RIGHT_LEDS = PS4000A_UPPER_RIGHT_LED | PS4000A_LOWER_RIGHT_LED,
  251. PS4000A_LEFT_LEDS = PS4000A_UPPER_LEFT_LED | PS4000A_LOWER_LEFT_LED,
  252. PS4000A_UPPER_LEDS = PS4000A_UPPER_RIGHT_LED | PS4000A_UPPER_LEFT_LED,
  253. PS4000A_LOWER_LEDS = PS4000A_LOWER_RIGHT_LED | PS4000A_LOWER_LEFT_LED,
  254. PS4000A_ALL_LEDS = PS4000A_UPPER_LEFT_LED | PS4000A_LOWER_LEFT_LED | PS4000A_UPPER_RIGHT_LED | PS4000A_LOWER_RIGHT_LED
  255. } PS4000A_PROBE_LED_POSITION;
  256. typedef enum enPS4000AMetaType
  257. {
  258. PS4000A_MT_UNIT_INFO,
  259. PS4000A_MT_DEVICE_CAPABILITY,
  260. PS4000A_MT_DEVICE_SETTINGS,
  261. PS4000A_MT_SIGNAL_GENERATOR_SETTINGS
  262. } PS4000A_META_TYPE;
  263. typedef enum enPS4000AMetaOperation
  264. {
  265. PS4000A_MO_READ,
  266. PS4000A_MO_WRITE
  267. } PS4000A_META_OPERATION;
  268. typedef enum enPS4000AMetaFormat
  269. {
  270. PS4000A_MF_COMMA_SEPARATED,
  271. PS4000A_MF_XML
  272. } PS4000A_META_FORMAT;
  273. typedef enum enPS4000ASigGenTrigType
  274. {
  275. PS4000A_SIGGEN_RISING,
  276. PS4000A_SIGGEN_FALLING,
  277. PS4000A_SIGGEN_GATE_HIGH,
  278. PS4000A_SIGGEN_GATE_LOW
  279. } PS4000A_SIGGEN_TRIG_TYPE;
  280. typedef enum enPS4000ASigGenTrigSource
  281. {
  282. PS4000A_SIGGEN_NONE,
  283. PS4000A_SIGGEN_SCOPE_TRIG,
  284. PS4000A_SIGGEN_AUX_IN,
  285. PS4000A_SIGGEN_EXT_IN,
  286. PS4000A_SIGGEN_SOFT_TRIG
  287. } PS4000A_SIGGEN_TRIG_SOURCE;
  288. typedef enum enPS4000AIndexMode
  289. {
  290. PS4000A_SINGLE,
  291. PS4000A_DUAL,
  292. PS4000A_QUAD,
  293. PS4000A_MAX_INDEX_MODES
  294. } PS4000A_INDEX_MODE;
  295. typedef enum enPS4000AThresholdMode
  296. {
  297. PS4000A_LEVEL,
  298. PS4000A_WINDOW
  299. } PS4000A_THRESHOLD_MODE;
  300. typedef enum enPS4000AThresholdDirection
  301. {
  302. PS4000A_ABOVE, //using upper threshold
  303. PS4000A_BELOW, //using upper threshold
  304. PS4000A_RISING, // using upper threshold
  305. PS4000A_FALLING, // using upper threshold
  306. PS4000A_RISING_OR_FALLING, // using both threshold
  307. PS4000A_ABOVE_LOWER, // using lower threshold
  308. PS4000A_BELOW_LOWER, // using lower threshold
  309. PS4000A_RISING_LOWER, // using lower threshold
  310. PS4000A_FALLING_LOWER, // using lower threshold
  311. // Windowing using both thresholds
  312. PS4000A_INSIDE = PS4000A_ABOVE,
  313. PS4000A_OUTSIDE = PS4000A_BELOW,
  314. PS4000A_ENTER = PS4000A_RISING,
  315. PS4000A_EXIT = PS4000A_FALLING,
  316. PS4000A_ENTER_OR_EXIT = PS4000A_RISING_OR_FALLING,
  317. PS4000A_POSITIVE_RUNT = 9,
  318. PS4000A_NEGATIVE_RUNT,
  319. // no trigger set
  320. PS4000A_NONE = PS4000A_RISING
  321. } PS4000A_THRESHOLD_DIRECTION;
  322. typedef enum enPS4000ATriggerState
  323. {
  324. PS4000A_CONDITION_DONT_CARE,
  325. PS4000A_CONDITION_TRUE,
  326. PS4000A_CONDITION_FALSE,
  327. PS4000A_CONDITION_MAX
  328. } PS4000A_TRIGGER_STATE;
  329. typedef enum enPS4000ASensorState
  330. {
  331. PS4000A_CONNECT_STATE_FLOATING,
  332. PS4000A_SENSOR_STATE_CONNECTED
  333. } PS4000A_SENSOR_STATE;
  334. typedef enum enPS4000AFrequencyCounterRange
  335. {
  336. PS4000A_FC_2K,
  337. PS4000A_FC_20K,
  338. PS4000A_FC_20,
  339. PS4000A_FC_200,
  340. PS4000A_FC_MAX
  341. }PS4000A_FREQUENCY_COUNTER_RANGE;
  342. typedef enum enPS4000AChannelFlags
  343. {
  344. PS4000A_CHANNEL_A_FLAGS = 1,
  345. PS4000A_CHANNEL_B_FLAGS = 2,
  346. PS4000A_CHANNEL_C_FLAGS = 4,
  347. PS4000A_CHANNEL_D_FLAGS = 8,
  348. PS4000A_CHANNEL_E_FLAGS = 16,
  349. PS4000A_CHANNEL_F_FLAGS = 32,
  350. PS4000A_CHANNEL_G_FLAGS = 64,
  351. PS4000A_CHANNEL_H_FLAGS = 128,
  352. } PS4000A_CHANNEL_FLAGS;
  353. #pragma pack(push,1)
  354. typedef struct tPS4000AChannelLedSetting
  355. {
  356. PS4000A_CHANNEL channel;
  357. PS4000A_CHANNEL_LED state;
  358. } PS4000A_CHANNEL_LED_SETTING;
  359. typedef struct ps4000aProbeLedColour
  360. {
  361. uint8_t red;
  362. uint8_t green;
  363. uint8_t blue;
  364. } PS4000A_PROBE_LED_COLOUR;
  365. typedef struct tPS4000AProbeChannelLedSetting
  366. {
  367. PS4000A_CHANNEL channel;
  368. PS4000A_PROBE_LED_POSITION position;
  369. PS4000A_PROBE_LED_COLOUR rgb;
  370. } PS4000A_PROBE_CHANNEL_LED_SETTING;
  371. typedef struct tPS4000ADirection
  372. {
  373. PS4000A_CHANNEL channel;
  374. PS4000A_THRESHOLD_DIRECTION direction;
  375. } PS4000A_DIRECTION;
  376. typedef struct tPS4000ACondition
  377. {
  378. PS4000A_CHANNEL source;
  379. PS4000A_TRIGGER_STATE condition;
  380. } PS4000A_CONDITION;
  381. typedef enum enPS4000AConditionsInfo
  382. {
  383. PS4000A_CLEAR = 0x00000001,
  384. PS4000A_ADD = 0x00000002
  385. } PS4000A_CONDITIONS_INFO;
  386. typedef struct tPS4000ATriggerChannelProperties
  387. {
  388. int16_t thresholdUpper;
  389. uint16_t thresholdUpperHysteresis;
  390. int16_t thresholdLower;
  391. uint16_t thresholdLowerHysteresis;
  392. PS4000A_CHANNEL channel;
  393. PS4000A_THRESHOLD_MODE thresholdMode;
  394. } PS4000A_TRIGGER_CHANNEL_PROPERTIES;
  395. typedef struct tPS4000AConnectDetect
  396. {
  397. PS4000A_CHANNEL channel;
  398. PS4000A_SENSOR_STATE state;
  399. } PS4000A_CONNECT_DETECT;
  400. typedef struct tPS4000AUserProbeInteractions
  401. {
  402. uint16_t connected;
  403. PS4000A_CHANNEL channel;
  404. uint16_t enabled;
  405. PicoConnectProbe probeName;
  406. uint8_t requiresPower_;
  407. uint8_t isPowered_;
  408. PICO_STATUS status_;
  409. PICO_CONNECT_PROBE_RANGE probeOff;
  410. PICO_CONNECT_PROBE_RANGE rangeFirst_;
  411. PICO_CONNECT_PROBE_RANGE rangeLast_;
  412. PICO_CONNECT_PROBE_RANGE rangeCurrent_;
  413. PS4000A_COUPLING couplingFirst_;
  414. PS4000A_COUPLING couplingLast_;
  415. PS4000A_COUPLING couplingCurrent_;
  416. PS4000A_BANDWIDTH_LIMITER_FLAGS filterFlags_;
  417. PS4000A_BANDWIDTH_LIMITER_FLAGS filterCurrent_;
  418. PS4000A_BANDWIDTH_LIMITER defaultFilter_;
  419. } PS4000A_USER_PROBE_INTERACTIONS;
  420. #pragma pack(pop)
  421. typedef enum enPS4000ARatioMode
  422. {
  423. PS4000A_RATIO_MODE_NONE = 0,
  424. PS4000A_RATIO_MODE_AGGREGATE = 1,
  425. PS4000A_RATIO_MODE_DECIMATE = 2,
  426. PS4000A_RATIO_MODE_AVERAGE = 4,
  427. PS4000A_RATIO_MODE_DISTRIBUTION = 8
  428. } PS4000A_RATIO_MODE;
  429. typedef enum enPS4000APulseWidthType
  430. {
  431. PS4000A_PW_TYPE_NONE,
  432. PS4000A_PW_TYPE_LESS_THAN,
  433. PS4000A_PW_TYPE_GREATER_THAN,
  434. PS4000A_PW_TYPE_IN_RANGE,
  435. PS4000A_PW_TYPE_OUT_OF_RANGE
  436. } PS4000A_PULSE_WIDTH_TYPE;
  437. typedef enum enPS4000AChannelInfo
  438. {
  439. PS4000A_CI_RANGES,
  440. PS4000A_CI_RESISTANCES,
  441. } PS4000A_CHANNEL_INFO;
  442. typedef void (PREF4 *ps4000aBlockReady)
  443. (
  444. int16_t handle,
  445. PICO_STATUS status,
  446. void * pParameter
  447. );
  448. typedef void (PREF4 *ps4000aStreamingReady)
  449. (
  450. int16_t handle,
  451. int32_t noOfSamples,
  452. uint32_t startIndex,
  453. int16_t overflow,
  454. uint32_t triggerAt,
  455. int16_t triggered,
  456. int16_t autoStop,
  457. void * pParameter
  458. );
  459. typedef void (PREF4 *ps4000aDataReady)
  460. (
  461. int16_t handle,
  462. PICO_STATUS status,
  463. uint32_t noOfSamples,
  464. int16_t overflow,
  465. void * pParameter
  466. );
  467. typedef void (PREF4 *ps4000aProbeInteractions)
  468. (
  469. int16_t handle,
  470. PICO_STATUS status,
  471. PS4000A_USER_PROBE_INTERACTIONS * probes,
  472. uint32_t nProbes
  473. );
  474. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aOpenUnitWithResolution)
  475. (
  476. int16_t * handle,
  477. int8_t * serial,
  478. PS4000A_DEVICE_RESOLUTION resolution
  479. );
  480. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aOpenUnit)
  481. (
  482. int16_t * handle,
  483. int8_t * serial
  484. );
  485. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aOpenUnitAsyncWithResolution)
  486. (
  487. int16_t * status,
  488. int8_t * serial,
  489. PS4000A_DEVICE_RESOLUTION resolution
  490. );
  491. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aOpenUnitAsync)
  492. (
  493. int16_t * status,
  494. int8_t * serial
  495. );
  496. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aOpenUnitProgress)
  497. (
  498. int16_t * handle,
  499. int16_t * progressPercent,
  500. int16_t * complete
  501. );
  502. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetUnitInfo)
  503. (
  504. int16_t handle,
  505. int8_t * string,
  506. int16_t stringLength,
  507. int16_t * requiredSize,
  508. PICO_INFO info
  509. );
  510. // This function retrieves information about the accessory (e.g. probe) attached to the specified channel.
  511. // Note: you must set a probe interaction callback to be able to retrieve probe information.
  512. //
  513. // parameters:
  514. // handle: identifies the device to which the accessory is attached.
  515. // channel: identifies the channel to which the accessory is attached. If no accessory is connected to this channel, an error will result.
  516. // string: on exit, the accessory information string selected specified by the info argument. If string is NULL, only requiredSize is returned.
  517. // stringLength: the maximum number of 8-bit integers (int8_t) that may be written to string.
  518. // requiredSize: on exit, the required length of the string array.
  519. // info: a number specifying what information is required. Note that unlike ps6000aGetUnitInfo, only PICO_BATCH_AND_SERIAL and PICO_CAL_DATE are valid for accessories.
  520. //
  521. // return:
  522. // PICO_OK
  523. // PICO_INVALID_HANDLE (handle isn't that of an open PicoScope device.)
  524. // PICO_PROBE_COLLECTION_NOT_STARTED (handle hasn't got a probe interaction callback set).
  525. // PICO_INVALID_CHANNEL (channel doesn't map to a channel on the device with handle.)
  526. // PICO_NULL_PARAMETER (requiredSize is NULL.)
  527. // PICO_INVALID_INFO (info is an invalid value for the attached accessory.)
  528. // PICO_INFO_UNAVAILABLE (no accessory is connected, or the connected accessory does not support any info.)
  529. // PICO_DRIVER_FUNCTION (another thread is already calling a driver function.)
  530. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aGetAccessoryInfo)
  531. (
  532. int16_t handle,
  533. PS4000A_CHANNEL channel,
  534. int8_t * string,
  535. int16_t stringLength,
  536. int16_t * requiredSize,
  537. PICO_INFO info
  538. );
  539. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aFlashLed)
  540. (
  541. int16_t handle,
  542. int16_t start
  543. );
  544. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetChannelLed)
  545. (
  546. int16_t handle,
  547. PS4000A_CHANNEL_LED_SETTING * ledStates,
  548. uint16_t nLedStates
  549. );
  550. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aIsLedFlashing)
  551. (
  552. int16_t handle,
  553. int16_t * status
  554. );
  555. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aCloseUnit)
  556. (
  557. int16_t handle
  558. );
  559. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aMemorySegments)
  560. (
  561. int16_t handle,
  562. uint32_t nSegments,
  563. int32_t * nMaxSamples
  564. );
  565. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetChannel)
  566. (
  567. int16_t handle,
  568. PS4000A_CHANNEL channel,
  569. int16_t enabled,
  570. PS4000A_COUPLING type,
  571. PICO_CONNECT_PROBE_RANGE range,
  572. float analogOffset
  573. );
  574. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetBandwidthFilter)
  575. (
  576. int16_t handle,
  577. PS4000A_CHANNEL channel,
  578. PS4000A_BANDWIDTH_LIMITER bandwidth
  579. );
  580. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aApplyResistanceScaling)
  581. (
  582. int16_t handle,
  583. PS4000A_CHANNEL channel,
  584. PICO_CONNECT_PROBE_RANGE range,
  585. int16_t * bufferMax,
  586. int16_t * bufferMin,
  587. uint32_t buffertLth,
  588. int16_t * overflow
  589. );
  590. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetTimebase)
  591. (
  592. int16_t handle,
  593. uint32_t timebase,
  594. int32_t noSamples,
  595. int32_t * timeIntervalNanoseconds,
  596. int32_t * maxSamples,
  597. uint32_t segmentIndex
  598. );
  599. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetTimebase2)
  600. (
  601. int16_t handle,
  602. uint32_t timebase,
  603. int32_t noSamples,
  604. float * timeIntervalNanoseconds,
  605. int32_t * maxSamples,
  606. uint32_t segmentIndex
  607. );
  608. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetSigGenArbitrary)
  609. (
  610. int16_t handle,
  611. int32_t offsetVoltage,
  612. uint32_t pkToPk,
  613. uint32_t startDeltaPhase,
  614. uint32_t stopDeltaPhase,
  615. uint32_t deltaPhaseIncrement,
  616. uint32_t dwellCount,
  617. int16_t * arbitraryWaveform,
  618. int32_t arbitraryWaveformSize,
  619. PS4000A_SWEEP_TYPE sweepType,
  620. PS4000A_EXTRA_OPERATIONS operation,
  621. PS4000A_INDEX_MODE indexMode,
  622. uint32_t shots,
  623. uint32_t sweeps,
  624. PS4000A_SIGGEN_TRIG_TYPE triggerType,
  625. PS4000A_SIGGEN_TRIG_SOURCE triggerSource,
  626. int16_t extInThreshold
  627. );
  628. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aSetSigGenBuiltIn)
  629. (
  630. int16_t handle,
  631. int32_t offsetVoltage,
  632. uint32_t pkToPk,
  633. PS4000A_WAVE_TYPE waveType,
  634. double startFrequency,
  635. double stopFrequency,
  636. double increment,
  637. double dwellTime,
  638. PS4000A_SWEEP_TYPE sweepType,
  639. PS4000A_EXTRA_OPERATIONS operation,
  640. uint32_t shots,
  641. uint32_t sweeps,
  642. PS4000A_SIGGEN_TRIG_TYPE triggerType,
  643. PS4000A_SIGGEN_TRIG_SOURCE triggerSource,
  644. int16_t extInThreshold
  645. );
  646. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetSigGenPropertiesArbitrary)
  647. (
  648. int16_t handle,
  649. uint32_t startDeltaPhase,
  650. uint32_t stopDeltaPhase,
  651. uint32_t deltaPhaseIncrement,
  652. uint32_t dwellCount,
  653. PS4000A_SWEEP_TYPE sweepType,
  654. uint32_t shots,
  655. uint32_t sweeps,
  656. PS4000A_SIGGEN_TRIG_TYPE triggerType,
  657. PS4000A_SIGGEN_TRIG_SOURCE triggerSource,
  658. int16_t extInThreshold
  659. );
  660. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aSetSigGenPropertiesBuiltIn)
  661. (
  662. int16_t handle,
  663. double startFrequency,
  664. double stopFrequency,
  665. double increment,
  666. double dwellTime,
  667. PS4000A_SWEEP_TYPE sweepType,
  668. uint32_t shots,
  669. uint32_t sweeps,
  670. PS4000A_SIGGEN_TRIG_TYPE triggerType,
  671. PS4000A_SIGGEN_TRIG_SOURCE triggerSource,
  672. int16_t extInThreshold
  673. );
  674. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aSigGenFrequencyToPhase)
  675. (
  676. int16_t handle,
  677. double frequency,
  678. PS4000A_INDEX_MODE indexMode,
  679. uint32_t bufferLength,
  680. uint32_t * phase
  681. );
  682. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aSigGenArbitraryMinMaxValues)
  683. (
  684. int16_t handle,
  685. int16_t * minArbitraryWaveformValue,
  686. int16_t * maxArbitraryWaveformValue,
  687. uint32_t * minArbitraryWaveformSize,
  688. uint32_t * maxArbitraryWaveformSize
  689. );
  690. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSigGenSoftwareControl)
  691. (
  692. int16_t handle,
  693. int16_t state
  694. );
  695. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetEts)
  696. (
  697. int16_t handle,
  698. PS4000A_ETS_MODE mode,
  699. int16_t etsCycles,
  700. int16_t etsInterleave,
  701. int32_t * sampleTimePicoseconds
  702. );
  703. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetTriggerChannelProperties)
  704. (
  705. int16_t handle,
  706. PS4000A_TRIGGER_CHANNEL_PROPERTIES * channelProperties,
  707. int16_t nChannelProperties,
  708. int16_t auxOutputEnable,
  709. int32_t autoTriggerMilliseconds
  710. );
  711. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetTriggerChannelConditions)
  712. (
  713. int16_t handle,
  714. PS4000A_CONDITION * conditions,
  715. int16_t nConditions,
  716. PS4000A_CONDITIONS_INFO info
  717. );
  718. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetTriggerChannelDirections)
  719. (
  720. int16_t handle,
  721. PS4000A_DIRECTION * directions,
  722. int16_t nDirections
  723. );
  724. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetSimpleTrigger)
  725. (
  726. int16_t handle,
  727. int16_t enable,
  728. PS4000A_CHANNEL source,
  729. int16_t threshold,
  730. PS4000A_THRESHOLD_DIRECTION direction,
  731. uint32_t delay,
  732. int16_t autoTrigger_ms
  733. );
  734. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetTriggerDelay)
  735. (
  736. int16_t handle,
  737. uint32_t delay
  738. );
  739. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetPulseWidthQualifierProperties)
  740. (
  741. int16_t handle,
  742. PS4000A_THRESHOLD_DIRECTION direction,
  743. uint32_t lower,
  744. uint32_t upper,
  745. PS4000A_PULSE_WIDTH_TYPE type
  746. );
  747. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetPulseWidthQualifierConditions)
  748. (
  749. int16_t handle,
  750. PS4000A_CONDITION * conditions,
  751. int16_t nConditions,
  752. PS4000A_CONDITIONS_INFO info
  753. );
  754. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aIsTriggerOrPulseWidthQualifierEnabled)
  755. (
  756. int16_t handle,
  757. int16_t * triggerEnabled,
  758. int16_t * pulseWidthQualifierEnabled
  759. );
  760. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetTriggerTimeOffset)
  761. (
  762. int16_t handle,
  763. uint32_t * timeUpper,
  764. uint32_t * timeLower,
  765. PS4000A_TIME_UNITS * timeUnits,
  766. uint32_t segmentIndex
  767. );
  768. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetTriggerTimeOffset64)
  769. (
  770. int16_t handle,
  771. int64_t * time,
  772. PS4000A_TIME_UNITS * timeUnits,
  773. uint32_t segmentIndex
  774. );
  775. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetValuesTriggerTimeOffsetBulk)
  776. (
  777. int16_t handle,
  778. uint32_t * timesUpper,
  779. uint32_t * timesLower,
  780. PS4000A_TIME_UNITS * timeUnits,
  781. uint32_t fromSegmentIndex,
  782. uint32_t toSegmentIndex
  783. );
  784. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetValuesTriggerTimeOffsetBulk64)
  785. (
  786. int16_t handle,
  787. int64_t * times,
  788. PS4000A_TIME_UNITS * timeUnits,
  789. uint32_t fromSegmentIndex,
  790. uint32_t toSegmentIndex
  791. );
  792. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetDataBuffers)
  793. (
  794. int16_t handle,
  795. PS4000A_CHANNEL channel,
  796. int16_t * bufferMax,
  797. int16_t * bufferMin,
  798. int32_t bufferLth,
  799. uint32_t segmentIndex,
  800. PS4000A_RATIO_MODE mode
  801. );
  802. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetDataBuffer)
  803. (
  804. int16_t handle,
  805. PS4000A_CHANNEL channel,
  806. int16_t * buffer,
  807. int32_t bufferLth,
  808. uint32_t segmentIndex,
  809. PS4000A_RATIO_MODE mode
  810. );
  811. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetEtsTimeBuffer)
  812. (
  813. int16_t handle,
  814. int64_t * buffer,
  815. int32_t bufferLth
  816. );
  817. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetEtsTimeBuffers)
  818. (
  819. int16_t handle,
  820. uint32_t * timeUpper,
  821. uint32_t * timeLower,
  822. int32_t bufferLth
  823. );
  824. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aIsReady)
  825. (
  826. int16_t handle,
  827. int16_t * ready
  828. );
  829. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aRunBlock)
  830. (
  831. int16_t handle,
  832. int32_t noOfPreTriggerSamples,
  833. int32_t noOfPostTriggerSamples,
  834. uint32_t timebase,
  835. int32_t * timeIndisposedMs,
  836. uint32_t segmentIndex,
  837. ps4000aBlockReady lpReady,
  838. void * pParameter
  839. );
  840. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aRunStreaming)
  841. (
  842. int16_t handle,
  843. uint32_t * sampleInterval,
  844. PS4000A_TIME_UNITS sampleIntervalTimeUnits,
  845. uint32_t maxPreTriggerSamples,
  846. uint32_t maxPostTriggerSamples,
  847. int16_t autoStop,
  848. uint32_t downSampleRatio,
  849. PS4000A_RATIO_MODE downSampleRatioMode,
  850. uint32_t overviewBufferSize
  851. );
  852. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetStreamingLatestValues)
  853. (
  854. int16_t handle,
  855. ps4000aStreamingReady lpPs4000aReady,
  856. void * pParameter
  857. );
  858. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aNoOfStreamingValues)
  859. (
  860. int16_t handle,
  861. uint32_t * noOfValues
  862. );
  863. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetMaxDownSampleRatio)
  864. (
  865. int16_t handle,
  866. uint32_t noOfUnaggregatedSamples,
  867. uint32_t * maxDownSampleRatio,
  868. PS4000A_RATIO_MODE downSampleRatioMode,
  869. uint32_t segmentIndex
  870. );
  871. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetValues)
  872. (
  873. int16_t handle,
  874. uint32_t startIndex,
  875. uint32_t * noOfSamples,
  876. uint32_t downSampleRatio,
  877. PS4000A_RATIO_MODE downSampleRatioMode,
  878. uint32_t segmentIndex,
  879. int16_t * overflow
  880. );
  881. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetValuesAsync)
  882. (
  883. int16_t handle,
  884. uint32_t startIndex,
  885. uint32_t noOfSamples,
  886. uint32_t downSampleRatio,
  887. PS4000A_RATIO_MODE downSampleRatioMode,
  888. uint32_t segmentIndex,
  889. void * lpDataReady,
  890. void * pParameter
  891. );
  892. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetValuesBulk)
  893. (
  894. int16_t handle,
  895. uint32_t * noOfSamples,
  896. uint32_t fromSegmentIndex,
  897. uint32_t toSegmentIndex,
  898. uint32_t downSampleRatio,
  899. PS4000A_RATIO_MODE downSampleRatioMode,
  900. int16_t * overflow
  901. );
  902. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetValuesOverlapped)
  903. (
  904. int16_t handle,
  905. uint32_t startIndex,
  906. uint32_t * noOfSamples,
  907. uint32_t downSampleRatio,
  908. PS4000A_RATIO_MODE downSampleRatioMode,
  909. uint32_t segmentIndex,
  910. int16_t * overflow
  911. );
  912. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetValuesOverlappedBulk)
  913. (
  914. int16_t handle,
  915. uint32_t startIndex,
  916. uint32_t * noOfSamples,
  917. uint32_t downSampleRatio,
  918. PS4000A_RATIO_MODE downSampleRatioMode,
  919. uint32_t fromSegmentIndex,
  920. uint32_t toSegmentIndex,
  921. int16_t * overflow
  922. );
  923. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aEnumerateUnits)
  924. (
  925. int16_t * count,
  926. int8_t * serials,
  927. int16_t * serialLth
  928. );
  929. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetChannelInformation)
  930. (
  931. int16_t handle,
  932. PS4000A_CHANNEL_INFO info,
  933. int32_t probe,
  934. int32_t * ranges,
  935. int32_t * length,
  936. int32_t channels);
  937. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aConnectDetect)
  938. (
  939. int16_t handle,
  940. PS4000A_CONNECT_DETECT * sensor,
  941. int16_t nSensors
  942. );
  943. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aSetProbeInteractionCallback)
  944. (
  945. int16_t handle,
  946. ps4000aProbeInteractions callback
  947. );
  948. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aCalibrateProbe)
  949. (
  950. int16_t handle,
  951. PS4000A_CHANNEL channel,
  952. int16_t * checkCalibrationRequired
  953. );
  954. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aSetProbeLedColour)
  955. (
  956. int16_t handle,
  957. PS4000A_PROBE_CHANNEL_LED_SETTING * settings,
  958. uint16_t nSettings
  959. );
  960. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aRegisterProbeLedColour)
  961. (
  962. int16_t handle,
  963. PICO_CONNECT_PROBE probe,
  964. PS4000A_PROBE_CHANNEL_LED_SETTING * settings,
  965. uint16_t nSettings
  966. );
  967. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aSetProbeLedDefaults)
  968. (
  969. int16_t handle,
  970. int16_t enabled
  971. );
  972. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aMaximumValue)
  973. (
  974. int16_t handle,
  975. int16_t * value
  976. );
  977. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aMinimumValue)
  978. (
  979. int16_t handle,
  980. int16_t * value
  981. );
  982. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetAnalogueOffset)
  983. (
  984. int16_t handle,
  985. PICO_CONNECT_PROBE_RANGE range,
  986. PS4000A_COUPLING coupling,
  987. float * maximumOffset,
  988. float * minimumOffset
  989. );
  990. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetMaxSegments)
  991. (
  992. int16_t handle,
  993. uint32_t * maxSegments
  994. );
  995. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aChangePowerSource)
  996. (
  997. int16_t handle,
  998. PICO_STATUS powerState
  999. );
  1000. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aCurrentPowerSource)
  1001. (
  1002. int16_t handle
  1003. );
  1004. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aStop)
  1005. (
  1006. int16_t handle
  1007. );
  1008. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aPingUnit)
  1009. (
  1010. int16_t handle
  1011. );
  1012. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetNoOfCaptures)
  1013. (
  1014. int16_t handle,
  1015. uint32_t nCaptures
  1016. );
  1017. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetNoOfCaptures)
  1018. (
  1019. int16_t handle,
  1020. uint32_t * nCaptures
  1021. );
  1022. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetNoOfProcessedCaptures)
  1023. (
  1024. int16_t handle,
  1025. uint32_t * nProcessedCaptures
  1026. );
  1027. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aDeviceMetaData)
  1028. (
  1029. int16_t handle,
  1030. int8_t * settings,
  1031. int32_t * nSettingsLength,
  1032. PS4000A_META_TYPE type,
  1033. PS4000A_META_OPERATION operation,
  1034. PS4000A_META_FORMAT format
  1035. );
  1036. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetString)
  1037. (
  1038. int16_t handle,
  1039. PICO_STRING_VALUE stringValue,
  1040. int8_t * string,
  1041. int32_t * stringLength
  1042. );
  1043. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aGetCommonModeOverflow)
  1044. (
  1045. int16_t handle,
  1046. uint16_t * overflow
  1047. );
  1048. PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps4000aSetFrequencyCounter)
  1049. (
  1050. int16_t handle,
  1051. PS4000A_CHANNEL channel,
  1052. int16_t enabled,
  1053. PS4000A_FREQUENCY_COUNTER_RANGE range,
  1054. int16_t thresholdMajor,
  1055. int16_t thresholdMinor
  1056. );
  1057. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aQueryOutputEdgeDetect)
  1058. (
  1059. int16_t handle,
  1060. int16_t * state
  1061. );
  1062. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aSetOutputEdgeDetect)
  1063. (
  1064. int16_t handle,
  1065. int16_t state
  1066. );
  1067. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aSetDeviceResolution)
  1068. (
  1069. int16_t handle,
  1070. PS4000A_DEVICE_RESOLUTION resolution
  1071. );
  1072. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aGetDeviceResolution)
  1073. (
  1074. int16_t handle,
  1075. PS4000A_DEVICE_RESOLUTION * resolution
  1076. );
  1077. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aSetCalibrationPins)
  1078. (
  1079. int16_t handle,
  1080. PS4000A_PIN_STATES pinStates,
  1081. PS4000A_WAVE_TYPE waveType,
  1082. double frequency,
  1083. uint32_t amplitude,
  1084. uint32_t offset
  1085. );
  1086. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aNearestSampleIntervalStateless)
  1087. (
  1088. int16_t handle,
  1089. PS4000A_CHANNEL_FLAGS enabledChannelOrPortFlags,
  1090. double timeIntervalRequested,
  1091. PS4000A_DEVICE_RESOLUTION resolution,
  1092. uint16_t useEts,
  1093. uint32_t * timebase,
  1094. double * timeIntervalAvailable
  1095. );
  1096. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aGetMinimumTimebaseStateless)
  1097. (
  1098. int16_t handle,
  1099. PS4000A_CHANNEL_FLAGS enabledChannelOrPortFlags,
  1100. uint32_t * timebase,
  1101. double * timeInterval,
  1102. PS4000A_DEVICE_RESOLUTION resolution
  1103. );
  1104. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aCheckForUpdate)
  1105. (
  1106. int16_t handle,
  1107. PICO_FIRMWARE_INFO* firmwareInfos,
  1108. int16_t* nFirmwareInfos,
  1109. uint16_t* updatesRequired
  1110. );
  1111. PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps4000aStartFirmwareUpdate)
  1112. (
  1113. int16_t handle,
  1114. PicoUpdateFirmwareProgress progress
  1115. );
  1116. #endif