Stop currently running DSP application
This function terminates model execution on MicroDAQ DSP core. It has to be called after DSP processing is done.
WARNING: TCP/IP protocol is used for data exchange in Ext mode - make sure that the mdaqDSPStop() is called after/during DSP execution, otherwise next mdaqDSPStart() call will fail!
mdaqDSPStop(); mdaqDSPStop(connection_id);
connection_id : Connection ID returned by mdaqOpen() (OPTIONAL)
// 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 result = mdaqDSPStart('fft_demo_scig\fft_demo.out', 1.0/FREQ); if result < 0 then abort; end // Register signal ID and signal size result = mdaqDSPSignal(1, 1); if result < 0 then disp("ERROR: unable to register signal"); abort; end first_time = 1; a = []; // Process data from DSP sample_count = FREQ/10; fig = figure("Figure_name","MicroDAQ FFT demo"); for i=1:(TIME*10) [result, s] = mdaqDSPSignalRead(sample_count); if result < 0 then disp("ERROR: unable to read signal data!"); abort; end 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 |