Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法检查与串行端口(RS-232)连接的设备的通电/断电?_C#_C++_Serial Port - Fatal编程技术网

C# 有没有办法检查与串行端口(RS-232)连接的设备的通电/断电?

C# 有没有办法检查与串行端口(RS-232)连接的设备的通电/断电?,c#,c++,serial-port,C#,C++,Serial Port,我有两个设备与串行端口(RS-232)连接。当它们打开时,我在控制设备方面没有任何问题,但当它们关闭时,我的软件在向设备写入数据时根本没有响应 是否有任何常规方法以编程方式检查设备是否打开?或者我需要就此联系每个制造商吗?简单地检查端口连接不起作用,因为断电设备的端口可以毫无问题地打开 谢谢大家,新年快乐。不,串行端口不提供任何机制来了解其他设备是否已连接或通电。在您的应用程序中,您可以发送请求,然后等待响应超时,以确定另一端已关闭。否,串行端口不提供任何机制来了解另一个设备是否已连接或通电。在

我有两个设备与串行端口(RS-232)连接。当它们打开时,我在控制设备方面没有任何问题,但当它们关闭时,我的软件在向设备写入数据时根本没有响应

是否有任何常规方法以编程方式检查设备是否打开?或者我需要就此联系每个制造商吗?简单地检查端口连接不起作用,因为断电设备的端口可以毫无问题地打开



谢谢大家,新年快乐。

不,串行端口不提供任何机制来了解其他设备是否已连接或通电。在您的应用程序中,您可以发送请求,然后等待响应超时,以确定另一端已关闭。

否,串行端口不提供任何机制来了解另一个设备是否已连接或通电。在你的应用程序中,你可以发送一个请求,然后等待响应超时,以确定另一端已关闭。

我从未用串行方式编程过设备,但如果设备关闭,就好像没有任何连接?也就是说,针脚没有电。也许你可以检查一下。如果没有响应,可能是关闭了。@Synxis完全正确。但我不确定我是否能找到一种方法来做到这一点。你所说的“串行”是指“RS-232”吗?因为USB也是串行的,并且具有枚举功能。同样的SATA、SAS……我从未用串行方式编程过设备,但如果设备关闭,就好像什么都没有连接一样?也就是说,针脚没有电。也许你可以检查一下。如果没有响应,可能是关闭了。@Synxis完全正确。但我不确定我是否能找到一种方法来做到这一点。你所说的“串行”是指“RS-232”吗?因为USB也是串行的,并且具有枚举功能。同样,SATA、SAS……这取决于他们使用的协议和接线方式。您有DSR(数据集就绪)和RTS/CTS握手信号。您可以随时检查这些管脚的状态。RS-232确实提供了这样一种机制(禁止在RX和GND之间使用较小的电压),但很少有实现将此信息传递给软件。@MarkHall,但如果另一侧断电且不驱动管脚,则检查流量控制管脚的状态是完全不可靠的。您可能会感应到一个浮动输入,这是完全任意的。@TJD如果连接上,很可能仍然有一个负载,如果断开连接,您是对的,负载在接收器端,即您的。仅仅因为没有驱动程序并不意味着线路是浮动的,这取决于他们使用的协议和连接方式。您有DSR(数据集就绪)和RTS/CTS握手信号。您可以随时检查这些管脚的状态。RS-232确实提供了这样一种机制(禁止在RX和GND之间使用较小的电压),但很少有实现将此信息传递给软件。@MarkHall,但如果另一侧断电且不驱动管脚,则检查流量控制管脚的状态是完全不可靠的。您可能会感应到一个浮动输入,这是完全任意的。@TJD如果连接上,很可能仍然有一个负载,如果断开连接,您是对的,负载在接收器端,即您的。仅仅因为没有驱动程序并不意味着线路是浮动的。