12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142 |
- /****************************************************************************
- *
- * Filename: ps3000aApi.h
- * Author: MAS
- * Description:
- *
- * This header defines the interface to driver routines for the
- * PicoScope 3000A, B and D Series PC Oscilloscopes.
- *
- * Copyright � 2010 - 2022 Pico Technology Ltd. All rights reserved.
- *
- ****************************************************************************/
- #ifndef __PS3000AAPI_H__
- #define __PS3000AAPI_H__
- #include <stdint.h>
- #include "PicoCallback.h"
- #include "PicoStatus.h"
- #include "PicoVersion.h"
- #ifdef __cplusplus
- #define PREF0 extern "C"
- #define TYPE_ENUM
- #else
- #define PREF0
- #define TYPE_ENUM enum
- #endif
- #ifdef WIN32
- #ifdef PREF1
- #undef PREF1
- #endif
- #ifdef PREF2
- #undef PREF2
- #endif
- #ifdef PREF3
- #undef PREF3
- #endif
- //If you are dynamically linking ps3000a.dll into your project #define DYNLINK here
- #ifdef DYNLINK
- #define PREF1 typedef
- #define PREF2
- #define PREF3(x) (__stdcall *x)
- #else
- #define PREF1
- #ifdef _USRDLL
- #define PREF2 __declspec(dllexport) __stdcall
- #else
- #define PREF2 __declspec(dllimport) __stdcall
- #endif
- #define PREF3(x) x
- #endif
- #else
- #ifdef DYNLINK
- #define PREF1 typedef
- #define PREF2
- #define PREF3(x) (*x)
- #else
- #ifdef _USRDLL
- #define PREF1 __attribute__((visibility("default")))
- #else
- #define PREF1
- #endif
- #define PREF2
- #define PREF3(x) x
- #endif
- #define __stdcall
- #endif
- #define PS3000A_MAX_OVERSAMPLE 256
- /* Depending on the adc;oversample (collect multiple readings at each time) by up to 256.
- * the results are therefore ALWAYS scaled up to 16-bits, even if
- * oversampling is not used.
- *
- * The maximum and minimum values returned are therefore as follows:
- */
- #define PS3207A_MAX_ETS_CYCLES 500
- #define PS3207A_MAX_INTERLEAVE 40
- #define PS3206A_MAX_ETS_CYCLES 500
- #define PS3206A_MAX_INTERLEAVE 40
- #define PS3206MSO_MAX_INTERLEAVE 80
- #define PS3205A_MAX_ETS_CYCLES 250
- #define PS3205A_MAX_INTERLEAVE 20
- #define PS3205MSO_MAX_INTERLEAVE 40
- #define PS3204A_MAX_ETS_CYCLES 125
- #define PS3204A_MAX_INTERLEAVE 10
- #define PS3204MSO_MAX_INTERLEAVE 20
- #define PS3000A_EXT_MAX_VALUE 32767
- #define PS3000A_EXT_MIN_VALUE -32767
- #define PS3000A_MAX_LOGIC_LEVEL 32767
- #define PS3000A_MIN_LOGIC_LEVEL -32767
- #define MIN_SIG_GEN_FREQ 0.0f
- #define MAX_SIG_GEN_FREQ 20000000.0f
- #define PS3207B_MAX_SIG_GEN_BUFFER_SIZE 32768
- #define PS3206B_MAX_SIG_GEN_BUFFER_SIZE 16384
- #define MAX_SIG_GEN_BUFFER_SIZE 8192
- #define MIN_SIG_GEN_BUFFER_SIZE 1
- #define MIN_DWELL_COUNT 3
- #define MAX_SWEEPS_SHOTS ((1 << 30) - 1)
- #define MAX_ANALOGUE_OFFSET_50MV_200MV 0.250f
- #define MIN_ANALOGUE_OFFSET_50MV_200MV -0.250f
- #define MAX_ANALOGUE_OFFSET_500MV_2V 2.500f
- #define MIN_ANALOGUE_OFFSET_500MV_2V -2.500f
- #define MAX_ANALOGUE_OFFSET_5V_20V 20.f
- #define MIN_ANALOGUE_OFFSET_5V_20V -20.f
- #define PS3000A_SHOT_SWEEP_TRIGGER_CONTINUOUS_RUN 0xFFFFFFFF
- typedef enum enPS3000ABandwidthLimiter
- {
- PS3000A_BW_FULL,
- PS3000A_BW_20MHZ,
- } PS3000A_BANDWIDTH_LIMITER;
- typedef enum enPS3000AChannelBufferIndex
- {
- PS3000A_CHANNEL_A_MAX,
- PS3000A_CHANNEL_A_MIN,
- PS3000A_CHANNEL_B_MAX,
- PS3000A_CHANNEL_B_MIN,
- PS3000A_CHANNEL_C_MAX,
- PS3000A_CHANNEL_C_MIN,
- PS3000A_CHANNEL_D_MAX,
- PS3000A_CHANNEL_D_MIN,
- PS3000A_MAX_CHANNEL_BUFFERS
- } PS3000A_CHANNEL_BUFFER_INDEX;
- typedef enum enPS3000AChannel
- {
- PS3000A_CHANNEL_A,
- PS3000A_CHANNEL_B,
- PS3000A_CHANNEL_C,
- PS3000A_CHANNEL_D,
- PS3000A_EXTERNAL,
- PS3000A_MAX_CHANNELS = PS3000A_EXTERNAL,
- PS3000A_TRIGGER_AUX,
- PS3000A_MAX_TRIGGER_SOURCES
- } PS3000A_CHANNEL;
- typedef enum enPS3000ADigitalPort
- {
- PS3000A_DIGITAL_PORT0 = 0x80, // digital channel 0 - 7
- PS3000A_DIGITAL_PORT1, // digital channel 8 - 15
- PS3000A_DIGITAL_PORT2, // digital channel 16 - 23
- PS3000A_DIGITAL_PORT3, // digital channel 24 - 31
- PS3000A_MAX_DIGITAL_PORTS = (PS3000A_DIGITAL_PORT3 - PS3000A_DIGITAL_PORT0) + 1
- } PS3000A_DIGITAL_PORT;
- typedef enum enPS3000ADigitalChannel
- {
- PS3000A_DIGITAL_CHANNEL_0,
- PS3000A_DIGITAL_CHANNEL_1,
- PS3000A_DIGITAL_CHANNEL_2,
- PS3000A_DIGITAL_CHANNEL_3,
- PS3000A_DIGITAL_CHANNEL_4,
- PS3000A_DIGITAL_CHANNEL_5,
- PS3000A_DIGITAL_CHANNEL_6,
- PS3000A_DIGITAL_CHANNEL_7,
- PS3000A_DIGITAL_CHANNEL_8,
- PS3000A_DIGITAL_CHANNEL_9,
- PS3000A_DIGITAL_CHANNEL_10,
- PS3000A_DIGITAL_CHANNEL_11,
- PS3000A_DIGITAL_CHANNEL_12,
- PS3000A_DIGITAL_CHANNEL_13,
- PS3000A_DIGITAL_CHANNEL_14,
- PS3000A_DIGITAL_CHANNEL_15,
- PS3000A_DIGITAL_CHANNEL_16,
- PS3000A_DIGITAL_CHANNEL_17,
- PS3000A_DIGITAL_CHANNEL_18,
- PS3000A_DIGITAL_CHANNEL_19,
- PS3000A_DIGITAL_CHANNEL_20,
- PS3000A_DIGITAL_CHANNEL_21,
- PS3000A_DIGITAL_CHANNEL_22,
- PS3000A_DIGITAL_CHANNEL_23,
- PS3000A_DIGITAL_CHANNEL_24,
- PS3000A_DIGITAL_CHANNEL_25,
- PS3000A_DIGITAL_CHANNEL_26,
- PS3000A_DIGITAL_CHANNEL_27,
- PS3000A_DIGITAL_CHANNEL_28,
- PS3000A_DIGITAL_CHANNEL_29,
- PS3000A_DIGITAL_CHANNEL_30,
- PS3000A_DIGITAL_CHANNEL_31,
- PS3000A_MAX_DIGITAL_CHANNELS
- } PS3000A_DIGITAL_CHANNEL;
- typedef enum enPS3000ARange
- {
- PS3000A_10MV,
- PS3000A_20MV,
- PS3000A_50MV,
- PS3000A_100MV,
- PS3000A_200MV,
- PS3000A_500MV,
- PS3000A_1V,
- PS3000A_2V,
- PS3000A_5V,
- PS3000A_10V,
- PS3000A_20V,
- PS3000A_50V,
- PS3000A_MAX_RANGES,
- } PS3000A_RANGE;
- typedef enum enPS3000ACoupling
- {
- PS3000A_AC,
- PS3000A_DC
- } PS3000A_COUPLING;
- typedef enum enPS3000AChannelInfo
- {
- PS3000A_CI_RANGES,
- } PS3000A_CHANNEL_INFO;
- typedef enum enPS3000AEtsMode
- {
- PS3000A_ETS_OFF, // ETS disabled
- PS3000A_ETS_FAST,
- PS3000A_ETS_SLOW,
- PS3000A_ETS_MODES_MAX
- } PS3000A_ETS_MODE;
- typedef enum enPS3000ATimeUnits
- {
- PS3000A_FS,
- PS3000A_PS,
- PS3000A_NS,
- PS3000A_US,
- PS3000A_MS,
- PS3000A_S,
- PS3000A_MAX_TIME_UNITS,
- } PS3000A_TIME_UNITS;
- typedef enum enPS3000ASweepType
- {
- PS3000A_UP,
- PS3000A_DOWN,
- PS3000A_UPDOWN,
- PS3000A_DOWNUP,
- PS3000A_MAX_SWEEP_TYPES
- } PS3000A_SWEEP_TYPE;
- typedef enum enPS3000AWaveType
- {
- PS3000A_SINE,
- PS3000A_SQUARE,
- PS3000A_TRIANGLE,
- PS3000A_RAMP_UP,
- PS3000A_RAMP_DOWN,
- PS3000A_SINC,
- PS3000A_GAUSSIAN,
- PS3000A_HALF_SINE,
- PS3000A_DC_VOLTAGE,
- PS3000A_MAX_WAVE_TYPES
- } PS3000A_WAVE_TYPE;
- typedef enum enPS3000AExtraOperations
- {
- PS3000A_ES_OFF,
- PS3000A_WHITENOISE,
- PS3000A_PRBS // Pseudo-Random Bit Stream
- } PS3000A_EXTRA_OPERATIONS;
- #define PS3000A_SINE_MAX_FREQUENCY 1000000.f
- #define PS3000A_SQUARE_MAX_FREQUENCY 1000000.f
- #define PS3000A_TRIANGLE_MAX_FREQUENCY 1000000.f
- #define PS3000A_SINC_MAX_FREQUENCY 1000000.f
- #define PS3000A_RAMP_MAX_FREQUENCY 1000000.f
- #define PS3000A_HALF_SINE_MAX_FREQUENCY 1000000.f
- #define PS3000A_GAUSSIAN_MAX_FREQUENCY 1000000.f
- #define PS3000A_PRBS_MAX_FREQUENCY 1000000.f
- #define PS3000A_PRBS_MIN_FREQUENCY 0.03f
- #define PS3000A_MIN_FREQUENCY 0.03f
- typedef enum enPS3000ASigGenTrigType
- {
- PS3000A_SIGGEN_RISING,
- PS3000A_SIGGEN_FALLING,
- PS3000A_SIGGEN_GATE_HIGH,
- PS3000A_SIGGEN_GATE_LOW
- } PS3000A_SIGGEN_TRIG_TYPE;
- typedef enum enPS3000ASigGenTrigSource
- {
- PS3000A_SIGGEN_NONE,
- PS3000A_SIGGEN_SCOPE_TRIG,
- PS3000A_SIGGEN_AUX_IN,
- PS3000A_SIGGEN_EXT_IN,
- PS3000A_SIGGEN_SOFT_TRIG
- } PS3000A_SIGGEN_TRIG_SOURCE;
- typedef enum enPS3000AIndexMode
- {
- PS3000A_SINGLE,
- PS3000A_DUAL,
- PS3000A_QUAD,
- PS3000A_MAX_INDEX_MODES
- } PS3000A_INDEX_MODE;
- typedef enum enPS3000A_ThresholdMode
- {
- PS3000A_LEVEL,
- PS3000A_WINDOW
- } PS3000A_THRESHOLD_MODE;
- typedef enum enPS3000AThresholdDirection
- {
- PS3000A_ABOVE, //using upper threshold
- PS3000A_BELOW, //using upper threshold
- PS3000A_RISING, // using upper threshold
- PS3000A_FALLING, // using upper threshold
- PS3000A_RISING_OR_FALLING, // using both threshold
- PS3000A_ABOVE_LOWER, // using lower threshold
- PS3000A_BELOW_LOWER, // using lower threshold
- PS3000A_RISING_LOWER, // using lower threshold
- PS3000A_FALLING_LOWER, // using lower threshold
- // Windowing using both thresholds
- PS3000A_INSIDE = PS3000A_ABOVE,
- PS3000A_OUTSIDE = PS3000A_BELOW,
- PS3000A_ENTER = PS3000A_RISING,
- PS3000A_EXIT = PS3000A_FALLING,
- PS3000A_ENTER_OR_EXIT = PS3000A_RISING_OR_FALLING,
- PS3000A_POSITIVE_RUNT = 9,
- PS3000A_NEGATIVE_RUNT,
- // no trigger set
- PS3000A_NONE = PS3000A_RISING
- } PS3000A_THRESHOLD_DIRECTION;
- typedef enum enPS3000ADigitalDirection
- {
- PS3000A_DIGITAL_DONT_CARE,
- PS3000A_DIGITAL_DIRECTION_LOW,
- PS3000A_DIGITAL_DIRECTION_HIGH,
- PS3000A_DIGITAL_DIRECTION_RISING,
- PS3000A_DIGITAL_DIRECTION_FALLING,
- PS3000A_DIGITAL_DIRECTION_RISING_OR_FALLING,
- PS3000A_DIGITAL_MAX_DIRECTION
- } PS3000A_DIGITAL_DIRECTION;
- typedef enum enPS3000ATriggerState
- {
- PS3000A_CONDITION_DONT_CARE,
- PS3000A_CONDITION_TRUE,
- PS3000A_CONDITION_FALSE,
- PS3000A_CONDITION_MAX
- } PS3000A_TRIGGER_STATE;
- #pragma pack(push,1)
- typedef struct tPS3000ATriggerConditions
- {
- PS3000A_TRIGGER_STATE channelA;
- PS3000A_TRIGGER_STATE channelB;
- PS3000A_TRIGGER_STATE channelC;
- PS3000A_TRIGGER_STATE channelD;
- PS3000A_TRIGGER_STATE external;
- PS3000A_TRIGGER_STATE aux;
- PS3000A_TRIGGER_STATE pulseWidthQualifier;
- } PS3000A_TRIGGER_CONDITIONS;
- #pragma pack(pop)
- #pragma pack(push,1)
- typedef struct tPS3000ATriggerConditionsV2
- {
- PS3000A_TRIGGER_STATE channelA;
- PS3000A_TRIGGER_STATE channelB;
- PS3000A_TRIGGER_STATE channelC;
- PS3000A_TRIGGER_STATE channelD;
- PS3000A_TRIGGER_STATE external;
- PS3000A_TRIGGER_STATE aux;
- PS3000A_TRIGGER_STATE pulseWidthQualifier;
- PS3000A_TRIGGER_STATE digital;
- } PS3000A_TRIGGER_CONDITIONS_V2;
- #pragma pack(pop)
- #pragma pack(push,1)
- typedef struct tPS3000APwqConditions
- {
- PS3000A_TRIGGER_STATE channelA;
- PS3000A_TRIGGER_STATE channelB;
- PS3000A_TRIGGER_STATE channelC;
- PS3000A_TRIGGER_STATE channelD;
- PS3000A_TRIGGER_STATE external;
- PS3000A_TRIGGER_STATE aux;
- } PS3000A_PWQ_CONDITIONS;
- #pragma pack(pop)
- #pragma pack(push,1)
- typedef struct tPS3000APwqConditionsV2
- {
- PS3000A_TRIGGER_STATE channelA;
- PS3000A_TRIGGER_STATE channelB;
- PS3000A_TRIGGER_STATE channelC;
- PS3000A_TRIGGER_STATE channelD;
- PS3000A_TRIGGER_STATE external;
- PS3000A_TRIGGER_STATE aux;
- PS3000A_TRIGGER_STATE digital;
- } PS3000A_PWQ_CONDITIONS_V2;
- #pragma pack(pop)
- #pragma pack(push,1)
- typedef struct tPS3000ADigitalChannelDirections
- {
- PS3000A_DIGITAL_CHANNEL channel;
- PS3000A_DIGITAL_DIRECTION direction;
- } PS3000A_DIGITAL_CHANNEL_DIRECTIONS;
- #pragma pack(pop)
- #pragma pack(push,1)
- typedef struct tPS3000ATriggerChannelProperties
- {
- int16_t thresholdUpper;
- uint16_t thresholdUpperHysteresis;
- int16_t thresholdLower;
- uint16_t thresholdLowerHysteresis;
- PS3000A_CHANNEL channel;
- PS3000A_THRESHOLD_MODE thresholdMode;
- } PS3000A_TRIGGER_CHANNEL_PROPERTIES;
- #pragma pack(pop)
- #pragma pack(push,1)
- typedef struct tPS3000ATriggerInfo
- {
- PICO_STATUS status;
- uint32_t segmentIndex;
- uint32_t reserved0;
- int64_t triggerTime;
- int16_t timeUnits;
- int16_t reserved1;
- uint64_t timeStampCounter;
- } PS3000A_TRIGGER_INFO;
- #pragma pack(pop)
- #pragma pack(push,1)
- typedef struct tPS3000AScalingFactors
- {
- PS3000A_CHANNEL channelOrPort;
- PS3000A_RANGE range;
- int16_t offset;
- double scalingFactor;
- }PS3000A_SCALING_FACTORS_VALUES;
- #pragma pack(pop)
- typedef enum enPS3000ARatioMode
- {
- PS3000A_RATIO_MODE_NONE,
- PS3000A_RATIO_MODE_AGGREGATE = 1,
- PS3000A_RATIO_MODE_DECIMATE = 2,
- PS3000A_RATIO_MODE_AVERAGE = 4,
- } PS3000A_RATIO_MODE;
- typedef enum enPS3000APulseWidthType
- {
- PS3000A_PW_TYPE_NONE,
- PS3000A_PW_TYPE_LESS_THAN,
- PS3000A_PW_TYPE_GREATER_THAN,
- PS3000A_PW_TYPE_IN_RANGE,
- PS3000A_PW_TYPE_OUT_OF_RANGE
- } PS3000A_PULSE_WIDTH_TYPE;
- typedef enum enPS3000AHoldOffType
- {
- PS3000A_TIME,
- PS3000A_EVENT,
- PS3000A_MAX_HOLDOFF_TYPE
- } PS3000A_HOLDOFF_TYPE;
- typedef void (__stdcall *ps3000aBlockReady)
- (
- int16_t handle,
- PICO_STATUS status,
- void *pParameter
- );
- typedef void (__stdcall *ps3000aStreamingReady)
- (
- int16_t handle,
- int32_t noOfSamples,
- uint32_t startIndex,
- int16_t overflow,
- uint32_t triggerAt,
- int16_t triggered,
- int16_t autoStop,
- void *pParameter
- );
- typedef void (__stdcall *ps3000aDataReady)
- (
- int16_t handle,
- PICO_STATUS status,
- uint32_t noOfSamples,
- int16_t overflow,
- void *pParameter
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aOpenUnit)
- (
- int16_t *handle,
- int8_t *serial
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aOpenUnitAsync)
- (
- int16_t *status,
- int8_t *serial
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aOpenUnitProgress)
- (
- int16_t *handle,
- int16_t *progressPercent,
- int16_t *complete
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetUnitInfo)
- (
- int16_t handle,
- int8_t *string,
- int16_t stringLength,
- int16_t *requiredSize,
- PICO_INFO info
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aFlashLed)
- (
- int16_t handle,
- int16_t start
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aCloseUnit)
- (
- int16_t handle
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aMemorySegments)
- (
- int16_t handle,
- uint32_t nSegments,
- int32_t *nMaxSamples
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetChannel)
- (
- int16_t handle,
- PS3000A_CHANNEL channel,
- int16_t enabled,
- PS3000A_COUPLING type,
- PS3000A_RANGE range,
- float analogOffset
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetDigitalPort)
- (
- int16_t handle,
- PS3000A_DIGITAL_PORT port,
- int16_t enabled,
- int16_t logicLevel
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetBandwidthFilter)
- (
- int16_t handle,
- PS3000A_CHANNEL channel,
- PS3000A_BANDWIDTH_LIMITER bandwidth
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetNoOfCaptures)
- (
- int16_t handle,
- uint32_t nCaptures
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetTimebase)
- (
- int16_t handle,
- uint32_t timebase,
- int32_t noSamples,
- int32_t *timeIntervalNanoseconds,
- int16_t oversample,
- int32_t *maxSamples,
- uint32_t segmentIndex
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetTimebase2)
- (
- int16_t handle,
- uint32_t timebase,
- int32_t noSamples,
- float *timeIntervalNanoseconds,
- int16_t oversample,
- int32_t *maxSamples,
- uint32_t segmentIndex
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetSigGenArbitrary)
- (
- int16_t handle,
- int32_t offsetVoltage,
- uint32_t pkToPk,
- uint32_t startDeltaPhase,
- uint32_t stopDeltaPhase,
- uint32_t deltaPhaseIncrement,
- uint32_t dwellCount,
- int16_t *arbitraryWaveform,
- int32_t arbitraryWaveformSize,
- PS3000A_SWEEP_TYPE sweepType,
- PS3000A_EXTRA_OPERATIONS operation,
- PS3000A_INDEX_MODE indexMode,
- uint32_t shots,
- uint32_t sweeps,
- PS3000A_SIGGEN_TRIG_TYPE triggerType,
- PS3000A_SIGGEN_TRIG_SOURCE triggerSource,
- int16_t extInThreshold
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps3000aSetSigGenBuiltIn)
- (
- int16_t handle,
- int32_t offsetVoltage,
- uint32_t pkToPk,
- int16_t waveType,
- float startFrequency,
- float stopFrequency,
- float increment,
- float dwellTime,
- PS3000A_SWEEP_TYPE sweepType,
- PS3000A_EXTRA_OPERATIONS operation,
- uint32_t shots,
- uint32_t sweeps,
- PS3000A_SIGGEN_TRIG_TYPE triggerType,
- PS3000A_SIGGEN_TRIG_SOURCE triggerSource,
- int16_t extInThreshold
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps3000aSetSigGenBuiltInV2)
- (
- int16_t handle,
- int32_t offsetVoltage,
- uint32_t pkToPk,
- int16_t waveType,
- double startFrequency,
- double stopFrequency,
- double increment,
- double dwellTime,
- PS3000A_SWEEP_TYPE sweepType,
- PS3000A_EXTRA_OPERATIONS operation,
- uint32_t shots,
- uint32_t sweeps,
- PS3000A_SIGGEN_TRIG_TYPE triggerType,
- PS3000A_SIGGEN_TRIG_SOURCE triggerSource,
- int16_t extInThreshold
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetSigGenPropertiesArbitrary)
- (
- int16_t handle,
- uint32_t startDeltaPhase,
- uint32_t stopDeltaPhase,
- uint32_t deltaPhaseIncrement,
- uint32_t dwellCount,
- PS3000A_SWEEP_TYPE sweepType,
- uint32_t shots,
- uint32_t sweeps,
- PS3000A_SIGGEN_TRIG_TYPE triggerType,
- PS3000A_SIGGEN_TRIG_SOURCE triggerSource,
- int16_t extInThreshold
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps3000aSetSigGenPropertiesBuiltIn)
- (
- int16_t handle,
- double startFrequency,
- double stopFrequency,
- double increment,
- double dwellTime,
- PS3000A_SWEEP_TYPE sweepType,
- uint32_t shots,
- uint32_t sweeps,
- PS3000A_SIGGEN_TRIG_TYPE triggerType,
- PS3000A_SIGGEN_TRIG_SOURCE triggerSource,
- int16_t extInThreshold
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps3000aSigGenFrequencyToPhase)
- (
- int16_t handle,
- double frequency,
- PS3000A_INDEX_MODE indexMode,
- uint32_t bufferLength,
- uint32_t * phase
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps3000aSigGenArbitraryMinMaxValues)
- (
- int16_t handle,
- int16_t * minArbitraryWaveformValue,
- int16_t * maxArbitraryWaveformValue,
- uint32_t * minArbitraryWaveformSize,
- uint32_t * maxArbitraryWaveformSize
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps3000aGetMaxEtsValues)
- (
- int16_t handle,
- int16_t * etsCycles,
- int16_t * etsInterleave
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSigGenSoftwareControl)
- (
- int16_t handle,
- int16_t state
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetEts)
- (
- int16_t handle,
- PS3000A_ETS_MODE mode,
- int16_t etsCycles,
- int16_t etsInterleave,
- int32_t *sampleTimePicoseconds
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetSimpleTrigger)
- (
- int16_t handle,
- int16_t enable,
- PS3000A_CHANNEL source,
- int16_t threshold,
- PS3000A_THRESHOLD_DIRECTION direction,
- uint32_t delay,
- int16_t autoTrigger_ms
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetTriggerDigitalPortProperties)
- (
- int16_t handle,
- PS3000A_DIGITAL_CHANNEL_DIRECTIONS *directions,
- int16_t nDirections
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetPulseWidthDigitalPortProperties)
- (
- int16_t handle,
- PS3000A_DIGITAL_CHANNEL_DIRECTIONS *directions,
- int16_t nDirections
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetTriggerChannelProperties)
- (
- int16_t handle,
- PS3000A_TRIGGER_CHANNEL_PROPERTIES *channelProperties,
- int16_t nChannelProperties,
- int16_t auxOutputEnable,
- int32_t autoTriggerMilliseconds
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetTriggerChannelConditions)
- (
- int16_t handle,
- PS3000A_TRIGGER_CONDITIONS *conditions,
- int16_t nConditions
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetTriggerChannelConditionsV2)
- (
- int16_t handle,
- PS3000A_TRIGGER_CONDITIONS_V2 *conditions,
- int16_t nConditions
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetTriggerChannelDirections)
- (
- int16_t handle,
- PS3000A_THRESHOLD_DIRECTION channelA,
- PS3000A_THRESHOLD_DIRECTION channelB,
- PS3000A_THRESHOLD_DIRECTION channelC,
- PS3000A_THRESHOLD_DIRECTION channelD,
- PS3000A_THRESHOLD_DIRECTION ext,
- PS3000A_THRESHOLD_DIRECTION aux
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetTriggerDelay)
- (
- int16_t handle,
- uint32_t delay
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetPulseWidthQualifier)
- (
- int16_t handle,
- PS3000A_PWQ_CONDITIONS *conditions,
- int16_t nConditions,
- PS3000A_THRESHOLD_DIRECTION direction,
- uint32_t lower,
- uint32_t upper,
- PS3000A_PULSE_WIDTH_TYPE type
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetPulseWidthQualifierV2)
- (
- int16_t handle,
- PS3000A_PWQ_CONDITIONS_V2 *conditions,
- int16_t nConditions,
- PS3000A_THRESHOLD_DIRECTION direction,
- uint32_t lower,
- uint32_t upper,
- PS3000A_PULSE_WIDTH_TYPE type
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aIsTriggerOrPulseWidthQualifierEnabled)
- (
- int16_t handle,
- int16_t *triggerEnabled,
- int16_t *pulseWidthQualifierEnabled
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetTriggerTimeOffset)
- (
- int16_t handle,
- uint32_t *timeUpper,
- uint32_t *timeLower,
- PS3000A_TIME_UNITS *timeUnits,
- uint32_t segmentIndex
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetTriggerTimeOffset64)
- (
- int16_t handle,
- int64_t *time,
- PS3000A_TIME_UNITS *timeUnits,
- uint32_t segmentIndex
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetValuesTriggerTimeOffsetBulk)
- (
- int16_t handle,
- uint32_t *timesUpper,
- uint32_t *timesLower,
- PS3000A_TIME_UNITS *timeUnits,
- uint32_t fromSegmentIndex,
- uint32_t toSegmentIndex
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetValuesTriggerTimeOffsetBulk64)
- (
- int16_t handle,
- int64_t *times,
- PS3000A_TIME_UNITS *timeUnits,
- uint32_t fromSegmentIndex,
- uint32_t toSegmentIndex
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetNoOfCaptures)
- (
- int16_t handle,
- uint32_t *nCaptures
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetNoOfProcessedCaptures)
- (
- int16_t handle,
- uint32_t *nProcessedCaptures
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetDataBuffer)
- (
- int16_t handle,
- PS3000A_CHANNEL channelOrPort,
- int16_t *buffer,
- int32_t bufferLth,
- uint32_t segmentIndex,
- PS3000A_RATIO_MODE mode
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetDataBuffers)
- (
- int16_t handle,
- PS3000A_CHANNEL channelOrPort,
- int16_t *bufferMax,
- int16_t *bufferMin,
- int32_t bufferLth,
- uint32_t segmentIndex,
- PS3000A_RATIO_MODE mode
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps3000aSetUnscaledDataBuffers)
- (
- int16_t handle,
- PS3000A_CHANNEL channelOrPort,
- int8_t *bufferMax,
- int8_t *bufferMin,
- int32_t bufferLth,
- uint32_t segmentIndex,
- PS3000A_RATIO_MODE mode
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetEtsTimeBuffer)
- (
- int16_t handle,
- int64_t *buffer,
- int32_t bufferLth
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aSetEtsTimeBuffers)
- (
- int16_t handle,
- uint32_t *timeUpper,
- uint32_t *timeLower,
- int32_t bufferLth
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aIsReady)
- (
- int16_t handle,
- int16_t *ready
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aRunBlock)
- (
- int16_t handle,
- int32_t noOfPreTriggerSamples,
- int32_t noOfPostTriggerSamples,
- uint32_t timebase,
- int16_t oversample,
- int32_t *timeIndisposedMs,
- uint32_t segmentIndex,
- ps3000aBlockReady lpReady,
- void *pParameter
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aRunStreaming)
- (
- int16_t handle,
- uint32_t *sampleInterval,
- PS3000A_TIME_UNITS sampleIntervalTimeUnits,
- uint32_t maxPreTriggerSamples,
- uint32_t maxPostPreTriggerSamples,
- int16_t autoStop,
- uint32_t downSampleRatio,
- PS3000A_RATIO_MODE downSampleRatioMode,
- uint32_t overviewBufferSize
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetStreamingLatestValues)
- (
- int16_t handle,
- ps3000aStreamingReady lpPs3000aReady,
- void *pParameter
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aNoOfStreamingValues)
- (
- int16_t handle,
- uint32_t *noOfValues
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetMaxDownSampleRatio)
- (
- int16_t handle,
- uint32_t noOfUnaggreatedSamples,
- uint32_t *maxDownSampleRatio,
- PS3000A_RATIO_MODE downSampleRatioMode,
- uint32_t segmentIndex
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetValues)
- (
- int16_t handle,
- uint32_t startIndex,
- uint32_t *noOfSamples,
- uint32_t downSampleRatio,
- PS3000A_RATIO_MODE downSampleRatioMode,
- uint32_t segmentIndex,
- int16_t *overflow
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetValuesBulk)
- (
- int16_t handle,
- uint32_t *noOfSamples,
- uint32_t fromSegmentIndex,
- uint32_t toSegmentIndex,
- uint32_t downSampleRatio,
- PS3000A_RATIO_MODE downSampleRatioMode,
- int16_t *overflow
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetValuesAsync)
- (
- int16_t handle,
- uint32_t startIndex,
- uint32_t noOfSamples,
- uint32_t downSampleRatio,
- PS3000A_RATIO_MODE downSampleRatioMode,
- uint32_t segmentIndex,
- void *lpDataReady,
- void *pParameter
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetValuesOverlapped)
- (
- int16_t handle,
- uint32_t startIndex,
- uint32_t *noOfSamples,
- uint32_t downSampleRatio,
- PS3000A_RATIO_MODE downSampleRatioMode,
- uint32_t segmentIndex,
- int16_t *overflow
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetValuesOverlappedBulk)
- (
- int16_t handle,
- uint32_t startIndex,
- uint32_t *noOfSamples,
- uint32_t downSampleRatio,
- PS3000A_RATIO_MODE downSampleRatioMode,
- uint32_t fromSegmentIndex,
- uint32_t toSegmentIndex,
- int16_t *overflow
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetTriggerInfoBulk)
- (
- int16_t handle,
- PS3000A_TRIGGER_INFO * triggerInfo,
- uint32_t fromSegmentIndex,
- uint32_t toSegmentIndex
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aStop)
- (
- int16_t handle
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aHoldOff)
- (
- int16_t handle,
- uint64_t holdoff,
- PS3000A_HOLDOFF_TYPE type
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetChannelInformation)
- (
- int16_t handle,
- PS3000A_CHANNEL_INFO info,
- int32_t probe,
- int32_t *ranges,
- int32_t *length,
- int32_t channels
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aEnumerateUnits)
- (
- int16_t *count,
- int8_t *serials,
- int16_t *serialLth
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aPingUnit)
- (
- int16_t handle
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aMaximumValue)
- (
- int16_t handle,
- int16_t *value
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aMinimumValue)
- (
- int16_t handle,
- int16_t *value
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetAnalogueOffset)
- (
- int16_t handle,
- PS3000A_RANGE range,
- PS3000A_COUPLING coupling,
- float *maximumVoltage,
- float *minimumVoltage
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aGetMaxSegments)
- (
- int16_t handle,
- uint32_t *maxSegments
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aChangePowerSource)
- (
- int16_t handle,
- PICO_STATUS powerState
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3 (ps3000aCurrentPowerSource)
- (
- int16_t handle
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps3000aQueryOutputEdgeDetect)
- (
- int16_t handle,
- int16_t * state
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps3000aSetOutputEdgeDetect)
- (
- int16_t handle,
- int16_t state
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps3000aGetScalingValues)
- (
- int16_t handle,
- PS3000A_SCALING_FACTORS_VALUES *scalingValues,
- int16_t nChannels
- );
- PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps3000aCheckForUpdate)(int16_t handle,
- PICO_FIRMWARE_INFO* firmwareInfos,
- int16_t* nFirmwareInfos,
- uint16_t* updatesRequired);
- PREF0 PREF1 PICO_STATUS PREF2 PREF3(ps3000aStartFirmwareUpdate)(int16_t handle, PicoUpdateFirmwareProgress progress);
- #endif
|