目前正尝试通过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;
}