Skip to content

Stream Data with APIStreamer

Stream multi-channel data directly from the APIStreamer gizmo running on the hardware
Good for visualization and online analysis

Download M File

Download Experiment File

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);
APIStreamer on
Resetting APIStreamer
16 channels in 1600000 sample buffer at 6103.515625 Hz
APIStreamer off

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
new data:    1000 samples
new data:    1000 samples
new data:    1000 samples
new data:    1000 samples
new data:    1000 samples
new data:    1000 samples
new data:    1000 samples
new data:    1000 samples
new data:    1000 samples
new data:    1000 samples
new data:    1000 samples
APIStreamer off

Runtime Output