I am playing around with using Labview as an ActiveX server with
Matlab. The anticipated application is to run instrument control
in Labview
and then use ActiveX to transfer data over to Matlab for more processing.
The data transfer speed is surprisingly slow. Over a 100 Mbit
network, two PCs can move a large double-precision 2D array at 6
Mbyte/sec. When both Labview and Matlab are on the same PC (1.4
GHz P4) , the transfer rate is only ~10 Mbyte/sec.
The Matlab code looks something like this:
LV = actxserver('Labview.Application') ;
vi = invoke(LV,'GetVIReference','c:\test.vi') ;
vi.Run ;
% now transfer the data from Labview to Matlab
array = vi.GetControlValue('Output Array') ;
I am using tic/toc to time that last line of Matlab code. Am I
doing something wrong or inefficient here, or is this just the way
ActiveX is?