连接到NI USB到232/4故障

时间:2015-12-15 16:00:12

标签: c# serial-port

目前正尝试通过NI USB-232/4向电源发送基本信息。在连接我的代码时,消息不会被发送,PORT led仍然是红色/橙色。

当连接电源代码时,可以很好地接收消息,PORT指示灯变为绿色。电源对给定的命令作出反应。

通过虚拟串行端口将提供的程序连接到终端时,发送的消息与我的程序发送的消息相同。当直接从终端窗口输入电源时,命令工作正常。同样,端口LED在通过终端连接时变为绿色。

据我所知,串行设置与提供的程序和终端正在使用的设置相同。但是,电源拒绝接受这些消息。

public Serial(){
        ThreadSafe.serialVoltage.Enqueue("*IDN?");
        ThreadSafe.serialVoltage.Enqueue("SYST:REM\n");
        ThreadSafe.serialVoltage.Enqueue("INST SECO");
        ThreadSafe.serialVoltage.Enqueue("OUTP 1");
        ThreadSafe.serialVoltage.Enqueue("VOLT 9V");
    }

    public void ListenForVoltageChange()
    {
        string result;
        _serialPort = new System.IO.Ports.SerialPort();
        OpenPort();
        Thread.Sleep(1000);
        while (true) {
            if (!ThreadSafe.serialVoltage.IsEmpty) {
                ThreadSafe.serialVoltage.TryDequeue(out result);
                Debug.WriteLine(result);
                _serialPort.WriteLine(result);
            }
            Thread.Sleep(1000);
        }
    }
    public bool OpenPort()
    {
        Debug.WriteLine("Port Open");
        Debug.WriteLine(_serialPort.IsOpen);
        if (!_serialPort.IsOpen)
        {
            _serialPort.PortName = "COM4";
            _serialPort.BaudRate = 9600;
            _serialPort.Parity = System.IO.Ports.Parity.None;
            _serialPort.DataBits = 8;
            _serialPort.StopBits = System.IO.Ports.StopBits.One;
            _serialPort.RtsEnable = false;
            _serialPort.Handshake = System.IO.Ports.Handshake.None;

            _serialPort.ReadTimeout = 500;
            _serialPort.WriteTimeout = 500;

            try
            { _serialPort.Open(); }
            catch { return false; }
        }
        return true;
    }

0 个答案:

没有答案