Ejemplo n.º 1
0
        /*
         * internal Variable<TSubValue> GetArrayElement<TSubValue>(int index)
         * {
         *  if (index < 0) throw new ArgumentException();
         *  var fullName = string.Format("{0}[{1}]", _symbol.Name, index);
         *
         *  var symbol = _connection.GetSymbol(fullName);
         *
         *  return _connection.CreateVariable<TSubValue>(symbol, _isWriteable);
         * }
         *
         * internal Variable<TSubValue> GetStructureField<TSubValue>(string field)
         * {
         *  var fullName = string.Format("{0}.{1}", _symbol.Name, field);
         *
         *  var symbol = _connection.GetSymbol(fullName);
         *
         *  return _connection.CreateVariable<TSubValue>(symbol, _isWriteable);
         * }
         */

        public TValue Read()
        {
            try
            {
                if (_arrayDimensions != null)
                {
                    return(_connection.ReadVariable <TValue>(_handle, _arrayDimensions));
                }
                else
                {
                    return(_connection.ReadVariable <TValue>(_handle));
                }
            }
            catch (AdsException ex)
            {
                throw new ControllerCommunicationException("Unable to read variable due to issues with controller connection.", ex);
            }
        }