我是一名新手,对C#和编程一窍不通。
我正在尝试与一个通过USB连接到计算机的欧姆表进行通信。
我能够配置设备并收到数据。但我无法访问这些数据。我只能将其打印到控制台上。(受Microsoft网站上的代码启发)
这是我的“通讯”类构造器,在其中我配置了端口:
public SCPI_Commands()
{
_SerialPort.PortName = SetPortName(_SerialPort.PortName);
_SerialPort.BaudRate = 115200;
_SerialPort.Parity = Parity.None;
_SerialPort.DataBits = 8;
_SerialPort.StopBits = StopBits.One;
_SerialPort.Handshake = Handshake.None;
_SerialPort.ReadTimeout = 500;
_SerialPort.WriteTimeout = 500;
_SerialPort.Open();
_SerialPort.DataReceived += _serialPort_DataReceived;
}
以下是我的函数,用于向设备发送查询指令(常量Measurment_Value代表由我的欧姆表理解的SCPI命令):
public void get_measurement()
{
_SerialPort.WriteLine(Measurment_Value);
}
这里是一个私有函数,用于检查设备是否正在发送数据并将其打印到控制台上(不确定该函数的工作原理):
private void _serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Console.WriteLine(_SerialPort.ReadLine());
}
很遗憾,我无法将数据返回为字符串。我的目标是对接收到的数据进行一些计算。有人有什么想法吗?
来自德国的问候。
Luke
DataReceived
事件,也不能依赖于BytesToRead
属性。如果你将来想要进行更多的串口工作,我建议你阅读这篇文章这篇文章,特别是评论部分。 - ChristianMurschall