如何使用C#在NI-DAQ上设置三态

时间:2016-05-26 18:17:55

标签: c# .net nidaqmx tri-state-logic

我有一台NI-DAQ 6212&我正在尝试使用C#将数字输出设置为三态模式。我无法找到有关如何将其设置为此参考http://zone.ni.com/reference/en-XX/help/370473H-01/mstudiowebhelp/html/bd33b0d/

的示例

我怎样才能做到这一点?非常感谢任何输入!

谢谢!

1 个答案:

答案 0 :(得分:1)

NIDAQ库的文档记录非常糟糕,并且没有很多例子来自我记忆中的处理时间。我继承了一些控制电压控制器的代码,我必须稍微处理一下,绝不是完全理解库。

但我很乐意尽我所能,因为我知道这个图书馆有多么令人沮丧。

try
{
    using (NationalInstruments.DAQmx.Task digitalWriteTask = new NationalInstruments.DAQmx.Task())
    {
        string[] channels = DaqSystem.Local.GetPhysicalChannels(PhysicalChannelTypes.DOPort, PhysicalChannelAccess.External);

        // Here is how I command the voltage of the system.
        digitalWriteTask.DOChannels.CreateChannel(channels[1], "port1", ChannelLineGrouping.OneChannelForAllLines);
        DigitalSingleChannelWriter writer = new DigitalSingleChannelWriter(digitalWriteTask.Stream);
        writer.WriteSingleSampleMultiLine(true, commandValue);

        // A clue I might be able to offer about DOChannel Tristate property?
        digitalWriteTask.DOChannels.All.Tristate = true;
    }
}
catch (Exception ex)
{
    Console.Out.WriteLine(ex.Message);
    return false;
}

检查NationalInstruments.DAQmx.Task后,看起来有一个成员DOChannels。您应该能够迭代它或选择All并设置Tristate属性。

就这样做之前或之后的任何事情,我都不知道。