Frage

Ich habe einen Sensor, die RS232 über USB verwendet Befehle von einem PC zu empfangen und Daten an den PC senden.

Der Sensor muss zurückgesetzt werden (die DTR-Leitung), bevor ein Befehl an ihn gesendet werden kann.

Ich habe versucht, das eingebaute in .net serielle Schnittstelle zu verwenden, aber es scheint nicht die DTR-Leitung zu treiben, wie erwartet. Ich fange an zu fragen, ob die DTREnable Eigenschaft tatsächlich den DTR-Pin treibt, oder wenn er ermöglicht es nur während des Handshaking.

Andere Serialport-Implementierungen, die ich im Internet finden konnte, verwenden auch den Win32-API, aber ich finde es sehr schwierig, den Hafen mit diesen Implementierungen zu schließen. Wenn ich durch den Code Schritt kann ich sehen, es auf einem WaitOne Befehl stecken bleibt.

Wer weiß, wie DTR fahren mit System.IO.Ports.SerialPort? Oder weiß von einem guten Komponente da draußen?

War es hilfreich?

Lösung

Ich schrieb dieses DTR zu testen. es funktioniert wie erwartet meinen USB Serialport-Adapter. Ich habe es durch das Kabel an meinen DataTracker (RS232 Breakout-Box, mit LEDs) zu befestigen. DTR nicht ändert.

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

Andere Tipps

Überprüfen Sie die Pin-Belegung des Kabels. Es könnte zum Problem beitragen.

Kabelbelegungen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top