%% Stream Data with APIStreamer
%
%
% Stream multi-channel data directly from the APIStreamer gizmo running on
% the hardware
% Good for visualization and online analysis
%
%% Housekeeping
% Clear workspace and close existing figures. Add SDK directories to MATLAB
% path.
close all; clc;
[MAINEXAMPLEPATH,name,ext] = fileparts(cd); % \TDTMatlabSDK\Examples
[SDKPATH,name,ext] = fileparts(MAINEXAMPLEPATH); % \TDTMatlabSDK
addpath(genpath(SDKPATH));
%% Variable Setup
% load and run demo experiment
syn = SynapseAPI('localhost');
if syn.setCurrentExperiment('APIStreamerMCDemo') == 0
error('trouble loading experiment');
end
syn.setModeStr('Preview');
%%
% Setup APIStreamer
s = APIStreamer('GIZMO', 'APIStreamerMC1', 'HISTORY', 1, 'CALLBACK', @my_api_callback);
%% The Main Loop
while 1
[data, ts] = s.get_data();
plot(ts, data);
axis tight; xlabel('time, s'); ylabel('V')
% force the plots to update
try
snapnow
catch
drawnow
end
% for publishing, end early
if max(ts) > 30
s.stop()
syn.setModeStr('Idle'); % set to idle mode
break
end
end