Salve a tutti,
E' da circa un mese che ho cominciato a giocherellare con il VB2010.La mia passione è l'elettronica ed ora ho deciso di abbinare quest'ultima alla programmazione.
Dopo aver consultato qualche tutorial ho deciso di scrivere i miei primi programmini per far dialogare qualche schedina elettronica dotata di microcontrollore con il pc.
Ora stavo provando a creare una piccola applicazione dove al premere di un pulsante venisse fatto un controllo delle porte COM libere per trovare la porta a cui ho collegato la mia schedina.
Ecco il codice da me usato:
codice:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
If trovatoporta = False Then
For Each sp As String In My.Computer.Ports.SerialPortNames
Dim test As String = "0"
If Not SerialPort2.IsOpen Then
Try
SerialPort2.PortName = sp
SerialPort2.Open()
SerialPort2.Write("h")
SerialPort2.ReadLine()
test = SerialPort2.ReadLine()
If test = ("****************************************************" & vbCr) Then
nomeporta = sp
trovatoporta = True
test = "0"
End If
Catch ex As TimeoutException
SerialPort2.Close()
End Try
End If
Next sp
If Not trovatoporta = True Then
MsgBox("Nessuna porta di comunicazione COM attiva ", MsgBoxStyle.Exclamation + vbOKOnly, "Attenzione!")
trovatoporta = False
Else
MsgBox("La porta attiva è la " & (nomeporta), MsgBoxStyle.Exclamation + vbOKOnly, "Attenzione!")
ComboBox1.SelectedItem = nomeporta
My.Settings.Porta = nomeporta
trovatoporta = False
End If
End If
End Sub
Quello che non riesco a capire è perche' questo codice funziona solo quando premo una volta il relativo pulsante, dopodiche' mi da sempre "Nessuna porta di comunicazione trovata"
Per la mia poca esperienza mi sembra che tutto sia corretto ....
Qualcuno sarebbe cosi' gentile da spiegarmi dove sto' sbagliando?
Grazie in anticipo.