Starts DSP task
mdaqDSPStart(linkID); mdaqDSPStart();
Function starts executing appliation initialized by mdaqDSPInit() funciton on MicroDAQ DSP unit.
After DSP application is started (in Ext mode) it starts to send data to host and Scilab script can receive data with mdaqDSPRead() function. Through mdaqDSPWrite() function user can write data into DSP task (running DSP application) no matter if it's started in external or standalone mode.
linkID: Valid connection link id (optional)
Example 1: Using standard DSP API
// Script execution duration in seconds TIME = 20; // Model execution frequency in Hertz FREQ = 5000; // Build DSP binary from Xcos model mdaqDSPBuild(mdaqToolboxPath() + filesep() + "examples" + filesep() +"fft_demo.zcos"); // Start DSP application mdaqDSPInit('fft_demo_scig\fft_demo.out', FREQ, -1); mdaqDSPStart(); first_time = 1; a = []; s = []; // Process data from DSP sample_count = FREQ/10; fig = figure("Figure_name","MicroDAQ FFT demo"); for i=1:(TIME*10) s = mdaqDSPRead(1, 1, sample_count, 1); N=size(s,'*'); //number of samples s = s - mean(s);//cut DC y=fft(s'); f= FREQ*(0:(N/10))/N; //associated frequency vector n=size(f,'*'); if is_handle_valid(fig) then if first_time == 1 then clf(); plot(f,abs(y(1:n))); title("FFT", "fontsize", 3); xlabel("frequency [Hz]","fontsize", 3); first_time = 0; a = gca(); else a.children.children.data(:,2) = abs(y(1:n))'; end else break; end end // Stop DSP execution mdaqDSPStop(); // Close plot mprintf("\nFFT demo has been stopped."); if is_handle_valid(fig) then close(fig); end | ![]() | ![]() |
Example 2: Using DSP task API
// Script execution duration in seconds TIME = 20; // Model execution frequency in Hertz FREQ = 5000; // Build DSP binary from Xcos model mdaqDSPBuild(mdaqToolboxPath() + filesep() + "examples" + filesep() +"fft_demo.zcos"); // Create DSP task dsp = mdaqDSPTask(); // Start DSP application dsp.init('fft_demo_scig\fft_demo.out', FREQ, -1); dsp.start(); first_time = 1; a = []; s = []; // Process data from DSP sample_count = FREQ/10; fig = figure("Figure_name","MicroDAQ FFT demo"); for i=1:(TIME*10) s = dsp.read(1, 1, sample_count, 1); N=size(s,'*'); //number of samples s = s - mean(s);//cut DC y=fft(s'); f= FREQ*(0:(N/10))/N; //associated frequency vector n=size(f,'*'); if is_handle_valid(fig) then if first_time == 1 then clf(); plot(f,abs(y(1:n))); title("FFT", "fontsize", 3); xlabel("frequency [Hz]","fontsize", 3); first_time = 0; a = gca(); else a.children.children.data(:,2) = abs(y(1:n))'; end else break; end end // Stop DSP execution dsp.stop(); // Close plot mprintf("\nFFT demo has been stopped."); if is_handle_valid(fig) then close(fig); end | ![]() | ![]() |