Pregunta

Tengo un sensor que utiliza RS232 a través de USB para recibir comandos desde un PC y enviar los datos al PC.

El sensor tiene que ser reajustadas (usando la línea DTR) antes de que un comando puede ser enviada a la misma.

He intentado utilizar la función de puerto serie .net, pero no parece conducir a la línea DTR como se esperaba. Estoy empezando a preguntarse si la propiedad DTREnable realidad impulsa el pin DTR, o si sólo se permite durante el apretón de manos.

Otras implementaciones SERIALPORT que pude encontrar en la web también utiliza la API de Win32, pero me resulta muy difícil de cerrar el puerto con estas implementaciones. Si me paso a través del código que puedo ver se queda atascado en un comando WaitOne.

Alguien sabe cómo conducir DTR con System.IO.Ports.SerialPort? O sabe de un buen componente por ahí?

¿Fue útil?

Solución

he escrito esto para probar DTR. funciona como se esperaba usando mi adaptador USB serialport. Lo he comprobado conectando el cable a mi DataTracker (caja de conexiones RS232, con LED 's). DTR hace el cambio.

Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    SerialPort1.Close()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    SerialPort1.PortName = "COM5"
    SerialPort1.Open()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    SerialPort1.RtsEnable = True

    Debug.WriteLine("DTR +")
    System.Threading.Thread.Sleep(1000)

    SerialPort1.DtrEnable = True 'DTR -
    Debug.WriteLine("DTR -")
    System.Threading.Thread.Sleep(1000)

    SerialPort1.DtrEnable = False 'DTR +
    Debug.WriteLine("DTR +")
    System.Threading.Thread.Sleep(1000)

    SerialPort1.RtsEnable = False
End Sub

Otros consejos

Compruebe el pinout del cable. Podría estar contribuyendo al problema.

Patillas cable

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top