Created
November 10, 2020 11:59
-
-
Save Hio-Been/5d113bad4d1a97f3ac39f30912bc9c18 to your computer and use it in GitHub Desktop.
Sample MATLAB script for real-time NI-DAQ data streaming (read only)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
acqDuration = 60*5; | |
fprintf('\nInitiating DAQ recording.. Max duration: [%03d minutes]\n', acqDuration); | |
samplingRate = 2000; | |
%% (1) Get DAQ | |
warning off; | |
nSmooth = 180; % for visualization | |
try; DAQs.in.session.stop; release( DAQs.in.session ); end | |
%% (2) DAQ INIT | |
try, DAQs.in.session.reset; end | |
DAQs = []; DAQs.in = []; | |
dev = daq.getDevices; | |
DAQs.in.devices = {dev(1).ID, dev(2).ID dev(3).ID}; | |
clear global; clear tempData; clear result; | |
tempData = []; | |
global tempData | |
DAQs.in.params.samplingRate = samplingRate; | |
DAQs.in.session = daq.createSession('ni'); | |
DAQs.in.session.DurationInSeconds = acqDuration; | |
DAQs.in.session.Rate = DAQs.in.params.samplingRate; | |
DAQs.in.params.acqDuration = acqDuration; | |
addAnalogInputChannel(DAQs.in.session,DAQs.in.devices{1},'ai0','Voltage'); | |
addAnalogInputChannel(DAQs.in.session,DAQs.in.devices{1},'ai1','Voltage'); | |
addAnalogInputChannel(DAQs.in.session,DAQs.in.devices{1},'ai2','Voltage'); | |
addAnalogInputChannel(DAQs.in.session,DAQs.in.devices{1},'ai3','Voltage'); | |
addAnalogInputChannel(DAQs.in.session,DAQs.in.devices{2},'ai0','Voltage'); | |
addAnalogInputChannel(DAQs.in.session,DAQs.in.devices{2},'ai1','Voltage'); | |
addAnalogInputChannel(DAQs.in.session,DAQs.in.devices{2},'ai2','Voltage'); | |
addAnalogInputChannel(DAQs.in.session,DAQs.in.devices{2},'ai3','Voltage'); | |
addAnalogInputChannel(DAQs.in.session,DAQs.in.devices{3},'ai0','Voltage'); | |
addAnalogInputChannel(DAQs.in.session,DAQs.in.devices{3},'ai1','Voltage'); | |
DAQs.in.listner.handle = DAQs.in.session.addlistener('DataAvailable',@getData); | |
DAQs.in.listner.channelList = [ 1 2 3 4 5 6 7 8 9 10 ]; | |
scale=.5; | |
%% (3) Start Recording | |
try, DAQs.in.session.stop; release( DAQs.in.session ); end | |
DAQs.in.session.startBackground; | |
disp(sprintf('Recording started!')); | |
%% (4) Display datasize (Change this part) | |
for ij =1:10 | |
pause(1) | |
size(tempData) | |
end | |
%% function getData | |
function getData(src,event) | |
global tempData; | |
if (isempty(tempData)), tempData = []; end | |
tempData = [tempData; event.Data]; | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment