OVH Cloud OVH Cloud

OPCServer: comment bloquer les events ?

1 réponse
Avatar
ulisse
Bonjour à tous



Description de mon utilisation:

Pour gérer un canal série j'utilise un "OPCServer".
Dans les données que je recois il y a aussi la date et le temps
que j'utilise pour effectuer des opérations périodiques.
À chaque arrivée de la donnée "temps" est associé,au moyen d'un OPCGroup,

un évènement que j'appelle "Time_DataChange".

Ma question:

L'élaboration de l'évènement "Time_DataChange" nécessite beaucoup de temps

et il peut arriver qu'à l'arrivée du prochain "Time_DataChange",
l'élaboration ne soit pas encore terminée.
Pour éviter cela j'aimerais suspendre le déclenchement de l'évènement

"Time_DataChange" pour permettre de terminer la procédure

d'élaboration en cours.
J'ai essayé d'utiliser les attributs "IsActivate" et "IsSubscribed"

mais OPCServer va en "tilt".
Je vous remercie de votre aide.

Cordiales salutations

ulisse

1 réponse

Avatar
Gloops
Bonjour,

Je verrais bien quelque chose comme


Dim booTemps As Boolean 'déclaration au niveau module

'début de traitement, par exemple Form_Load :
booTemps = False

Private Sub Time_DataChange()
If booTemps = True then Exit Sub
booTemps = True

' Oh le long traitement que voilà

booTemps = False
End Sub

Si le timer n'a pas le temps de faire If booTemps = True then Exit Sub,
alors il faut augmenter sa propriété Interval, il ne doit pas y avoir
grand-chose dedans.

Je fais ça avec mes synchronisations de sous-formulaires, pour les
créations d'enregistrements (il n'y a pas que les timers qui peuvent
avoir à être neutralisés), le hic a juste été de désigner le bon module
de la bonne manière. Dans ton cas le problème ne devrait pas se poser.











ulisse a écrit, le 24/05/2005 11:11 :
Bonjour à tous



Description de mon utilisation:

Pour gérer un canal série j'utilise un "OPCServer".
Dans les données que je recois il y a aussi la date et le temps
que j'utilise pour effectuer des opérations périodiques.
À chaque arrivée de la donnée "temps" est associé,au moyen d'un OPCGroup,

un évènement que j'appelle "Time_DataChange".

Ma question:

L'élaboration de l'évènement "Time_DataChange" nécessite beaucoup de temps

et il peut arriver qu'à l'arrivée du prochain "Time_DataChange",
l'élaboration ne soit pas encore terminée.
Pour éviter cela j'aimerais suspendre le déclenchement de l'évènement

"Time_DataChange" pour permettre de terminer la procédure

d'élaboration en cours.
J'ai essayé d'utiliser les attributs "IsActivate" et "IsSubscribed"

mais OPCServer va en "tilt".
Je vous remercie de votre aide.

Cordiales salutations

ulisse