Question

J'ai un capteur qui utilise RS232 sur USB pour recevoir des commandes à partir d'un PC et d'envoyer des données à l'ordinateur.

Le capteur doit être remis à zéro (en utilisant la ligne DTR) avant qu'une commande ne peut être envoyée.

J'ai essayé d'utiliser le port série .net intégré, mais il ne semble pas conduire la ligne DTR comme prévu. Je commence à me demander si la propriété DTREnable entraîne effectivement la broche DTR, ou si elle permet seulement pendant handshake.

D'autres implémentations SerialPort que je pouvais trouver sur le web utilise également l'API Win32, mais je trouve qu'il est très difficile de fermer le port avec ces mises en œuvre. Si je fais un pas dans le code que je peux le voir se coince sur une commande WaitOne.

Quelqu'un sait comment conduire DTR avec System.IO.Ports.SerialPort? Ou connaissez un bon élément là-bas?

Était-ce utile?

La solution

je l'ai écrit ceci pour tester DTR. cela fonctionne comme prévu en utilisant mon adaptateur USB serialport. i vérifié en attachant le câble à ma DataTracker (boîte de dérivation RS232, avec LED). DTR change.

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

Autres conseils

Vérifiez le brochage du câble. Il pourrait contribuer au problème.

câble Brochage

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top