MATLAB: Generate Continuous Analog Output Using NI Card

analog outputnational instrumentsni

Hello,
I am trying to generate continuous analog output using an NI card (NI USB-6343). The frequency of the analog output will be updated based on an algorithm and other input data. However, I am struggling with a more basic step and for now, I would just like to generate a continuous voltage signal using data called from a function (queueMoreData.m). My code:
daq.reset
daq.HardwareInfo.getInstance('DisableReferenceClockSynchronization',true); % This is to overcome a different issue
d = daq.getDevices;
s = daq.createSession('ni');
ch = addAnalogOutputChannel(s,'Dev1','ao0','Voltage');
lh = addlistener(s, 'DataRequired', @queueMoreData);
s.IsContinuous = true;
queueOutputData(s,linspace(-1, 1, 1000)');
startBackground(s);
Which calls the function queueMoreData.m
function queueMoreData(src,event)
queueOutputData(s, linspace(-1, 1, 1000)');
end
But I get the following error:
_Warning: Error occurred while executing callback: Undefined function or variable 's'.
Error in queueMoreData (line 3) queueOutputData(s,linspace(-1, 1, 1000)');
Error in daq.internal.BaseClass/notify (line 91) obj.notify@handle(varargin{:});_
Etc Etc Etc
Any help would be very much appreciated!

Best Answer

In your callback change the reference from s to src
Related Question