Bonjour,
Je viens vers vous car cela fait 2-3 jours que je me casse la tête à trouver un réponse et une solution à mon soucis.
Je m'explique.
Je fais actuellement un applicatif fonctionnant sur une liaison série RS232.
La configuration du port se fait bien et l'envoie d'info également( A confirmé cf code).
Je me sers d'un shunt sur mon port série reliant le TX au RX.
Dans un premier temps je fais la demande de connexion, puis je fait une demande d par un checkbox et une validation.
Mais hélas je n'arrive pas à avoir le retour.
Un peu d'aide et / ou de correction ( Tout est possible) serai sympas.
Code de connexion :
Code d’émission et de récupération
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92 Private Sub ConnexionToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ConnexionToolStripMenuItem.Click 'Barre de progression ToolStripProgressBar1.Value = 10 'Chargement des paramétrages du port Port = My.Settings.Port Bits_par_secondes = My.Settings.BPS Bits_de_donnees = My.Settings.BDD Bits_D_arret = My.Settings.BDA Paritee = My.Settings.Parite Ctrl_Flux = My.Settings.Flux Select Case Ctrl_Flux Case "Aucun" Ctrl_Flux = "0" Case "Xon / Xoff" Ctrl_Flux = "1" Case "Matériel" Ctrl_Flux = "2" End Select 'Barre de progression ToolStripProgressBar1.Value = 20 ' Create a new SerialPort object with default settings. _SerialPort1 = New SerialPort() ' Allow the user to set the appropriate properties. _SerialPort1.PortName = Port _SerialPort1.BaudRate = Bits_par_secondes _SerialPort1.Parity = Paritee _SerialPort1.DataBits = Bits_de_donnees _SerialPort1.StopBits = Bits_D_arret _SerialPort1.Handshake = Ctrl_Flux ' Set the read/write timeouts _SerialPort1.ReadTimeout = 500 _SerialPort1.WriteTimeout = 500 'Barre de progression ToolStripProgressBar1.Value = 30 'Contrôle du port avant connexion Try With SerialPort1 'Ouverture du port _SerialPort1.Open() ToolStripProgressBar1.Value = 60 'Affichage de l'etat de connection ToolStripStatusLabel1.Text = "Connecté" Connection = "Connecte" ToolStripProgressBar1.Value = 65 'Affichage de la commande de deconnexion et occultation de la commande connexion DeconnexionToolStripMenuItem.Visible = True ConnexionToolStripMenuItem.Visible = False ToolStripProgressBar1.Value = 70 End With Catch ex As Exception MsgBox("Le port : " & Port & " n'est pas disponible", MsgBoxStyle.Critical) 'Affichage de l'etat de connection ToolStripStatusLabel1.Text = "Déconnecté" Connection = "Deconnecte" ' Occultationde la commande de deconnexion et Affichage de la commande connexion ConnexionToolStripMenuItem.Visible = True DeconnexionToolStripMenuItem.Visible = False End Try 'Définition de la date de la réalisation de la modification Dim Calendar As String Calendar = My.Computer.Clock.LocalTime.ToString("dd/MM/yyyy") 'Sauvegarde de l'historique Dim sw As StreamWriter = New StreamWriter("Historique \" & "Historique.txt", True, System.Text.Encoding.Default) 'met le contenu dans le fichier sw.Write(Calendar & " > " & Connection & " au port : " & Port & vbCrLf) 'Ferme le fichier sw.Close() ToolStripProgressBar1.Value = 85 ' Affichage de la modification Dim sw1 As StreamReader = New IO.StreamReader("Historique \" & "Historique.txt") RichTextBox1.Text = sw1.ReadToEnd() 'Ferme le fichier sw1.Close() 'Barre de progression ToolStripProgressBar1.Value = 100 'Barre de progression ToolStripProgressBar1.Value = 0 End Sub
Les paramètres suivant sont au début de mon programme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 Public Delegate Sub _Affiche_ASCII(ByVal donnee As String) Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Implantation de la valeur Emis = "A" & Emission.Text Console.Write(Emis) ' Lecture de la valeur émisse. Dim nb_octet As Integer = SerialPort1.BytesToRead ' on récupère le nombre d'octet présent dans le tampon Dim trame(nb_octet - 1) As Byte ' Tableau acceuillant les données au format byte SerialPort1.Read(trame, 0, 0) 'on lit le port Dim donnee As String = System.Text.Encoding.ASCII.GetString(trame) ' on récupère les données au format ASCII ' Label6.Text = Console.ReadLine 'Définition de la date de la réalisation de la modification Dim Calendar As String Calendar = My.Computer.Clock.LocalTime.ToString("dd/MM/yyyy") 'Sauvegarde de l'historique Dim sw As StreamWriter = New StreamWriter("Historique \" & "Historique.txt", True, System.Text.Encoding.Default) 'met le contenu dans le fichier sw.Write(Calendar & " > Emission de : " & Emis & " dB " & vbCrLf) 'Ferme le fichier sw.Close() ' Affichage de la modification Dim sw1 As StreamReader = New IO.StreamReader("Historique \" & "Historique.txt") RichTextBox1.Text = sw1.ReadToEnd() 'Ferme le fichier sw1.Close() End Sub
Imports System.IO
Imports System
Imports System.IO.Ports
Imports System.Threading
Merci d'avance.
Cordialement
Partager