C# 连接到NI USB至232/4故障

C# 连接到NI USB至232/4故障,c#,serial-port,C#,Serial Port,目前正在尝试通过NI USB-232/4向电源发送基本信息。使用我的代码连接时,消息将无法发送,端口指示灯保持红色/橙色 当连接电源代码时,可以很好地接收信息,端口led变为绿色。电源对发出的命令作出反应 通过虚拟串行端口将提供的程序连接到终端时,发送的消息与我的程序发送的消息相同。当直接从终端窗口输入到电源时,命令工作正常。同样,端口led在通过终端连接时变为绿色 据我所知,串行设置与提供的程序和终端使用的设置相同。但是,电源拒绝接受这些消息 public Serial(){

目前正在尝试通过NI USB-232/4向电源发送基本信息。使用我的代码连接时,消息将无法发送,端口指示灯保持红色/橙色

当连接电源代码时,可以很好地接收信息,端口led变为绿色。电源对发出的命令作出反应

通过虚拟串行端口将提供的程序连接到终端时,发送的消息与我的程序发送的消息相同。当直接从终端窗口输入到电源时,命令工作正常。同样,端口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;
    }