如何读取串行端口控制线状态.net

问题描述:

我正在开发一个项目,我需要在开关关闭时触发事件。我的理解是,可以在串口上使用控制线,并读取开关是否闭合。我已经找到了如何将开关连接到引脚的原理图,但是我无法找到关于如何读取开关状态的任何示例代码。如何读取串行端口控制线状态.net

示意图位于:http://irtel.uni-mannheim.de/pxlab/doc/manual/Devices.html

任何人有任何想法,你如何使用vb.net或C#来读取这些控制线的一个开关的状态?

这应该会帮助您开始:http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx。那里也有很好的串行教程。

+0

这非常有帮助。得到它使用5行代码。谢谢! – Mark 2011-05-11 12:19:15

销更改事件处理程序可能会帮助

Dim WithEvents sp As New IO.Ports.SerialPort 
Private Sub sp_PinChanged(sender As Object, _ 
          e As System.IO.Ports.SerialPinChangedEventArgs) Handles sp.PinChanged 
    'look at e.EventType or check states 
    Select Case True 
     Case sp.CDHolding 
     Case sp.CtsHolding 
     Case sp.DsrHolding 
     Case sp.RtsEnable 
     Case e.EventType = IO.Ports.SerialPinChange.Ring 
    End Select 
End Sub 

这假定端口是开放的。

编辑:要检测戒指,你必须使用e.EventType。

+0

谢谢。我最初的代码是每隔一秒钟用一个计时器检查状态,但我会试着看看它是如何在没有计时器对象的情况下工作的。 – Mark 2011-05-11 12:21:34