Problème de lecture SerialPort

Signaler
Messages postés
10
Date d'inscription
jeudi 29 janvier 2004
Statut
Membre
Dernière intervention
21 février 2012
-
Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
-
Bonjour,

Je n'arrive pas à lire depuis le port série....
L'écriture et l'envoi de commande fonctionne parfaitement sauf pour les commandes qui renvoient une réponse....
Help !

Je dois lire une réponse d'un ampère mètre via ce port série.
J'utilise VB.net avec le serialport...

Merci d'avance

Mon code :

Imports System.IO
Imports System.IO.Ports
Imports System.Windows.Forms
Public Class Test_RS232
Public Delegate Sub StringSubPointer(ByVal Buffer As String)
Private Sub DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs) Handles RS232.DataReceived
TextBox1.Invoke(New StringSubPointer(AddressOf Display), RS232.ReadLine)
End Sub
Private Sub Display(ByVal Buffer As String)
TextBox1.Text = Buffer
End Sub
Private Sub Test_RS232_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ports() As String = IO.Ports.SerialPort.GetPortNames() ' tableau de string accueullant les ports present sur la machine
'configuration du port RS232
RS232.BaudRate = 9600 'vitesse du port
RS232.Parity = IO.Ports.Parity.None 'pas de parité
RS232.StopBits = IO.Ports.StopBits.One 'un bit d'arrêt par octet
RS232.DataBits = 8 'nombre de bit par octet
RS232.RtsEnable = False 'ligne Rts désactivé
RS232.DtrEnable = False 'ligne Dtr désactivé
Choix_Port.Items.AddRange(ports) ' on ajoute le nom des ports dans le combobox
Try
Choix_Port.SelectedIndex = 2 ' on donne le focus au premier port du combobox
Catch ' message d'erreur si aucun port COM n'est détecté sur la machine et on ferme l'application
MsgBox("Il semble ne pas y avoir de port RS232 sur votre machine, cette application ne pourra pas marcher")
Application.Exit()
End Try
End Sub
Private Sub Connexion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Connexion.Click
If Connexion.Text = "Connexion" Then
Try
'on ouvre le port désiré
RS232.PortName = Choix_Port.Text
RS232.Open()
Beep()
Catch ' message d'erreur si l'on ne peut pas ouvrir le port
MsgBox("Il semble que le port choisi est déjà en cours d'utilisation par une autre application, merci de choisir un port libre pour se connecter")
Exit Sub
End Try
Vitesse.Text = RS232.BaudRate & Space(1) & "Bauds" 'on affiche la vitesse du port
Connexion.Text = "Déconnexion" ' on change l'intitulé du bouton
Choix_Port.Enabled = False ' on désactive le combobox pendant l'utilisation du port
Else
Vitesse.Text = "" 'on efface la vitesse
Connexion.Text = "Connexion" ' on change l'intitulé du bouton
RS232.Close() 'on ferme le port
Choix_Port.Enabled = True 'on réactive le combobox
End If
End Sub


AD

1 réponse

Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
151
Bonjour,

Postes ton code en suivant le point 2 de la signature, il sera plus lisible.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site