Hallo,
ich habe einen PIC mit USB über den ich Daten an ein vb.net Programm
schicke. Das Funktioniert auch alles prima.
Jetzt habe ich mein vb Programm so erweitert, dass es sich automatisch
mit dem Kontroller verbindet. Hierfür frage ich einmal die Sekunde die
vorhandenen COM-Ports ab und wenn der richtige dabei ist verbinde ich
mich mit ihm.
Um zu überprüfen ob die Verbindung noch besteht schicke ich anschließend
Daten zum PIC, wenn diese nicht mehr gesendet werden können ist die
Verbindung weg und das vb Programm beendet die Verbindung.
Auch das Funktionert noch.
Wenn ich den USB-Stecker rausziehe trennt sich die Verbindung und wenn
ich den Stecker wieder reinstecke verbinden sich PIC und das vb Programm
auch wieder.
Wenn ich allerdings den Stecker rausziehe und schnell wieder reinstecke
findet das vb Programm den COM Port nicht. Im Gerätemanager taucht er
allerdings auf.
Ich hoffe es kann mir jemand helfen.
Gruß Martin
1 | Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
|
2 | Dim i As Integer
|
3 |
|
4 | ' Com-Ports suchen und laden
|
5 | If FlagsConnect = 0 And FlagsComFound = 0 Then
|
6 | Me.comboPort.Items.Clear()
|
7 | For i = 0 To My.Computer.Ports.SerialPortNames.Count - 1
|
8 | Me.comboPort.Items.Add((My.Computer.Ports.SerialPortNames.Item(i) & " ").Substring(0, 5).Trim)
|
9 | Next
|
10 | Me.comboPort.Sorted = True
|
11 | Dim LoadComPortDesc As New System.Threading.Thread(AddressOf LoadComPortDescription)
|
12 | LoadComPortDesc.Start()
|
13 | End If
|
14 |
|
15 | ' Daten an Pic senden, wenn diese nicht gesendet werden können Verbindung trennen
|
16 | If FlagsConnect = 1 Then
|
17 | Try
|
18 | COM.Write(Data, 0, 3)
|
19 | Catch ex As Exception
|
20 | Disconnect()
|
21 | End Try
|
22 | End If
|
23 |
|
24 | ' wenn richtiger COM Port gefunden, Verbindung aufbauen
|
25 | If FlagsComFound = 1 And FlagsConnect = 0 Then
|
26 | Connect()
|
27 | End If
|
28 | End Sub
|