Test and Measurement Forum

Plotting graph from the data

Post your MATLAB discussions here

Plotting graph from the data

Postby phunzaixian » Wed Nov 21, 2012 3:27 am

Hi,

My code is able to stream the data from the picolog series and I would like to plot a graph based on the data streamed.
(Not after all the data collected but for each data collected it will start to plot the point)

Code: Select all
clc;clear;
pause on;

%---------- Load PicoLog 1000 series Library ----------%
%loadlibrary('PL1000.dll','pl1000Api.h');
loadlibrary 'PL1000.dll' 'pl1000Api.h' addheader 'picoStatus.h';
if ~libisloaded('PL1000')
    error('Library pl1000.dll or pl1000Api.h not found') %Check if library file loaded
end

%------------ Define pointer and variables ------------%
handle       = libpointer('int16Ptr',zeros(1,1));  % short handle
string1      = '';
rSize1       = 20;
stringLength = 20;
BM_STREAM    = 2;

us_for_block       = 1000000; % Set for 1 second
ideal_no_of_sample = 1000;    % 1000 sample/second
no_of_value        = 1000;    % number of sample that should be captured
% nSampleCollected = libpointer('uint32Ptr',0); % for pl1000GetValues
nSampleCollected   = 1;
pbuffer1     = libpointer('uint16Ptr',zeros(1,1)); % buffer value
overflow     = 0;
trig         = 0;
channel      = 1; % is using channel 1
IsReady      = 0; % use for pl1000Ready
nline        = 0; % use for pl1000GetValues loop

%--------------------    Program    -------------------%
% -- Open and enumerate the unit --
[status_open, handle] = calllib('PL1000', 'pl1000OpenUnit', handle);
fprintf('Opening the device \n');

% -- Get information of the device --
[status_getVariant, string1, rSize1] = calllib('PL1000','pl1000GetUnitInfo', handle, string1, stringLength, rSize1, 3);
fprintf('%s \n',string1);

% -- Set trigger mode (disable) --
[status_trigger] = calllib('PL1000','pl1000SetTrigger', handle, 0,0,0,0,0,0,0,0);

% -- Set sampling mode (channel and time persample) --
% Set for 1000 sample every 1 second on channel 1
[status_interval] = calllib('PL1000','pl1000SetInterval',handle, us_for_block, ideal_no_of_sample, channel,1);
 
% -- Run --
% Set for 1000 samples (1000 sample/second) on streaming mode
[status_run] = calllib('PL1000','pl1000Run', handle, no_of_value, BM_STREAM);

% -- Is the device ready ? --
while IsReady == 0
        [status_ready, IsReady] = calllib('PL1000','pl1000Ready', handle, IsReady);
end
% -- If the device ready, get the values --
while nline ~= 100
% channel 1, number of samples should be collected   
[status_getValue, pbuffer1, nSamplePerChannel, overflow, trig ] = calllib('PL1000','pl1000GetValues', handle, pbuffer1, nSampleCollected, overflow, trig);
% Display the value in Matlab Command Window
fprintf('%d  C1= %f Overflow= %f\n',nline,pbuffer1,overflow);
nline = nline + 1;
% Delay for 1 second
pause(1);
end
pause off;

% -- Abort data collection --
[status_stop] = calllib('PL1000','pl1000Stop', handle);

%----------------   Unload the library  ---------------%
unloadlibrary ('PL1000');


I was told that the drawnow function in matlab would help me with the problem, could you elaborate more? Tq
phunzaixian
Newbie
 
Posts: 0
Joined: Thu Oct 25, 2012 2:27 am

Re: Plotting graph from the data

Postby Hitesh » Thu Nov 22, 2012 4:14 pm

Hi,

I'm also interested in how this would be implemented.

I've had a quick search and found the following:

http://www.mathworks.co.uk/matlabcentral/newsreader/view_thread/2739

http://www.mathworks.co.uk/matlabcentral/newsreader/view_thread/155564

http://www.mathworks.co.uk/matlabcentral/newsreader/view_thread/240065



Please note that Pico Technology is not responsible for the content of external web sites.
Hitesh

Technical Specialist
Pico Technology
Hitesh
Site Admin
Site Admin
 
Posts: 2060
Joined: Tue May 31, 2011 3:43 pm
Location: St. Neots, Cambridgeshire


Return to MATLAB

Who is online

Users browsing this forum: No registered users and 2 guests