Constructeur RemoteVariableSynchronizer()

Créez un objet
RemoteVariableSynchronizer
pouvant contenir une liste de variables de projet à synchroniser avec les variables de champ associées.
public RemoteVariableSynchronizer()
IMPORTANT: L’objet
RemoteVariableSynchronizer
doit être déclaré comme membre de classe dans le NetLogic.

Constructeur avec la durée d’interrogation par défaut

Dans l’exemple suivant, un objet
variableSynchronizer
est créé pour conserver la valeur d’une variable de projet
Speed
synchronisée avec la valeur d’une variable de champ qui identifie la vitesse d’un moteur. La variable de projet, représentée par l’objet
motorSpeed
, est ajoutée à l’objet
variableSynchronizer
via la méthode
Add()
.
Lorsque la valeur de la variable de champ est modifiée, la méthode
motorSpeed_VariableChange
est exécutée. Lorsque la valeur
motorSpeed
(de la variable de champ) est supérieure à 200, un message d’avertissement est généré. La durée d’interrogation par défaut est définie sur la valeur maximale.
private void Start() { motorSpeed = LogicObject.Owner.GetVariable("Speed");
variableSynchronizer = new RemoteVariableSynchronizer();
variableSynchronizer.Add(motorSpeed); motorSpeed.VariableChange += MotorSpeed_VariableChange; } private void MotorSpeed_VariableChange(object sender, VariableChangeEventArgs e) { if (motorSpeed.Value > 200) { Log.Warning("Speed limit reached!"); } } private IUAVariable motorSpeed; private RemoteVariableSynchronizer variableSynchronizer;
Dans la méthode
Stop()
, la fin de la synchronisation lorsque le nœud parent du NetLogic est supprimé s’effectue en invoquant la méthode
Dispose()
.

Constructeur avec une durée d’interrogation personnalisée

Dans l’exemple suivant, la durée d’interrogation de
RemoteVariableSynchronizer
est définie sur
5000
 millisecondes.
public override void Start() { var variable1 = Project.Current.Get<IUAVariable>("Model/Variable1"); variable1.VariableChange += Variable1_VariableChange;
synchronizer = new RemoteVariableSynchronizer(TimeSpan.FromMilliseconds(5000));
synchronizer.Add(variable1); } private void Variable1_VariableChange(object sender, VariableChangeEventArgs e) { Log.Info($"Variable1 {e.NewValue}"); } public override void Stop() { synchronizer.Dispose(); var variable1 = Project.Current.Get<IUAVariable>("Model/Variable1"); variable1.VariableChange -= Variable1_VariableChange; } RemoteVariableSynchronizer synchronizer;
Fournir une réponse
Vous avez des questions ou des commentaires sur cette documentation ? Veuillez envoyer vos commentaires ici.