Construtor RemoteVariableSynchronizer()

Crie um objeto
RemoteVariableSynchronizer
que possa conter uma lista de variáveis do projeto a ser mantido sincronizado com as variáveis de campo relacionadas.
public RemoteVariableSynchronizer()
IMPORTANTE: O objeto
RemoteVariableSynchronizer
deve ser declarado como um membro da classe dentro do NetLogic.

Construtor com o tempo de sondagem padrão

No exemplo a seguir, um objeto
variableSynchronizer
é criado para manter o valor de uma variável
Speed
do projeto sincronizado com o valor de uma variável de campo que identifica a velocidade de um motor. A variável do projeto, representada pelo objeto
motorSpeed
, é adicionada ao objeto
variableSynchronizer
por meio do método
Add()
.
Quando a variável de campo muda seu valor, o método
motorSpeed_VariableChange
é executado. Quando o valor de
motorSpeed
(da variável de campo) for maior que 200, uma mensagem de aviso será gerada. O tempo de sondagem padrão é definido para velocidade total.
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;
No método
Stop()
, o fim da sincronização quando o nó pai do NetLogic é removido é causado pela invocação do método
Dispose()
.

Construtor com um tempo de sondagem personalizado

No exemplo a seguir, o tempo de sondagem para
RemoteVariableSynchronizer
é definido como
5000
milissegundos.
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;
Dê sua opinião
Tem dúvidas ou comentários sobre esta documentação? Por favor, envie seu comentário aqui.