Board: Matlab
Unser Board kann natürlich auch zusammen mit verschiedenen etablierten Entwicklungstools verwendet werden. Exemplarisch stellen wir auf dieser Seite dar, wie die Parametrierung und Dateninteraktion in Verbindung mit der Software Matlab umgesetzt werden kann. Bei Nutzung der Basisbibliothek zur Parametrierung und Dateninteraktion mit dem Deltaboard ist keine weitere Matlab Toolbox notwendig, da alle Schnittstellenzugriffe (USB, Ethernet) durch die Dll umgesetzt werden. Folgendes Codebeispiel zeigt, wie die Bibliothek in Matlab eingebunden wird und die Funktionen aufgerufen werden können. Wie in einer C# Applikation können die Funktionen sowohl statisch als auch objektorientiert verwendet werden.

Einbinden und Nutzen der Basisbibliothek brBaseDLL unter Windows
%load library with absolute path location dll = NET.addAssembly('C:\brBaseDLL.dll'); %list all methods of the c# class methods('brBaseDLL.brBase'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Examples for object-oriented methods % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %create instance with usb interface object = brBaseDLL.brBase('usb', false); %open interface object.OpenInterface(); %send heartbeat to user fpga object.ctrl_heartbeat('user') %read 65536 data bytes from usb interface in matlab array [bool, array] = object.stream_readData_array(65536) %close interface object.CloseInterface(); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Examples for static methods % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %send heartbeat to user fpga with ethernet interface brBaseDLL.brBase.ctrl_heartbeat('192.168.0.50', 'user', false) %read 4096 data bytes from ethernet interface in matlab array [bool, array] = brBaseDLL.brBase.stream_readData_array('192.168.0.50', 4096, false)
Die Dateninteraktion mit der USB- bzw. Netzwerkschnittstelle kann unabhängig der Basisbibliothek brBaseDLL auch über die Verwendung der entsprechenden Matlab Toolboxen erfolgen. Folgendes Beispiel zeigt die Anbindung des Deltaboards über eine TCP/IP-Verbindung (erfordert Instrument Control Toolbox).
Auslesen eines Datenpaketes über die Netzwerkschnittstelle und Erzeugen einer FFT Darstellung
%initialize and open connection tcpip_connection = tcpip('192.168.0.50', 24942); tcpip_connection.InputBufferSize = 10000; tcpip_connection.ByteOrder = 'bigEndian'; fopen(tcpip_connection) %initialise variable and read data as 16-Bit signed IQ values Import_data = zeros(4096, 1); for i=1:4096 Import_data(i)= complex(fread(tcpip_connection,1,'int16'),fread(tcpip_connection,1,'int16')); end %calculate FFT L=length(Import_data); plot_data=fftshift(fft(Import_data,4096)); %plot nVals=(-4096/2:4096/2-1)*(1/4096); plot(nVals,10*log10(plot_data/32768),'b'); xlabel('bandwidth') ylabel('dBFS'); %close connection and clean up fclose(tcpip_connection); delete(tcpip_connection); clear tcpip_connection