Cómo leer los estados de la línea de control del puerto serie con .net

Estoy trabajando en un proyecto en el que necesito activar un evento cuando se cierra un interruptor. Tengo entendido que es posible usar las líneas de control en un puerto serie y leer si el interruptor está cerrado o no. Encontré un esquema de cómo conectar los interruptores a los pines, pero no he podido encontrar ningún código de ejemplo sobre cómo puede leer el estado de los interruptores.

El esquema se encuentra aquí: http://irtel.uni-mannheim.de/pxlab/doc/manual/Devices.html

¿Alguien tiene alguna idea de cómo podría usar vb.net o C # para leer el estado del interruptor en una de estas líneas de control?

preguntado el 10 de mayo de 11 a las 13:05

2 Respuestas

Esto debería ayudarlo a comenzar: http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx. También hay buenos tutoriales en serie.

contestado el 10 de mayo de 11 a las 17:05

Esto fue muy útil. Lo conseguí funcionando con 5 líneas de código. ¡Gracias! - Mark

Un controlador de eventos con PIN cambiado podría ayudar

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

Esto supone que el puerto está abierto.

editar: Para detectar el timbre, debe usar e.EventType.

contestado el 10 de mayo de 11 a las 18:05

Gracias. Mi código inicial era simplemente verificar el estado cada segundo con un temporizador, pero intentaré esto para ver cómo funciona sin el objeto del temporizador. - Mark

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.