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
|
'_____________________________________________________________________________
'
' Interface VB pour PHP - Station Meteo
'
' Copyright Anthropo@free.fr
'_____________________________________________________________________________
'-----------------------------------------------------------------------------
'
' Déclaration des methodes de la DLL d'accès à l'interface
'
'-----------------------------------------------------------------------------
Private Declare Function OpenDevice Lib "k8055d.dll" (ByVal CardAddress As Long) As Long
Private Declare Sub CloseDevice Lib "k8055d.dll" ()
Private Declare Sub WriteAllDigital Lib "k8055d.dll" (ByVal data As Long)
Private Declare Sub ClearAllDigital Lib "k8055d.dll" ()
Private Declare Sub SetAllDigital Lib "k8055d.dll" ()
Private Declare Function ReadDigitalChannel Lib "k8055d.dll" (ByVal Channel As Long) As Boolean
Private Declare Function ReadCounter Lib "k8055d.dll" (ByVal CounterNr As Long) As Long
Private Declare Sub ResetCounter Lib "k8055d.dll" (ByVal CounterNr As Long)
Private Declare Sub SetCounterDebounceTime Lib "k8055d.dll" (ByVal CounterNr As Long, ByVal DebounceTime As Long)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'_____________________________________________________________________________
'-----------------------------------------------------------------------------
'
' Déclaration du parametre on/off
'
'-----------------------------------------------------------------------------
Private demarrer As Boolean
'_____________________________________________________________________________
'-----------------------------------------------------------------------------
'
'Declaration des parametres physiques de l'anémometre : durée de la capture en secondes, rayon des branches de l'anémo en centimetres
'
'-----------------------------------------------------------------------------
Private Echantillon As Long
Private Rayon As Single
Public Function Parametres_anemo(ByVal data1 As Long, ByVal Data2 As Long)
Rayon = (data1 / 100) ' en m
Echantillon = Data2 'en s
End Function
' ______________________________________________________________________________
' ----------------------------------------------------------------------------
' Déclaration des methodes de l'objet COM
'
'-----------------------------------------------------------------------------
Public Function Connect(ByVal Addresse As Long)
Dim h As Long
h = OpenDevice(Addresse)
If (h = O) Then Connect = "Carte connectée" Else Connect = "La carte n'a pas été trouvée"
End Function
Public Sub Deconnect()
CloseDevice
End Sub
Public Function Vitesse()
ResetCounter (1)
SetCounterDebounceTime 1, 0
Sleep (Echantillon * 1000) 'en ms
Vitesse = Str(Round((ReadCounter(1) / Echantillon) * 2 * (4 * Atn(1)) * Rayon * 3.6, 2)) ' & " Km/h" ' V=F*2PI*R en m/s ==> en Km/h
End Function
Public Function Direction()
Sleep (1000)
Dim i As Long
i = (ReadDigitalChannel(3) * 4 + ReadDigitalChannel(4) * 8 + ReadDigitalChannel(5) * 16)
Direction = i
End Function
Public Function temperature() 'la temperature est definie de manière aléatoire en attendant le capteur
Randomize Timer
temperature = Int(Rnd * 25) + 1
End Function
'_____________________________________________________________________________
'-----------------------------------------------------------------------------
'
' Déclenchement et arrêt de l'automate d'enregistrement des données depuis l'administration Php.
'
'-----------------------------------------------------------------------------
Public Function lancer_capture()
demarrer = True
Dim Debut As Date
Debut = Now ' renvoie la date et l'heure courante
' Routine de pause (remplacer "s" (secondes) par une des autres unités de temps : s Secondes, n Minutes ou h Heures)
Do While (demarrer = True)
SetAllDigital
Do While Abs(DateDiff("s", Debut, Now)) < 20
DoEvents ' Repasse la main au système en attendant
Loop
If (demarrer = True) Then
capturer
Else
Exit Do
End If
ClearAllDigital
Loop
End Function
Public Function arreter_capture()
'affectation d'une valeur
demarrer = false
End Function
'_____________________________________________________________________________
'-----------------------------------------------------------------------------
'
' Connection à la base de données Mysql, on va enregistrer les données toutes les trois minutes le jour même
'
'-----------------------------------------------------------------------------
Public Sub capturer()
.../...
End Sub
'_____________________________________________________________________________
'----------------------------------------------------------------------------- |
Partager