如何找到使用c#发送消息后得到响应的串行端口?
目的是找出哪个串行端口物理连接到另一台机器。我想搜索我的系统以找到可用的串行端口,并使用所有端口发送测试消息,然后等待响应。并获取连接到另一台机器的端口号,该端口号的任何端口都会收到响应。如何做??谢谢 使用System.IO.port如何找到使用c#发送消息后得到响应的串行端口?,c#,serial-port,C#,Serial Port,目的是找出哪个串行端口物理连接到另一台机器。我想搜索我的系统以找到可用的串行端口,并使用所有端口发送测试消息,然后等待响应。并获取连接到另一台机器的端口号,该端口号的任何端口都会收到响应。如何做??谢谢 使用System.IO.port public static void OnSerialDataReceived(object sender, SerialDataReceivedEventArgs args) {
public static void OnSerialDataReceived(object sender,
SerialDataReceivedEventArgs args)
{
string data = ComPort.ReadExisting();
Console.Write(data.Replace("\r", "\n"));
}
private static void InitializeComPort(string port, int baud)
{
ComPort = new SerialPort(port, baud);
// ComPort.PortName = port;
// ComPort.BaudRate = baud;
ComPort.Parity = Parity.None;
ComPort.StopBits = StopBits.One;
ComPort.DataBits = 8;
ComPort.Handshake = Handshake.None;
ComPort.DataReceived += OnSerialDataReceived;
ComPort.Open();
}
使用System.IO.Ports
public static void OnSerialDataReceived(object sender,
SerialDataReceivedEventArgs args)
{
string data = ComPort.ReadExisting();
Console.Write(data.Replace("\r", "\n"));
}
private static void InitializeComPort(string port, int baud)
{
ComPort = new SerialPort(port, baud);
// ComPort.PortName = port;
// ComPort.BaudRate = baud;
ComPort.Parity = Parity.None;
ComPort.StopBits = StopBits.One;
ComPort.DataBits = 8;
ComPort.Handshake = Handshake.None;
ComPort.DataReceived += OnSerialDataReceived;
ComPort.Open();
}
SerialPort.GetPortNames()方法返回所有可用串行端口的COM端口名数组。您可以迭代它并尝试打开它们。除故障外,端口可能已被其他程序打开 您不希望将某个内容发送到不希望发送的设备。使用DsrHolding属性是一种合理的测试,可以查看是否连接了已通电的设备
你的终极敌人将是波特率属性。您无法猜测正确的值。串行端口过于原始,无法支持即插即用式设备发现。避免使用不能可靠工作的东西,允许用户使用所需的设置配置程序。这是正常的做法。SerialPort.GetPortNames()方法返回所有可用串行端口的COM端口名称数组。您可以迭代它并尝试打开它们。除故障外,端口可能已被其他程序打开 您不希望将某个内容发送到不希望发送的设备。使用DsrHolding属性是一种合理的测试,可以查看是否连接了已通电的设备
你的终极敌人将是波特率属性。您无法猜测正确的值。串行端口过于原始,无法支持即插即用式设备发现。避免使用不能可靠工作的东西,允许用户使用所需的设置配置程序。这是正常的做法。SerialPort.GetPortNames()方法是SerialPort的静态方法。你确定它们之间的通信有流量控制吗?SerialPort.GetPortNames()方法是SerialPort的静态方法。你确定它们之间的通信有流量控制吗?请简要介绍一下这段代码。。因为我找不到任何能将数据发送到所有可用端口的东西。啊,这对一个端口有效。您需要使用
System.IO.Ports.SerialPort.GetPortNames
枚举端口名,并循环遍历每一个端口名。请简要介绍一下此代码。。因为我找不到任何能将数据发送到所有可用端口的东西。啊,这对一个端口有效。您需要使用System.IO.Ports.SerialPort.GetPortNames
枚举端口名,并循环遍历每个端口。