I am doing some tests with the DaqMX API for .NET. Please note that I am not using Measurement Studio but only the .NET API (see the references below).
I am an experienced programmer but completely new to National Instruments products (hardware and software).
I have used MAX (Measurement and Automation Explorer) to set up a few virtual (global) channels.
In my .NET application i wish to:
List all virtual channels
From a specific virtual channel name obtain a DaqMX.Channel instance for that specific channel.
Listing the channels is easy (the DAQmx.DaqSystem.Local.GlobalChannels string array), but the second one is harder.
The only way I have found so far is:
Create a dummy task (DaqMX.Task)
Add the virtual channel to the task by its name (Task.AddGlobalChannel(channelName) )
Verify the task
Use the channel object returned by AddGlobalChannel
Public Function getVirtualChannelByName(channelName As String) As DAQmx.Channel
Dim dummyTask As New DAQmx.Task
Dim ch As DAQmx.Channel = dummyTask.AddGlobalChannel(channelName)
dummyTask.Timing.ConfigureSampleClock("", 100, DAQmx.SampleClockActiveEdge.Falling, DAQmx.SampleQuantityMode.ContinuousSamples)
Catch ex As Exception
Is there a better way of doing this? Or are there maybe any logical limitations which prevents the API from retrieving the channel information without it being added to a task? Clearly MAX can do it, so I think this would be possible.