Code covered by the BSD License  

Highlights from
PicoScope® 3000 Series - MATLAB® Generic Instrument Driver

image thumbnail
from PicoScope® 3000 Series - MATLAB® Generic Instrument Driver by Pico Technology
MATLAB Instrument Driver for use with PicoScope 3000A/B oscilloscopes

[methodinfo,structs,enuminfo,ThunkLibName]=PS3000aMFile
function [methodinfo,structs,enuminfo,ThunkLibName]=PS3000aMFile
%PS3000AMFILE Create structures to define interfaces found in 'ps3000aApi'.

%This function was generated by loadlibrary.m parser version 1.1.6.36 on Fri Jul  6 16:58:13 2012
%perl options:'ps3000aApi.i -outfile=PS3000aMFile.m'
ival={cell(1,0)}; % change 0 to the actual number of functions to preallocate the data.
structs=[];enuminfo=[];fcnNum=1;
fcns=struct('name',ival,'calltype',ival,'LHS',ival,'RHS',ival,'alias',ival);
ThunkLibName=[];
% PICO_STATUS _stdcall ps3000aOpenUnit ( short * handle , char * serial ); 
fcns.name{fcnNum}='ps3000aOpenUnit'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16Ptr', 'cstring'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aOpenUnitAsync ( short * status , char * serial ); 
fcns.name{fcnNum}='ps3000aOpenUnitAsync'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16Ptr', 'cstring'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aOpenUnitProgress ( short * handle , short * progressPercent , short * complete ); 
fcns.name{fcnNum}='ps3000aOpenUnitProgress'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16Ptr', 'int16Ptr', 'int16Ptr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetUnitInfo ( short handle , char * string , short stringLength , short * requiredSize , PICO_INFO info ); 
fcns.name{fcnNum}='ps3000aGetUnitInfo'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'cstring', 'int16', 'int16Ptr', 'ulong'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aFlashLed ( short handle , short start ); 
fcns.name{fcnNum}='ps3000aFlashLed'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'int16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aCloseUnit ( short handle ); 
fcns.name{fcnNum}='ps3000aCloseUnit'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aMemorySegments ( short handle , unsigned short nSegments , long * nMaxSamples ); 
fcns.name{fcnNum}='ps3000aMemorySegments'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'uint16', 'longPtr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSetChannel ( short handle , PS3000A_CHANNEL channel , short enabled , PS3000A_COUPLING type , PS3000A_RANGE range , float analogOffset ); 
fcns.name{fcnNum}='ps3000aSetChannel'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'enPS3000AChannel', 'int16', 'enPS3000ACoupling', 'enPS3000ARange', 'single'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSetBandwidthFilter ( short handle , PS3000A_CHANNEL channel , PS3000A_BANDWIDTH_LIMITER bandwidth ); 
fcns.name{fcnNum}='ps3000aSetBandwidthFilter'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'enPS3000AChannel', 'enPS3000ABandwidthLimiter'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSetNoOfCaptures ( short handle , unsigned short nCaptures ); 
fcns.name{fcnNum}='ps3000aSetNoOfCaptures'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'uint16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetTimebase ( short handle , unsigned long timebase , long noSamples , long * timeIntervalNanoseconds , short oversample , long * maxSamples , unsigned short segmentIndex ); 
fcns.name{fcnNum}='ps3000aGetTimebase'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulong', 'long', 'longPtr', 'int16', 'longPtr', 'uint16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetTimebase2 ( short handle , unsigned long timebase , long noSamples , float * timeIntervalNanoseconds , short oversample , long * maxSamples , unsigned short segmentIndex ); 
fcns.name{fcnNum}='ps3000aGetTimebase2'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulong', 'long', 'singlePtr', 'int16', 'longPtr', 'uint16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSetSigGenArbitrary ( short handle , long offsetVoltage , unsigned long pkToPk , unsigned long startDeltaPhase , unsigned long stopDeltaPhase , unsigned long deltaPhaseIncrement , unsigned long dwellCount , short * arbitraryWaveform , long arbitraryWaveformSize , PS3000A_SWEEP_TYPE sweepType , PS3000A_EXTRA_OPERATIONS operation , PS3000A_INDEX_MODE indexMode , unsigned long shots , unsigned long sweeps , PS3000A_SIGGEN_TRIG_TYPE triggerType , PS3000A_SIGGEN_TRIG_SOURCE triggerSource , short extInThreshold ); 
fcns.name{fcnNum}='ps3000aSetSigGenArbitrary'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'long', 'ulong', 'ulong', 'ulong', 'ulong', 'ulong', 'int16Ptr', 'long', 'enPS3000ASweepType', 'enPS3000AExtraOperations', 'enPS3000AIndexMode', 'ulong', 'ulong', 'enPS3000ASigGenTrigType', 'enPS3000ASigGenTrigSource', 'int16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSetSigGenBuiltIn ( short handle , long offsetVoltage , unsigned long pkToPk , short waveType , float startFrequency , float stopFrequency , float increment , float dwellTime , PS3000A_SWEEP_TYPE sweepType , PS3000A_EXTRA_OPERATIONS operation , unsigned long shots , unsigned long sweeps , PS3000A_SIGGEN_TRIG_TYPE triggerType , PS3000A_SIGGEN_TRIG_SOURCE triggerSource , short extInThreshold ); 
fcns.name{fcnNum}='ps3000aSetSigGenBuiltIn'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'long', 'ulong', 'int16', 'single', 'single', 'single', 'single', 'enPS3000ASweepType', 'enPS3000AExtraOperations', 'ulong', 'ulong', 'enPS3000ASigGenTrigType', 'enPS3000ASigGenTrigSource', 'int16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSigGenSoftwareControl ( short handle , short state ); 
fcns.name{fcnNum}='ps3000aSigGenSoftwareControl'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'int16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSetEts ( short handle , PS3000A_ETS_MODE mode , short etsCycles , short etsInterleave , long * sampleTimePicoseconds ); 
fcns.name{fcnNum}='ps3000aSetEts'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'enPS3000AEtsMode', 'int16', 'int16', 'longPtr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSetSimpleTrigger ( short handle , short enable , PS3000A_CHANNEL source , short threshold , PS3000A_THRESHOLD_DIRECTION direction , unsigned long delay , short autoTrigger_ms ); 
fcns.name{fcnNum}='ps3000aSetSimpleTrigger'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'int16', 'enPS3000AChannel', 'int16', 'enPS3000AThresholdDirection', 'ulong', 'int16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSetTriggerChannelProperties ( short handle , PS3000A_TRIGGER_CHANNEL_PROPERTIES * channelProperties , short nChannelProperties , short auxOutputEnable , long autoTriggerMilliseconds ); 
fcns.name{fcnNum}='ps3000aSetTriggerChannelProperties'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'tPS3000ATriggerChannelPropertiesPtr', 'int16', 'int16', 'long'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSetTriggerChannelConditions ( short handle , PS3000A_TRIGGER_CONDITIONS * conditions , short nConditions ); 
fcns.name{fcnNum}='ps3000aSetTriggerChannelConditions'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'tPS3000ATriggerConditionsPtr', 'int16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSetTriggerChannelDirections ( short 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 ); 
fcns.name{fcnNum}='ps3000aSetTriggerChannelDirections'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'enPS3000AThresholdDirection', 'enPS3000AThresholdDirection', 'enPS3000AThresholdDirection', 'enPS3000AThresholdDirection', 'enPS3000AThresholdDirection', 'enPS3000AThresholdDirection'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSetTriggerDelay ( short handle , unsigned long delay ); 
fcns.name{fcnNum}='ps3000aSetTriggerDelay'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulong'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSetPulseWidthQualifier ( short handle , PS3000A_PWQ_CONDITIONS * conditions , short nConditions , PS3000A_THRESHOLD_DIRECTION direction , unsigned long lower , unsigned long upper , PS3000A_PULSE_WIDTH_TYPE type ); 
fcns.name{fcnNum}='ps3000aSetPulseWidthQualifier'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'tPS3000APwqConditionsPtr', 'int16', 'enPS3000AThresholdDirection', 'ulong', 'ulong', 'enPS3000APulseWidthType'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aIsTriggerOrPulseWidthQualifierEnabled ( short handle , short * triggerEnabled , short * pulseWidthQualifierEnabled ); 
fcns.name{fcnNum}='ps3000aIsTriggerOrPulseWidthQualifierEnabled'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'int16Ptr', 'int16Ptr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetTriggerTimeOffset ( short handle , unsigned long * timeUpper , unsigned long * timeLower , PS3000A_TIME_UNITS * timeUnits , unsigned short segmentIndex ); 
fcns.name{fcnNum}='ps3000aGetTriggerTimeOffset'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulongPtr', 'ulongPtr', 'enPS3000ATimeUnitsPtr', 'uint16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetTriggerTimeOffset64 ( short handle , long long * time , PS3000A_TIME_UNITS * timeUnits , unsigned short segmentIndex ); 
fcns.name{fcnNum}='ps3000aGetTriggerTimeOffset64'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'int64Ptr', 'enPS3000ATimeUnitsPtr', 'uint16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetValuesTriggerTimeOffsetBulk ( short handle , unsigned long * timesUpper , unsigned long * timesLower , PS3000A_TIME_UNITS * timeUnits , unsigned short fromSegmentIndex , unsigned short toSegmentIndex ); 
fcns.name{fcnNum}='ps3000aGetValuesTriggerTimeOffsetBulk'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulongPtr', 'ulongPtr', 'enPS3000ATimeUnitsPtr', 'uint16', 'uint16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetValuesTriggerTimeOffsetBulk64 ( short handle , long long * times , PS3000A_TIME_UNITS * timeUnits , unsigned short fromSegmentIndex , unsigned short toSegmentIndex ); 
fcns.name{fcnNum}='ps3000aGetValuesTriggerTimeOffsetBulk64'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'int64Ptr', 'enPS3000ATimeUnitsPtr', 'uint16', 'uint16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetNoOfCaptures ( short handle , unsigned long * nCaptures ); 
fcns.name{fcnNum}='ps3000aGetNoOfCaptures'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulongPtr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetNoOfProcessedCaptures ( short handle , unsigned long * nProcessedCaptures ); 
fcns.name{fcnNum}='ps3000aGetNoOfProcessedCaptures'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulongPtr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSetDataBuffer ( short handle , PS3000A_CHANNEL channel , short * buffer , long bufferLth , unsigned short segmentIndex , PS3000A_RATIO_MODE mode ); 
fcns.name{fcnNum}='ps3000aSetDataBuffer'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'enPS3000AChannel', 'int16Ptr', 'long', 'uint16', 'enPS3000ARatioMode'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSetDataBuffers ( short handle , PS3000A_CHANNEL channel , short * bufferMax , short * bufferMin , long bufferLth , unsigned short segmentIndex , PS3000A_RATIO_MODE mode ); 
fcns.name{fcnNum}='ps3000aSetDataBuffers'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'enPS3000AChannel', 'int16Ptr', 'int16Ptr', 'long', 'uint16', 'enPS3000ARatioMode'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSetEtsTimeBuffer ( short handle , long long * buffer , long bufferLth ); 
fcns.name{fcnNum}='ps3000aSetEtsTimeBuffer'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'int64Ptr', 'long'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aSetEtsTimeBuffers ( short handle , unsigned long * timeUpper , unsigned long * timeLower , long bufferLth ); 
fcns.name{fcnNum}='ps3000aSetEtsTimeBuffers'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulongPtr', 'ulongPtr', 'long'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aIsReady ( short handle , short * ready ); 
fcns.name{fcnNum}='ps3000aIsReady'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'int16Ptr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aRunBlock ( short handle , long noOfPreTriggerSamples , long noOfPostTriggerSamples , unsigned long timebase , short oversample , long * timeIndisposedMs , unsigned short segmentIndex , ps3000aBlockReady lpReady , void * pParameter ); 
fcns.name{fcnNum}='ps3000aRunBlock'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'long', 'long', 'ulong', 'int16', 'longPtr', 'uint16', 'FcnPtr', 'voidPtr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aRunStreaming ( short handle , unsigned long * sampleInterval , PS3000A_TIME_UNITS sampleIntervalTimeUnits , unsigned long maxPreTriggerSamples , unsigned long maxPostPreTriggerSamples , short autoStop , unsigned long downSampleRatio , PS3000A_RATIO_MODE downSampleRatioMode , unsigned long overviewBufferSize ); 
fcns.name{fcnNum}='ps3000aRunStreaming'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulongPtr', 'enPS3000ATimeUnits', 'ulong', 'ulong', 'int16', 'ulong', 'enPS3000ARatioMode', 'ulong'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetStreamingLatestValues ( short handle , ps3000aStreamingReady lpPs3000aReady , void * pParameter ); 
fcns.name{fcnNum}='ps3000aGetStreamingLatestValues'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'FcnPtr', 'voidPtr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aNoOfStreamingValues ( short handle , unsigned long * noOfValues ); 
fcns.name{fcnNum}='ps3000aNoOfStreamingValues'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulongPtr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetMaxDownSampleRatio ( short handle , unsigned long noOfUnaggreatedSamples , unsigned long * maxDownSampleRatio , PS3000A_RATIO_MODE downSampleRatioMode , unsigned short segmentIndex ); 
fcns.name{fcnNum}='ps3000aGetMaxDownSampleRatio'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulong', 'ulongPtr', 'enPS3000ARatioMode', 'uint16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetValues ( short handle , unsigned long startIndex , unsigned long * noOfSamples , unsigned long downSampleRatio , PS3000A_RATIO_MODE downSampleRatioMode , unsigned short segmentIndex , short * overflow ); 
fcns.name{fcnNum}='ps3000aGetValues'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulong', 'ulongPtr', 'ulong', 'enPS3000ARatioMode', 'uint16', 'int16Ptr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetValuesBulk ( short handle , unsigned long * noOfSamples , unsigned short fromSegmentIndex , unsigned short toSegmentIndex , unsigned long downSampleRatio , PS3000A_RATIO_MODE downSampleRatioMode , short * overflow ); 
fcns.name{fcnNum}='ps3000aGetValuesBulk'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulongPtr', 'uint16', 'uint16', 'ulong', 'enPS3000ARatioMode', 'int16Ptr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetValuesAsync ( short handle , unsigned long startIndex , unsigned long noOfSamples , unsigned long downSampleRatio , short downSampleRatioMode , unsigned short segmentIndex , void * lpDataReady , void * pParameter ); 
fcns.name{fcnNum}='ps3000aGetValuesAsync'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulong', 'ulong', 'ulong', 'int16', 'uint16', 'voidPtr', 'voidPtr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetValuesOverlapped ( short handle , unsigned long startIndex , unsigned long * noOfSamples , unsigned long downSampleRatio , PS3000A_RATIO_MODE downSampleRatioMode , unsigned short segmentIndex , short * overflow ); 
fcns.name{fcnNum}='ps3000aGetValuesOverlapped'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulong', 'ulongPtr', 'ulong', 'enPS3000ARatioMode', 'uint16', 'int16Ptr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetValuesOverlappedBulk ( short handle , unsigned long startIndex , unsigned long * noOfSamples , unsigned long downSampleRatio , PS3000A_RATIO_MODE downSampleRatioMode , unsigned short fromSegmentIndex , unsigned short toSegmentIndex , short * overflow ); 
fcns.name{fcnNum}='ps3000aGetValuesOverlappedBulk'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulong', 'ulongPtr', 'ulong', 'enPS3000ARatioMode', 'uint16', 'uint16', 'int16Ptr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aStop ( short handle ); 
fcns.name{fcnNum}='ps3000aStop'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aHoldOff ( short handle , u_int64_t holdoff , PS3000A_HOLDOFF_TYPE type ); 
fcns.name{fcnNum}='ps3000aHoldOff'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'uint64', 'enPS3000AHoldOffType'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetChannelInformation ( short handle , PS3000A_CHANNEL_INFO info , int probe , int * ranges , int * length , int channels ); 
fcns.name{fcnNum}='ps3000aGetChannelInformation'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'enPS3000AChannelInfo', 'int32', 'int32Ptr', 'int32Ptr', 'int32'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aEnumerateUnits ( short * count , char * serials , short * serialLth ); 
fcns.name{fcnNum}='ps3000aEnumerateUnits'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16Ptr', 'cstring', 'int16Ptr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aPingUnit ( short handle ); 
fcns.name{fcnNum}='ps3000aPingUnit'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aMaximumValue ( short handle , short * value ); 
fcns.name{fcnNum}='ps3000aMaximumValue'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'int16Ptr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aMinimumValue ( short handle , short * value ); 
fcns.name{fcnNum}='ps3000aMinimumValue'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'int16Ptr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetAnalogueOffset ( short handle , PS3000A_RANGE range , PS3000A_COUPLING coupling , float * maximumVoltage , float * minimumVoltage ); 
fcns.name{fcnNum}='ps3000aGetAnalogueOffset'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'enPS3000ARange', 'enPS3000ACoupling', 'singlePtr', 'singlePtr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aGetMaxSegments ( short handle , unsigned short * maxSegments ); 
fcns.name{fcnNum}='ps3000aGetMaxSegments'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'uint16Ptr'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aChangePowerSource ( short handle , PICO_STATUS powerState ); 
fcns.name{fcnNum}='ps3000aChangePowerSource'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16', 'ulong'};fcnNum=fcnNum+1;
% PICO_STATUS _stdcall ps3000aCurrentPowerSource ( short handle ); 
fcns.name{fcnNum}='ps3000aCurrentPowerSource'; fcns.calltype{fcnNum}='stdcall'; fcns.LHS{fcnNum}='ulong'; fcns.RHS{fcnNum}={'int16'};fcnNum=fcnNum+1;
structs.tPS3000ATriggerConditions.packing=1;
structs.tPS3000ATriggerConditions.members=struct('channelA', 'enPS3000ATriggerState', 'channelB', 'enPS3000ATriggerState', 'channelC', 'enPS3000ATriggerState', 'channelD', 'enPS3000ATriggerState', 'external', 'enPS3000ATriggerState', 'aux', 'enPS3000ATriggerState', 'pulseWidthQualifier', 'enPS3000ATriggerState');
structs.tPS3000APwqConditions.packing=1;
structs.tPS3000APwqConditions.members=struct('channelA', 'enPS3000ATriggerState', 'channelB', 'enPS3000ATriggerState', 'channelC', 'enPS3000ATriggerState', 'channelD', 'enPS3000ATriggerState', 'external', 'enPS3000ATriggerState', 'aux', 'enPS3000ATriggerState');
structs.tPS3000ATriggerChannelProperties.packing=1;
structs.tPS3000ATriggerChannelProperties.members=struct('thresholdUpper', 'int16', 'thresholdUpperHysteresis', 'uint16', 'thresholdLower', 'int16', 'thresholdLowerHysteresis', 'uint16', 'channel', 'enPS3000AChannel', 'thresholdMode', 'enPS3000A_ThresholdMode');
enuminfo.enPS3000ASweepType=struct('PS3000A_UP',0,'PS3000A_DOWN',1,'PS3000A_UPDOWN',2,'PS3000A_DOWNUP',3,'PS3000A_MAX_SWEEP_TYPES',4);
enuminfo.enPS3000ARatioMode=struct('PS3000A_RATIO_MODE_NONE',0,'PS3000A_RATIO_MODE_AGGREGATE',1,'PS3000A_RATIO_MODE_DECIMATE',2,'PS3000A_RATIO_MODE_AVERAGE',4);
enuminfo.enPS3000ATimeUnits=struct('PS3000A_FS',0,'PS3000A_PS',1,'PS3000A_NS',2,'PS3000A_US',3,'PS3000A_MS',4,'PS3000A_S',5,'PS3000A_MAX_TIME_UNITS',6);
enuminfo.enPS3000AChannelBufferIndex=struct('PS3000A_CHANNEL_A_MAX',0,'PS3000A_CHANNEL_A_MIN',1,'PS3000A_CHANNEL_B_MAX',2,'PS3000A_CHANNEL_B_MIN',3,'PS3000A_CHANNEL_C_MAX',4,'PS3000A_CHANNEL_C_MIN',5,'PS3000A_CHANNEL_D_MAX',6,'PS3000A_CHANNEL_D_MIN',7,'PS3000A_MAX_CHANNEL_BUFFERS',8);
enuminfo.enPS3000ASigGenTrigSource=struct('PS3000A_SIGGEN_NONE',0,'PS3000A_SIGGEN_SCOPE_TRIG',1,'PS3000A_SIGGEN_AUX_IN',2,'PS3000A_SIGGEN_EXT_IN',3,'PS3000A_SIGGEN_SOFT_TRIG',4);
enuminfo.enPS3000AWaveType=struct('PS3000A_SINE',0,'PS3000A_SQUARE',1,'PS3000A_TRIANGLE',2,'PS3000A_RAMP_UP',3,'PS3000A_RAMP_DOWN',4,'PS3000A_SINC',5,'PS3000A_GAUSSIAN',6,'PS3000A_HALF_SINE',7,'PS3000A_DC_VOLTAGE',8,'PS3000A_MAX_WAVE_TYPES',9);
enuminfo.enPS3000AChannelInfo=struct('PS3000A_CI_RANGES',0);
enuminfo.enPS3000ATriggerState=struct('PS3000A_CONDITION_DONT_CARE',0,'PS3000A_CONDITION_TRUE',1,'PS3000A_CONDITION_FALSE',2,'PS3000A_CONDITION_MAX',3);
enuminfo.enPS3000AThresholdDirection=struct('PS3000A_ABOVE',0,'PS3000A_BELOW',1,'PS3000A_RISING',2,'PS3000A_FALLING',3,'PS3000A_RISING_OR_FALLING',4,'PS3000A_ABOVE_LOWER',5,'PS3000A_BELOW_LOWER',6,'PS3000A_RISING_LOWER',7,'PS3000A_FALLING_LOWER',8,'PS3000A_INSIDE',0,'PS3000A_OUTSIDE',1,'PS3000A_ENTER',2,'PS3000A_EXIT',3,'PS3000A_ENTER_OR_EXIT',4,'PS3000A_POSITIVE_RUNT',9,'PS3000A_NEGATIVE_RUNT',10,'PS3000A_NONE',2);
enuminfo.enPS3000APulseWidthType=struct('PS3000A_PW_TYPE_NONE',0,'PS3000A_PW_TYPE_LESS_THAN',1,'PS3000A_PW_TYPE_GREATER_THAN',2,'PS3000A_PW_TYPE_IN_RANGE',3,'PS3000A_PW_TYPE_OUT_OF_RANGE',4);
enuminfo.enPS3000ASigGenTrigType=struct('PS3000A_SIGGEN_RISING',0,'PS3000A_SIGGEN_FALLING',1,'PS3000A_SIGGEN_GATE_HIGH',2,'PS3000A_SIGGEN_GATE_LOW',3);
enuminfo.enPS3000ABandwidthLimiter=struct('PS3000A_BW_FULL',0,'PS3000A_BW_20MHZ',1);
enuminfo.enPS3000AChannel=struct('PS3000A_CHANNEL_A',0,'PS3000A_CHANNEL_B',1,'PS3000A_CHANNEL_C',2,'PS3000A_CHANNEL_D',3,'PS3000A_EXTERNAL',4,'PS3000A_MAX_CHANNELS',4,'PS3000A_TRIGGER_AUX',5,'PS3000A_MAX_TRIGGER_SOURCES',6);
enuminfo.enPS3000ACoupling=struct('PS3000A_AC',0,'PS3000A_DC',1);
enuminfo.enPS3000AIndexMode=struct('PS3000A_SINGLE',0,'PS3000A_DUAL',1,'PS3000A_QUAD',2,'PS3000A_MAX_INDEX_MODES',3);
enuminfo.enPS3000AHoldOffType=struct('PS3000A_TIME',0,'PS3000A_EVENT',1,'PS3000A_MAX_HOLDOFF_TYPE',2);
enuminfo.enPS3000ARange=struct('PS3000A_10MV',0,'PS3000A_20MV',1,'PS3000A_50MV',2,'PS3000A_100MV',3,'PS3000A_200MV',4,'PS3000A_500MV',5,'PS3000A_1V',6,'PS3000A_2V',7,'PS3000A_5V',8,'PS3000A_10V',9,'PS3000A_20V',10,'PS3000A_50V',11,'PS3000A_MAX_RANGES',12);
enuminfo.enPS3000AEtsMode=struct('PS3000A_ETS_OFF',0,'PS3000A_ETS_FAST',1,'PS3000A_ETS_SLOW',2,'PS3000A_ETS_MODES_MAX',3);
enuminfo.enPS3000AExtraOperations=struct('PS3000A_ES_OFF',0,'PS3000A_WHITENOISE',1,'PS3000A_PRBS',2);
enuminfo.enPS3000A_ThresholdMode=struct('PS3000A_LEVEL',0,'PS3000A_WINDOW',1);
methodinfo=fcns;

Contact us