
Option Explicit
'Deklaration der benötigten Funktionen des K8055
Private Declare Function OpenDevice Lib "k8055d.dll" (ByVal CardAdress As Long) As Long
Private Declare Sub CloseDevice Lib "k8055d.dll" ()
Private Declare Function ReadAnalogChannel Lib "k8055d.dll" (ByVal Channel As Long) As Long
'Boolsche Variable zur Angabe des Verbindungsstatus
Private connected As Boolean
'Zählervariablen für das Zeitintervall
Private i As Long
Private z As Long
'Variablen der MYSQL Verbindungsparameter
Private oConn As New MYSQL_CONNECTION
Private host As String
Private user As String
Private password As String
Private DB As String
Private table As String
'Prozedur, die beim Anklicken des "Verbinden-Buttons" abgearbeitet werden soll
Private Sub btn_connect_Click()
Dim CardAddress As Long
Dim h As Long
Select Case connected
Case False
CardAddress = 0
CardAddress = 3 - (Check1(0).Value + Check1(1).Value * 2)
h = OpenDevice(CardAddress)
Select Case h
Case 0, 1, 2, 3
lbl_Status.Caption = "Card " + Str(h) + " connected"
btn_connect.Caption = "Verbindung trennen"
Case -1
lbl_Status.Caption = "Card " + Str(CardAddress) + " not found"
txt_temp.Text = ""
connected = False
Exit Sub
End Select
If h >= 0 Then Timer1.Enabled = True
If h >= 0 Then Timer2.Enabled = True
connected = True
Timer2.Interval = 60000
Exit Sub
Case True
CloseDevice
btn_connect.Caption = "Verbinden"
lbl_Status.Caption = ""
txt_temp.Text = ""
connected = False
Timer2.Enabled = False
Timer2.Interval = 0
VScroll1.Value = 0
End Select
End Sub
'Prozedur, die beim Anklicken des "connect MYSQL"-Buttons abgearbeitet werden soll
Private Sub btn_mysql_conn_Click()
'Zuweisung der Verbindungsparameter Texfeldinhalt->Variablen
host = txt_host.Text
user = txt_user.Text
password = txt_pw.Text
DB = txt_db.Text
table = txt_table.Text
'Öffnen der MYSQL-Verbindung, sofern die Angaben stimmen...
oConn.OpenConnection host, user, password, DB
If (oConn.State = MY_CONN_OPEN) Then
MsgBox "Verbunden zur MYSQL-Datenbank:" & DB
'ansonsten wird die Funktion zur Fehlerdiagnose der MYSQL-Verbindung aufgerufen
Else
MySQL_Error
End If
End Sub
'Funktion zur Fehlerdiagnose der MYSQL-Verbindung
Private Function MySQL_Error() As Boolean
With oConn.Error
If .Number = 0 Then Exit Function
MsgBox "Error " & .Number & ": " & .Description
MySQL_Error = True
End With
End Function
'Zuweisung Radionbuttons->Zählervariable wenn ein Radiobutton angeklickt wird
Beim Anklicken von Button mit Index 0 wird die Zählervariable i auf 1 gesetzt (1*1min)
Beim Anklicken von Button mit Index 1 wird die Zählervariable i auf 5 gesetzt (1*5min)
...Anschließend wird dieser Wert in der Variable z gespeichert
Sub Option1_Click(Index As Integer)
Select Case Index
Case 0
i = 1
Case 1
i = 5
Case 2
i = 15
Case 3
i = 30
End Select
z = i
End Sub
'Timer, der jede Sekunde eine Prozedur aufruft, die den analogen Ausgang ausliest _
und dem Thermometer die Werte zuweist, sofern eine Verbindung zur Karte besteht
Private Sub Timer1_Timer()
If connected = False Then VScroll1.Value = 0
If connected = False Then Exit Sub
Dim Channel As Long
txt_temp.Text = ReadAnalogChannel(1)
VScroll1.Value = txt_temp.Text * 2
Timer1.Enabled = True
End Sub
Sub form_load()
connected = False
txt_temp.Text = ""
Option1(0).Value = True
End Sub
'Timer, der sobald die Zählervariable i = 0 ist den Eintrag der Zeit und Temperaturwerte _
in die Tabelle der Datenbank veranlasst
Public Sub Timer2_Timer()
i = i - 1
If i = 0 Then oConn.Execute "INSERT INTO kapeluch (Zeit, Temperatur) VALUES ('" & Now & "', '" & txt_temp.Text & "')"
If i = 0 Then i = z
Timer2.Enabled = True
End Sub
'Button zum Schließen aller Verbindungen und beenden der Anwendung
Sub btn_Ende_Click()
CloseDevice
oConn.CloseConnection
Unload Me
End
End Sub