Script:Lib Chrono
Un article de MacodaWiki.
lib_chrono.vbs : Permet de comptabiliser du temps (chronomètre)
'*-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-*
'* LIBRAIRIE *
'* *
'* Voir l'entete de lib_log !!! *
'* *
'* *
'* *
'* *
'* *
'* 2006/08/01 *
'* *
'*-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-*
'*****************************************************************************
' Récupère une valeur (int ou double) globale dans la mémoire de Homeseer
'
'##############################################################################
sub gCHRONO_Init(sItem)
gUTIL_Init_Valeur(sItem&"_Total")
gUTIL_Delete_Variable(sItem&"_depart")
end sub
'##############################################################################
Sub gCHRONO_Fin(sItem,dDuree,iTotal_Duree)
Dim dHeure_depart,dHeure_fin
giNiveau_Librairie = giNiveau_Librairie + 1
gFct_Log_LIB LOG_NORMAL,"Fin sItem =>"&sItem&"<"
' On récupère la date et l'heure de démarrage
dHeure_depart = hs.GetVar(sItem&"_depart")
hs.DeleteVar sItem&"_depart"
dHeure_fin = Now
if (dHeure_depart = "Name not found") or (dHeure_depart = "") then
dHeure_depart = dHeure_fin
gFct_Log_LIB LOG_NORMAL,"Name not Found pour >"&sItem&"_depart<"
end if
gFct_Log_LIB LOG_NORMAL,"Heure départ "&sItem&" " & Cstr(dHeure_depart)
gFct_Log_LIB LOG_NORMAL,"Heure actuelle "&sItem&" " & Cstr(dHeure_fin)
dDuree = CDate(dHeure_fin) - Cdate(dHeure_depart)
gFct_Log_LIB LOG_NORMAL,"Diff : " & cdate(dDuree )
' On cumule les différentes durées
iTotal_Duree = hs.GetVar(sItem&"_Total")
if (iTotal_Duree = "Name not found") or (iTotal_Duree = "")then
iTotal_Duree = 0
gFct_Log_LIB LOG_NORMAL,"Total_Duree pas trouvé !!! =>>"&sItem&"_Total<<"
else
gFct_Log_LIB LOG_NORMAL,"On vient de récupérer Total_Duree : " & cdate(iTotal_Duree)
end if
iTotal_Duree = iTotal_Duree + dDuree
hs.SaveVar sItem&"_Total",iTotal_Duree
gFct_Log_LIB LOG_NORMAL,"Total_journalier : " & cdate(iTotal_Duree)
giNiveau_Librairie = giNiveau_Librairie - 1
End Sub
'##############################################################################
Sub gCHRONO_Fin_SQL(sItem)
Dim bBase
Dim rRequete
Dim sSQL
Dim dDuree
Dim iTotal_Duree
giNiveau_Librairie = giNiveau_Librairie + 1
gFct_Log_LIB LOG_NORMAL,"Fin_SQL sItem =>"&sItem&"<"
gCHRONO_Fin sItem,dDuree,iTotal_Duree
' Pas d'insertion s'il n'y a pas de données !
if (iTotal_Duree > 0) then
' Instertion dans la base de données
Set bBase = CreateObject("ADODB.Connection") ' Objet base de données (a affecter avec le nom de la base=HOMESEER)
Set rRequete = CreateObject("ADODB.Recordset") ' Pointeur pour les requêtes sur la base
bBase.Open "HOMESEER" ' Ouverture de l'objet Base : Obligatoire avant tout autre opération
sSQL = "INSERT INTO tb_"&sItem&" ( [Date_op],[Duree], [Cumul] ) VALUES (Now, '"&cdate(dDuree)&"','"&cdate(iTotal_Duree)&"');"
gFct_Log_LIB LOG_BAVARD,"SQL = >"&sSQL&"<"
rRequete.Open sSQL, bBase ' Insertion d'une ligne dans la table
bBase.Close ' Fermeture de la base à la fin
else
gFct_Log_LIB LOG_BAVARD,"Pas d'insertion car vide !!!!"
end If
giNiveau_Librairie = giNiveau_Librairie - 1
End Sub
'##############################################################################
Sub gCHRONO_Debut(sItem)
Dim dHeure_depart
Dim i,j
' On arrête le compteur avant (au cas où il y aurait un nouveau départ, sans arrêt préalable) !
gCHRONO_Fin sItem,i,j
' Stocke la date et l'heure de départ
hs.CreateVar sItem&"_depart"
dHeure_depart = Now
hs.SaveVar sItem&"_depart",dHeure_depart
gFct_Log_LIB LOG_NORMAL,"Heure départ "&sItem&" " & Cstr(dHeure_depart)
End Sub
'##############################################################################
Sub gCHRONO_Temps_actuel(sItem)
Dim dHeure_depart, dHeure_fin
Dim iTotal_Duree,dDuree
gFct_Log_LIB LOG_NORMAL,"sItem =>"&sItem&"<"
' On récupère la date et l'heure de démarrage
dHeure_depart = hs.GetVar(sItem&"_depart")
dHeure_fin = Now
if (dHeure_depart = "Name not found") or (dHeure_depart = "") then
dHeure_depart = dHeure_fin
end if
gFct_Log_LIB LOG_NORMAL,"Heure départ "&sItem&" " & Cstr(dHeure_depart)
gFct_Log_LIB LOG_NORMAL,"Heure actuelle "&sItem&" " & Cstr(dHeure_fin)
dDuree = CDate(dHeure_fin) - Cdate(dHeure_depart)
gFct_Log_LIB LOG_NORMAL,"Diff : " & cdate(dDuree )
' On cumule les différentes durées
iTotal_Duree = hs.GetVar(sItem&"_Total")
if (iTotal_Duree = "Name not found") or (iTotal_Duree = "")then
iTotal_Duree = 0
gFct_Log_LIB LOG_NORMAL,"Total_Duree pas trouvé !!! =>>"&sItem&"_Total<<"
else
gFct_Log_LIB LOG_NORMAL,"On vient de récupérer Total_Duree : " & cdate(iTotal_Duree)
end if
iTotal_Duree = iTotal_Duree + dDuree
gFct_Log_LIB LOG_NORMAL,"Total_journalier ACTUELLE : " & cdate(iTotal_duree)
' On stocke dans une variable "temporaire"
hs.CreateVar sItem&"_Total_act"
hs.SaveVar sItem&"_Total_act",iTotal_Duree
End Sub
