bonjour
je debute sur le vb
j'ai realisé ce petit code mais à l'execution j'ai l'erreur suivante que je ne comprend pas.
"La valeur PortName ne peut pas être vide.
Nom du paramètre : PortName"
je precise que dans mon cas le port serie utilisé par mon arduino est le port "com5" et il est bien visible dans le combobox " CBB_port_serie"

voici le code
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
 
 
Imports System.IO
Imports System.IO.Ports
Imports System.Threading
Imports System.ComponentModel
 
Public Class Form1
 
    Dim momport As Array
    Dim tcommandes As String
    Dim commandesenvoye As String
 
    Delegate Sub SetTextCallback(ByVal [text] As String) 'Added to prevent threading errors durin
 
 
 
    Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'la carte doit etre branchee pour voir les ports
        momport = IO.Ports.SerialPort.GetPortNames()
        Cbb_port_serie.Items.AddRange(momport)
 
 
        For Each sp As String In My.Computer.Ports.SerialPortNames ' on regarde les port usb ou une carte arduino est connecteéé
            Cbb_port_serie.Items.Add(sp)
            Cbb_port_serie.SelectedIndex = 0
        Next
        '
 
        ' rempli la LB1_index_joeur
        For index1 = 1 To 49
            LB1_index_joueur.Items.Add(index1)
        Next index1
 
        Cbb_commandes.Items.Add("debut de partie")
        Cbb_commandes.Items.Add("fin de partie")
        Cbb_commandes.Items.Add("start admin")
        Cbb_commandes.Items.Add("respawn")
        Cbb_commandes.Items.Add("ping")
        Cbb_commandes.Items.Add("pause jeu")
        Cbb_commandes.SelectedIndex = 0 ' valeur par defaut 2element
 
 
 
 
 
    End Sub
 
 
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        LB_affichage.Items.Clear()
        commandesenvoye = " "
        LB_affichage.Items.Add(momport)
 
        Select Case Cbb_commandes.Text
            Case Is = "ping"
 
                commandesenvoye = "$11;255;0;0;0;0#"
                LB_affichage.Items.Add("ping " & commandesenvoye)
 
 
            Case Is = "start admin"
                commandesenvoye = "$6;255;0;0;0;0#"
                LB_affichage.Items.Add("start admin " & commandesenvoye)
 
            Case Is = "fin de partie"
                commandesenvoye = "$8;255;0;0;0;0#"
                LB_affichage.Items.Add("fin de partie" & commandesenvoye)
 
 
            Case Is = "respawn"
                commandesenvoye = "$9;255;0;0;0;0#"
                LB_affichage.Items.Add("respawn" & commandesenvoye)
 
 
 
            Case Is = "debut de partie"
                commandesenvoye = "$10;255;0;0;0;0#"
                LB_affichage.Items.Add("debut de partie" & commandesenvoye)
 
 
 
            Case Is = "pause jeu"
                commandesenvoye = "$13;255;0;0;0;0#"
                LB_affichage.Items.Add("pause jeu" & commandesenvoye)
 
 
        End Select
 
        ' debut partie envoie  messages de commandesenvoye vers port serie arduino 
 
        LB_affichage.Items.Add(Cbb_port_serie.SelectedText)
        ' attention prevoir un reset de la carte arduinno 
        ' debut partie envoie des donnees
        Using momport As IO.Ports.SerialPort =
            My.Computer.Ports.OpenSerialPort(Cbb_port_serie.SelectedText)
            momport.WriteTimeout = 1000 'tempo 1000ms
            momport.Close()
            momport.Open()
            momport.BaudRate = 115200
            momport.Write(commandesenvoye)
            momport.Close()
        End Using
        ' finde partie envoie des donnees
 
        'debut de partie reception donne port serie arduino
 
        Using momport As IO.Ports.SerialPort =
            My.Computer.Ports.OpenSerialPort(Cbb_port_serie.SelectedText)
            'My.Computer.Ports.OpenSerialPort("com5")
            momport.ReadTimeout = 1000 'ajout du tempo peut augmenter la tempo pour laisser letemps de tranfert RF
            momport.Close()
            momport.Open()
            momport.BaudRate = 115200
            Try
                'LB_affichage.Items.Add(momport.ReadLine())
                LB_affichage.Items.Add(momport.ReadLine())
            Catch ex As TimeoutException
                LB_affichage.Items.Add("pas de données en reception ")
                momport.Close()
 
            End Try
        End Using
        'fin de la partie envoie des donnes
 
    End Sub
 
 
 Private Sub BT_elements_connectes_Click(sender As System.Object, e As System.EventArgs) Handles BT_elements_connectes.Click
 
        LB_elements_connectes.Items.Clear()
        commandesenvoye = " "
        LB_elements_connectes.Items.Add(momport)
        commandesenvoye = "$11;255;0;0;0;0#"
        LB_elements_connectes.Items.Add("ping " & commandesenvoye)
 
 
 
 
        Using momport As IO.Ports.SerialPort =
                   My.Computer.Ports.OpenSerialPort(Cbb_port_serie.SelectedText)
            'My.Computer.Ports.OpenSerialPort("com5")
            'momport.ReadTimeout = 1000 'ajout du tempo peut augmenter la tempo pour laisser letemps de tranfert RF
            momport.Close()
            momport.Open()
            momport.BaudRate = 115200
            Try
                'LB_affichage.Items.Add(momport.ReadLine())
                LB_elements_connectes.Items.Add(momport.ReadLine())
            Catch ex As TimeoutException
                LB_elements_connectes.Items.Add("pas de donne en reception ")
                momport.Close()
 
            End Try
        End Using
    End Sub
End Class



merci de votre aide et conseils