Example #1
0
            protected void FireEvent()
            {
                VariableChangeSignalDelegate variableChanged = VariableChanged;

                if (VariableChanged != null)
                {
                    VariableChanged(_module, ID, _value);
                }
            }
Example #2
0
            public void SetValue(object value)
            {
                _value = value;
                VariableChangeSignalDelegate variableChanged = VariableChanged;

                if (VariableChanged != null)
                {
                    VariableChanged(_module, ID, value);
                }
            }
Example #3
0
        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;
            }
        }
Example #4
0
 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 + "'.");
 }