Measurement Studio for .NET Languages

cancel
Showing results for 
Search instead for 
Did you mean: 

What aspects of Measurement Studio handle high speed data transfer?

Hi,
 
We are developing a device that will output floating point data at a rate of 40MB/s.  Our device has both an ethernet and a USB port.  We plan on developing a GUI to display/graph/analyze the data, hopefully in real time.  What aspects of Measurement Studio can assist us in receiving and posting the data to the GUI?  I am aware that not all data points can be posted/graphed as they come in.  I am planning on the following:
 
Receive the data over the port and place it into a buffer in one thread
Update the GUI on at timed intervals in another thread.
 
Are there features of measurement studio that can handle the receive end of this at high speed over the ethernet and/or USB port?
 
Thanks for any info.
 
Judy
0 Kudos
Message 1 of 9
(4,034 Views)
Hi Judy,

Thanks for your question. As far as the "receive end" of your algorithm goes, I'm afraid that MeasurmentStudio itself contains functionality for graphing and analyzing data, and limited functionality for acquisition, only using our DAQ Assistant to auto-generate code for a task you setup. The full functionality of acquisition is found in the DAQmx API, which really falls under the category of development in MS Visual Studio.  So the short answer is that MeasurmentStudio will be used for development of your UI, not the acquisition of your data.

As it seems that you will developing your own driver and not using DAQmx or the DAQ Assistant, this is neither here nor there. Since your driver will have to be in charge of getting this 40Mb/sec of data onto your system, this array of acquired data will be what MeasurmentStudio is manipulating and plotting.

As far as graphing this data goes, once this array is acquired, the limiting factor of graphing this large stream of data will be your physical system (RAM, processor speed, threading efficiency, etc.) and would not necessarily be the graphing functions used. Are you looking for functions used to skip points to more efficiently and quickly deal with large amounts of data?

If you are planning on conforming to a common serial protocol in your device, it would be possible to use our NI-VISA driver in conjunction with Measurement Studios to acquire and graph your data. This might be the type of solution you are looking for.

I hope this helps.



Evan Prothro
RF Systems Engineer | NI

0 Kudos
Message 2 of 9
(4,019 Views)

Hi Evan,

Thanks for the info.  After more discussion with the powers that be, I expect to need a PCI card of some sort to handle the incoming data and I am not so much tied to writing our own drivers as our own GUIs.  So, I'm curious about the DACmx API.  I understand that NI has an NI-DACmx API.  Is that specific to a PCI card you sell that can handle the high speed data?

On my end (PC software) I do some data massaging (scaling for different measurement units, etc.) and my big concern is that I will not have the time to do this.  Also, if I'm using a graph, the update rates on the graph will have to be such that they don't block data being added to the array for any major length of time, but I can play with that on my end to see what works best.  I have not done high speed DAQ before and I'm trying to anticipate the issues it will cause on the PC side.  The rest of the folks here are EE firmware people (forgive them :-), so I'm it.  I have some time before I have to attack this particular beast, but I would like to get as many of my ducks in a row beforehand as I can. 

Thanks again,

Judy

0 Kudos
Message 3 of 9
(4,007 Views)

Hi Judy,

I just wanted to chime in and say a few things.  The Measurement Studio DAQ Assistant allows users to quickly create and run DAQmx applications without doing really any coding at all. We generate the code for you automatically and go even a step further of allowing you to customize the DAQ component that is created. This would be the case where you may want to add functionality to your DAQ component that leverages capabilities of your device that are not supported by the DAQ Assistant, such as advanced timing or triggering settings. With the DAQ Assistant, you simply configure a GUI with what types of measurements you want to take and then you’re ready to rock 'n roll. 

Now, as Evan mentioned, you can also just use the DAQmx API directly instead of using the DAQ Assistant.  Both paths provide a different set of benefits including:

Advantages of Using the DAQ Assistant

  • Requires no programming as you can configure channels, timing, triggering, and scales interactively (i.e. via a GUI)
  • Decreases development time as your application will be up and running in minutes

Advantages of Using the DAQmx API

  • Contains advanced features not exposed the DAQ Assistant
  • Provides additional flexibility
  • Gives you tighter control over application performance.

Measurement Studio offers a variety of helpful components including user interface controls, analysis libraries (i.e. you mentioned data massaging so this should help), additional DAQ examples, documentation and walkthroughs, and even a simplified network communication protocol (i.e. network variable library). 

If you are going to be doing TCP/IP communication, you could consider our VISA driver. There is a VISA .NET API that we offer that can communicate to a variety of resources. We do explicitly have TcpipSession and TcpipSocket classes you can use. 

As far as getting data to the graph, we offer several graph controls including the ComplexGraph, DigitalWaveformGraph, ScatterGraph and WaveformGraph (this is probably the graph you will use).  With the scatter and waveforms graphs, you can configure your plotting however you like. You can use those controls to create a strip chart, scope chart or graph by configuring the axes of the graph and using plot methods that append new data to the plot or display only the most recent data in the plot.  It sounds like you might want to chart your data which we have methods for.  When you chart data on a waveform or scatter graph, the WaveformPlot and ScatterPlot objects append the new data that you specify to the data contained in the plot. When you append data that is outside the current minimum or maximum range of the XAxis or YAxis that is associated with the plot, the plot area of the graph scrolls to display new points.

That's just a brief summary of what's available to you.

If you have any questions, please feel free to ask.

Best Regards,

Jonathan N.
National Instruments
0 Kudos
Message 4 of 9
(3,992 Views)

Hi Judy,

I was looking through my post and wanted to clarify a few statements I made just to make sure we are all clear on Measurement Studio and DAQ integration.

So for starters, to simplify the creation of NI-DAQmx applications, Measurement Studio provides the DAQ Assistant.  The DAQ Assistant was designed to be a starting point for you to go off of to create your own DAQmx applications.  As I mentioned earlier, the DAQ Assistant provides a nice GUI interface for you to interactively configure your measurement tasks, channels, scales, etc. We then generate the equivalent DAQmx code for you.  The code that is generated uses the DAQmx API.   This simply means that the code generated by the DAQ Assistant is the exact same code that is found in the DAQmx API (i.e. you could write that code yourself from scratch if you wanted since its just DAQmx API calls).

Anything you can do using the DAQmx API, you can also do using the DAQ Assistant. We allow full customization of the DAQmx code generated by the DAQ Assistant which allows you to integrate any additional DAQ functionality you wish such as advanced timing or triggering settings. It is important to state that you are not choosing the DAQmx API over the DAQ Assistant since the DAQ Assistant generates DAQmx code.

To clarify what comes with what, you don't need to buy Measurement Studio to get access to the DAQmx .NET API.  That is freely distributed with our DAQmx driver.  However, you do need to purchase Measurement Studio if you want the DAQ Assistant. There's also additional documentation, examples and walkthroughs for DAQ programming as well.

Hope this clarifies things!

Best Regards,

Jonathan N.
National Instruments
0 Kudos
Message 5 of 9
(3,979 Views)

Hi Jonathan,

Thank you for all the information.  I am passing it on to the higher ups and you've been great to clarify all this for me.  I really appreciate it.

Judy

0 Kudos
Message 6 of 9
(3,975 Views)

Hi Jonathan,

One last question... What language are the DAQmx API and DAC Assistant written for?  I know that .NET allows you to use components generated by various languages in your managed code and MSIL handles the integration, but I just wanted to know if these two packages are available to C# and C++ code.

Thanks,

Judy

0 Kudos
Message 7 of 9
(3,972 Views)
Hi Judy,

The DAQ Assistant is available in both MFC (unmanaged) C++, C# and VB.NET.  You can use the DAQmx .NET API in any .NET language since our .NET assemblies are CLS compliant.

Best Regards,
Jonathan N.
National Instruments
0 Kudos
Message 8 of 9
(3,969 Views)

Thanks again, Jonathan.

Judy

0 Kudos
Message 9 of 9
(3,964 Views)