[VB] Emission et réception du port série
Dolichotis
Messages postés
48
Statut
Membre
-
melkos -
melkos -
Bonsoir,
J'essaie d'établir un code qui me permettrait de recevoir des données sur le port série. Mais le débogage bloque sur SerialPort1.ReadLine() quand le port reçoit des données.
Deuxièment quand je teste l'émission de données en écrivant sur le port1 (avec SerialPort1.WriteLine()), la réception ne marche pas (quand je récupère avec ReadLine())
J'ai deux questions : est-ce qu'il est possible d'envoyer et de récupérer les données sur un même port (d'un ordinateur) ?
Comment faire pour lire les données envoyées sur un port série ?
J'ai essayé plusieurs façons : avec serialPort, avec Mscomm, de nouveau avec serialPort...
Y a-t-il quelque chose qu'il faut rajouter ? (ou supprimer ?)
Voici une version avec serialPort...
Merci de votre aide !
J'essaie d'établir un code qui me permettrait de recevoir des données sur le port série. Mais le débogage bloque sur SerialPort1.ReadLine() quand le port reçoit des données.
Deuxièment quand je teste l'émission de données en écrivant sur le port1 (avec SerialPort1.WriteLine()), la réception ne marche pas (quand je récupère avec ReadLine())
J'ai deux questions : est-ce qu'il est possible d'envoyer et de récupérer les données sur un même port (d'un ordinateur) ?
Comment faire pour lire les données envoyées sur un port série ?
J'ai essayé plusieurs façons : avec serialPort, avec Mscomm, de nouveau avec serialPort...
Y a-t-il quelque chose qu'il faut rajouter ? (ou supprimer ?)
Voici une version avec serialPort...
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'vérifier sur le port com est ouvert
Try
SerialPort1.Open()
Catch ex As Exception
MessageBox.Show("Impossible d'ouvrir le port ")
End Try
End Sub
'quand le port 1 recoit des données
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
'si des données sont reçues dans le buffer d'entrée
If SerialPort1.BytesToRead > 0 Then
Do
myRxData(SerialPort1.ReadByte)
If SerialPort1.BytesToRead = 0 Then
Exit Do
End If
Loop
End If
End Sub
Private Sub myRxData(ByVal mydata As Integer)
Dim ascChar As String
CheckForIllegalCrossThreadCalls = False
'format des données du port 1
ascChar = CChar(ChrW(mydata))
TextBox1.Text &= ascChar
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'données écrites sur le port 1
SerialPort1.Write(TextBox2.Text & vbCrLf)
End Sub
Merci de votre aide !
A voir également:
- [VB] Emission et réception du port série
- Accusé de reception gmail - Guide
- Problème de réception tv pas de signal aujourd' hui - Guide
- Comment regarder une émission en replay - Guide
- Télécharger idm gratuitement sans numéro de série - Télécharger - Téléchargement & Transfert
- Serveur de reception mail - Guide
2 réponses
essai avec ceci :
Private Sub Reception_Trame(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles portComVirtuel.DataReceived
Dim strTmp As String = ""
Try
If portComVirtuel.ReadBufferSize > 0 Then
'Recupere les donnees
strTmp = portComVirtuel.ReadExisting
'Vide le buffer
portComVirtuel.DiscardInBuffer()
myRxData(strTmp)
End If
Catch ex As Exception
MsgBox("Erreur durant la réception" & vbCrLf & vbCrLf & ex.ToString)
End Try
End Sub
Private Sub Reception_Trame(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles portComVirtuel.DataReceived
Dim strTmp As String = ""
Try
If portComVirtuel.ReadBufferSize > 0 Then
'Recupere les donnees
strTmp = portComVirtuel.ReadExisting
'Vide le buffer
portComVirtuel.DiscardInBuffer()
myRxData(strTmp)
End If
Catch ex As Exception
MsgBox("Erreur durant la réception" & vbCrLf & vbCrLf & ex.ToString)
End Try
End Sub