Erst mal danke für die zeit
bei VB.net/6 hätte ich das Problem das ich dann mich über ein Quellcode für ne Datenbank schlau machen müsste(eintragen, ordnen, anzeigen u.s.w.) und das ganze Projekt soll ende nächster Woche fertig sein. ich hab leider nur Freizeitkenntnisse in VB und da ich mich in letzter zeit sehr viel mit Access befast habe passte das irgendwie. ich weiß nicht welche Version von VB Access verwenden benutzte Access 2000 (9.0.3821 SR-1).
Ich glaub ich beschreib das Projekt etwas genauer.
Aufbau:
Wir haben ein Laisiersensor der Entfernung mist und sie an einer LOGO(ist ein Relais nur besser)weiter gibt(0V-10V).
Die LOGO macht aus den 10V 2V und gibt das Analogsignal an unseren Mikrocontroler(10Bit USB Datenerfassungssystem heißt der und kann maximal 2047mV ab) der das ganze in ein Digitalsignal verwandelt.
Angeschlossen wirt das per USP und durch Softwareinstallation als COMPort5 erkant.
Meine aufgabe:
Ich soll werte des Sensor erfassen und in einer art Ranking anzeigen(mit Sortieren nach Punkte).
Ich hab ein interessanten Quellcode gefunden aber ich glaube das mir ne Library(verweis)fehlt weil er Probleme mit den befehlen Combo1.additem oder Combo1.clear hat.
Bei der Funktion der Codes bin ich mir nicht sicher weil ich sie nicht testen kann aber ich glaub es führt mich ein stück näher zu Lösung
Hier mal der Code
Option Explicit
Dim PortOpen As Boolean
Public Function PortTest(COMPortNummer As Integer) As Boolean
MSComm1.CommPort = COMPortNummer
'wenn ein Fehler auftritt, dann funktioniert der Port nicht
On Error Resume Next
MSComm1.PortOpen = True
If Err = 0 Then
'Port verfügbar
PortTest = True
MSComm1.PortOpen = False
Else
PortTest = False
MSComm1.PortOpen = False
End If
End Function
Private Sub Command1_Click()
Me.Text1 = Me.Text1 & Str(Time) & " +++ Versuch den Text" & _
" zu senden" & vbCrLf
If PortOpen = False Then
MsgBox „Bitte vorher einen Port öffnen“
Me.Text1 = Me.Text1 & Str(Time) & _
" +++ Fehler beim Senden des Textes, Port " & _
„ist nicht geöffnet“ & vbCrLf & vbCrLf
Exit Sub
End If
If Me.Text2 = „“ Then
MsgBox „Und was ist mit dem Text“
Me.Text1 = Me.Text1 & Str(Time) & " +++ Text fehlt" & _
vbCrLf & vbCrLf
Exit Sub
End If
On Error Resume Next
MSComm1.Output = Me.Text2 + vbCr
If Err 0 Then
MsgBox „Text nicht fehlerfrei gesendet!“
Me.Text1 = Me.Text1 & Str(Time) & " +++ Text nicht " & _
„fehlerfrei gesendet“ & vbCrLf & vbCrLf
Else
Me.Text1 = Me.Text1 & Str(Time) & _
" +++ „“" + Me.Text2 & „“„wurde gesendet“ & _
vbCrLf & vbCrLf
End If
End Sub
Private Sub Command2_Click()
Dim Portzaehler As Integer
Me.Text1 = Me.Text1 & Str(Time) & _
" +++ Vorhandene COM-Ports abfragen" & vbCrLf
’ Combobox löschen
Me.Combo1.Clear
For Portzaehler = 1 To 16
If PortTest(Portzaehler) Then
Me.Combo1.AddItem „COM“ & Str(Portzaehler)
End If
Next
If Me.Combo1.ListCount = 0 Then
Me.Combo1.AddItem „Kein Comport verfügbar“
Me.Text1 = Me.Text1 & Str(Time) & _
" +++ Kein Comport verfügbar" & _
vbCrLf & vbCrLf
Else
Me.Text1 = Me.Text1 & Str(Time) & _
" +++" & Str(Me.Combo1.ListCount) & _
" Comport(s) verfügbar" & vbCrLf & vbCrLf
End If
'Selektion auf den ersten Eintrag setzen
Me.Combo1.ListIndex = 0
End Sub
Private Sub Command3_Click()
Dim CPort As Byte
Dim Settings As String
Me.Text1 = Me.Text1 & Str(Time) & _
" +++ Versuch den COM-Port zu öffnen" _
& vbCrLf
If PortOpen = True Then
MsgBox "Es ist bereits ein Port geöffnet. Bitte " & _
„vorher schließen!“
Me.Text1 = Me.Text1 & Str(Time) & _
" +++ COM-Port kann nicht geöffnet " & _
„werden, da bereits ein Port geöffnet ist“ _
& vbCrLf & vbCrLf
Exit Sub
End If
CPort = Val(Mid(Me.Combo1.List(Me.Combo1.ListIndex), 4, _
Len(Me.Combo1.List(Me.Combo1.ListIndex))))
If CPort = 0 Then
MsgBox "Fehler! Sind eventuell keine COM-Ports " & _
„vorhanden?“
Me.Text1 = Me.Text1 & Str(Time) & _
" +++ COM-Port kann nicht geöffnet " & _
"werden " & vbCrLf & vbCrLf
Else
MSComm1.CommPort = CPort
Settings = Me.Combo2.List(Me.Combo2.ListIndex)
Select Case Me.Combo4.ListIndex
Case 0: Settings = Settings & „,E“
Case 1: Settings = Settings & „,O“
Case 2: Settings = Settings & „,N“
Case 3: Settings = Settings & „,M“
Case 4: Settings = Settings & „,S“
End Select
Settings = Settings & „,“ & _
Me.Combo3.List(Me.Combo3.ListIndex)
Settings = Settings & „,“ & _
Me.Combo5.List(Me.Combo5.ListIndex)
MSComm1.Settings = Settings
On Error Resume Next
MSComm1.PortOpen = True
If Err 0 Then
MsgBox "Fehler! Sind eventuell keine COM-Ports " & _
„vorhanden oder die Einstellungen falsch?“
Me.Text1 = Me.Text1 & Str(Time) & _
" +++ COM-Port kann nicht geöffnet werden" _
& vbCrLf & vbCrLf
Else
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.InputLen = 0
Me.Text1 = Me.Text1 & _
Str(Time) & " +++ COM-Port wurde geöffnet" _
& vbCrLf & vbCrLf
PortOpen = True
End If
End If
End Sub
Private Sub Command4_Click()
Me.Text1 = Me.Text1 & Str(Time) & _
" +++ Versuch den COM-Port zu schließen" & vbCrLf
If PortOpen = False Then
MsgBox "Es ist kein Port geöffnet, ein Schließen ist " & _
„daher nicht notwendig“
Me.Text1 = Me.Text1 & Str(Time) & _
" +++ COM-Port kann nicht geschlossen " & _
"werden, da nicht " & „notwendig“ & vbCrLf & _
vbCrLf
Else
On Error Resume Next
MSComm1.PortOpen = False
If Err 0 Then
MsgBox „Fehler beim Schließen des Ports“
Me.Text1 = Me.Text1 & _
Str(Time) & " +++ COM-Port kann nicht " & _
„geschlossen werden“ & vbCrLf & vbCrLf
Else
Me.Text1 = Me.Text1 & Str(Time) & " +++ COM-Port " & _
„geschlossen“ & vbCrLf & vbCrLf
PortOpen = False
End If
End If
End Sub
Private Sub Form_Load()
’ Oberfläche initialisieren
Me.Combo1.Clear
Me.Combo1.AddItem „Kein Comport verfügbar“
Me.Combo1.ListIndex = 0
Me.Combo2.AddItem „4800“
Me.Combo2.AddItem „9600“
Me.Combo2.AddItem „19200“
Me.Combo2.AddItem „38400“
Me.Combo2.AddItem „57600“
Me.Combo2.AddItem „115200“
Me.Combo2.ListIndex = 4
Me.Combo3.AddItem „4“
Me.Combo3.AddItem „5“
Me.Combo3.AddItem „6“
Me.Combo3.AddItem „7“
Me.Combo3.AddItem „8“
Me.Combo3.ListIndex = 4
Me.Combo4.AddItem „Gerade“
Me.Combo4.AddItem „Ungerade“
Me.Combo4.AddItem „Keine“
Me.Combo4.AddItem „Markierung“
Me.Combo4.AddItem „Leerzeichen“
Me.Combo4.ListIndex = 2
Me.Combo5.AddItem „1“
Me.Combo5.AddItem „1.5“
Me.Combo5.AddItem „2“
Me.Combo5.ListIndex = 0
PortOpen = False
Me.Text1 = Str(Time) & _
" +++ Programmstart. Willkommen." & _
vbCrLf & vbCrLf
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comOverrun: MsgBox „Datenverlust!“
Case comRxOver: MsgBox „Datenverlust!“
Case comEvReceive: Me.Text3 = Me.Text3 + MSComm1.Input
End Select
End Sub
Ich möchte mich schon mal im voraus bedanken für die antworten und bin auch für jeden Quellcode dankbar(auch aus VB.net) weil mich doch irgend wie immer ein stück in Meiner Ausbildung weiter bringt. ^^;