RemoteVariableSynchronizer() constructor

Cree un objeto
RemoteVariableSynchronizer
que pueda contener una lista de variables de proyecto que se conservarán sincronizadas con las variables de campo relacionadas.
public RemoteVariableSynchronizer()
IMPORTANTE: El objeto
RemoteVariableSynchronizer
se debe declarar como miembro de clase dentro de NetLogic.

Constructor con tiempo de sondeo predeterminado

En el siguiente ejemplo, se crea un objeto
variableSynchronizer
para mantener el valor de una variable de proyecto
Speed
sincronizada con el valor de una variable de campo que identifica la velocidad de un motor. La variable de proyecto, representada por el objeto
motorSpeed
, se agrega al objeto
variableSynchronizer
a través del método
Add()
.
Cuando la variable de campo cambia su valor, se ejecuta el método
motorSpeed_VariableChange
. Si el valor de
motorSpeed
(de la variable de campo) es superior a 200, se genera un mensaje de advertencia. El tiempo de sondeo predeterminado está establecido a la velocidad máxima.
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;
En el método
Stop()
, la terminación de la sincronización cuando se quita el nodo primario de NetLogic se aplica invocando al método
Dispose()
.

Constructor con tiempo de sondeo personalizado

En el siguiente ejemplo, el tiempo de sondeo para
RemoteVariableSynchronizer
está establecido en
5000
milisegundos.
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;
Entregue su opinión
¿Tiene dudas o comentarios acerca de esta documentación? Por favor deje su opinión aquí.