protected void FireEvent() { VariableChangeSignalDelegate variableChanged = VariableChanged; if (VariableChanged != null) { VariableChanged(_module, ID, _value); } }
public void SetValue(object value) { _value = value; VariableChangeSignalDelegate variableChanged = VariableChanged; if (VariableChanged != null) { VariableChanged(_module, ID, value); } }
public EncoderInput(DigitalInput inputLeft, DigitalInput inputRight) { _inputLeft = inputLeft; _inputRight = inputRight; UseAsInputVariable = false; if (inputLeft.Device == inputRight.Device) { if (inputLeft.ChipAddress == inputRight.ChipAddress) { UseAsInputVariable = true; Device = inputLeft.Device; ChipAddress = inputLeft.ChipAddress; _leftIndexBiggerThenRight = inputLeft.Index > inputRight.Index; } else { _leftChangedDelegate = new VariableChangeSignalDelegate(_inputLeft_VariableChanged_differentChip); _rightChangedDelegate = new VariableChangeSignalDelegate(_inputRight_VariableChanged_differentChip); } } else { throw new Exception("Obsługa enkoderów składających się z wejść na różnych urządzeniach nie jest zaimplementowana. Skontaktuj się z autorem programu aby pomóc w realizacji tej funkcjonalności."); } _leftOldListeners = _inputLeft.Listeners; if (_leftOldListeners != null) { for (int i = 0; i < _leftOldListeners.Length; i++) { LeftChanged += _leftOldListeners[i]; } } _rightOldListeners = _inputRight.Listeners; if (_rightOldListeners != null) { for (int i = 0; i < _rightOldListeners.Length; i++) { RightChanged += _rightOldListeners[i]; } } if (!UseAsInputVariable) { _inputLeft.Listeners = new VariableChangeSignalDelegate[] { _leftChangedDelegate }; _inputRight.Listeners = new VariableChangeSignalDelegate[] { _rightChangedDelegate }; } else { _inputLeft.Listeners = null; _inputRight.Listeners = null; } }
public void UnregisterListenerForVariable(VariableChangeSignalDelegate listenerMethod, string variableID) { foreach (Variable v in _input) { if (v.ID == variableID) { v.VariableChanged -= listenerMethod; return; } } throw new Exception("Brak zmiennej o identyfikatorze '" + variableID + "'."); }