Problème de lecture SerialPort

duvala Messages postés 10 Date d'inscription jeudi 29 janvier 2004 Statut Membre Dernière intervention 21 février 2012 - 21 févr. 2012 à 18:22
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 21 févr. 2012 à 20:16
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

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
21 févr. 2012 à 20:16
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
0
Rejoignez-nous