PicoScope 7 Software
Available on Windows, Mac and Linux
Code: Select all
overviewBufferSize = 250000; % Size of the buffer(s) to collect data from the driver's buffer(s).
segmentIndex = 0;
ratioMode = ps4000aEnuminfo.enPS4000ARatioMode.PS4000A_RATIO_MODE_NONE;
pDriverBufferChA = libpointer('int16Ptr', zeros(overviewBufferSize, 1, 'int16'));
status.setDataBufferChA = invoke(ps4000aDeviceObj, 'ps4000aSetDataBuffer', ...
chA, pDriverBufferChA, overviewBufferSize, segmentIndex, ratioMode);
pAppBufferChA = libpointer('int16Ptr', zeros(overviewBufferSize, 1));
% Register application buffer and driver buffers (with the wrapper driver).
status.setAppAndDriverBuffersA = invoke(streamingGroupObj, 'setAppAndDriverBuffers', chA, ...
pAppBufferChA, pDriverBufferChA, overviewBufferSize);
Code: Select all
[numSamples, overflow, chA] = invoke(rapidBlockGroupObj, 'ps4000aGetValuesBulk', 20000, 0, 1, 1, 0);
Code: Select all
ps4000aGetValuesBulk:- Status code: 70. Please refer to the PicoStatus.m file.
Code: Select all
% Set Memory Segments
nSegments = 2;
[status.memorySegments, nMaxSamples] = invoke(ps4000aDeviceObj, 'ps4000aMemorySegments', nSegments);
% nCaptures : 1 1 capture per segment
numCaptures = 1;
[status.setNoOfCaptures] = invoke(rapidBlockGroupObj, 'ps4000aSetNoOfCaptures', numCaptures);
%set buffers
overviewBufferSize = 250000; % Size of the buffer(s) to collect data from the driver's buffer(s).
segmentIndex = 0;
ratioMode = ps4000aEnuminfo.enPS4000ARatioMode.PS4000A_RATIO_MODE_NONE;
% buffer for segment 0
pDriverBufferChA = libpointer('int16Ptr', zeros(overviewBufferSize, 1, 'int16'));
status.setDataBufferChA = invoke(ps4000aDeviceObj, 'ps4000aSetDataBuffer', ...
chA, pDriverBufferChA, overviewBufferSize, segmentIndex, ratioMode);
% buffer for segment 1
pDriverBufferChA1 = libpointer('int16Ptr', zeros(10000,1));
status.setDataBufferChA1 = invoke(ps4000aDeviceObj, 'ps4000aSetDataBuffer', ...
chA, pDriverBufferChA1, overviewBufferSize, 1, ratioMode);
% Capture the blocks of data
% segmentIndex : 0
[status.ps4000aRunBlock, timeIndisposedMs] = invoke(blockGroupObj, 'ps4000aRunBlock', 0);
pause(1) %while waveform changes
% segmentIndex : 1
[status.ps4000aRunBlock, timeIndisposedMs] = invoke(blockGroupObj, 'ps4000aRunBlock', 1);
pause(1)
[nCaptures] = invoke(rapidBlockGroupObj ,'ps4000aGetNoOfCaptures')
%Transfer from the pico to matlab
noOfSamples = 20000;
fromSegmentIndex = 0;
toSegmentIndex = 1;
downSampleRatio = 1;
downSampleRatioMode = 0;
[numSamples, overflow, chA] = invoke(rapidBlockGroupObj, 'ps4000aGetValuesBulk', noOfSamples, ...
fromSegmentIndex, toSegmentIndex, downSampleRatio, downSampleRatioMode);
Code: Select all
[nCaptures] = invoke(rapidBlockGroupObj ,'ps4000aGetNoOfCaptures')