DynamicSymbol Class
Dynamic Symbol object.
Inheritance Hierarchy
SystemObject
System.DynamicDynamicObject
TwinCAT.TypeSystemDynamicSymbol
TwinCAT.TypeSystemDynamicAliasInstance
TwinCAT.TypeSystemDynamicArrayInstance
TwinCAT.TypeSystemDynamicInterfaceInstance
TwinCAT.TypeSystemDynamicPointerInstance
TwinCAT.TypeSystemDynamicReferenceInstance
TwinCAT.TypeSystemDynamicUnionInstance
Namespace: TwinCAT.TypeSystem
Assembly: TwinCAT.Ads (in TwinCAT.Ads.dll) Version: 7.0.0+e56d35ccc4675faac24789a4aab60071fc61d470
Syntax
C#
public class DynamicSymbol : DynamicObject,
IDynamicSymbol, ISymbol, IAttributedInstance, IInstance, IBitSize,
ISymbolFactoryServicesProvider, IValueSymbol, IValueRawSymbol, IHierarchicalSymbol, IValueAccessorProvider,
IContextMaskProviderThe DynamicSymbol type exposes the following members.
Properties
| Name | Description |
|---|---|---|
| Gets the inner symbol of this DynamicSymbol | |
| Gets the access rights. | |
| Indicates, that the aggregates symbols is an IProcessImageAddress (and most probably IAdsSymbol) | |
| Gets the Symbol Attributes | |
| Gets the size of the IDataType in bits. | |
| Gets the (aligned) size of of the Type/Instance in Bytes | |
| Gets the category. | |
| Gets the comment of the IInstance | |
| Gets the connection bound to this DynamicSymbol | |
| ||
| Gets a value indicating whether this instance has value (only the non VirtualInstances, what means the Symbols with locations). | |
| Gets the name of the instance (without periods (.) | |
| Gets the relative / absolute access path to the instance (with periods (.)) | |
| Gets a value indicating whether this instance is not basing on a full DataType but instead of some sort of bit mapping | |
| Indicates that the Size of the Object is Byte aligned (BitSize % 8 == 0) | |
| Gets a value indicating whether this Symbol is acontainer type. | |
| Gets a value indicating whether this ISymbol is persistent. | |
| Indicates that the IInstance represents a Pointer type (Pointer TO) | |
| Gets a value indicating whether this instance is a primitive type. | |
| Gets a value indicating whether IInstance is a property. | |
| Indicates that this instance is read only. | |
| Gets a value indicating whether this instance is recursive. | |
| Indicates that the IInstance represents a Reference type (REFERENCE TO) | |
| Gets a value indicating whether this instance is static. | |
| Gets the normalized instance name (fixed name for dynamic property access that doesn't contain invalid characters), | |
| Gets the notification settings. | |
| Gets the parent Symbol | |
| Gets the size of the IInstance in bytes. | |
| Gets the SubSymbols of the ISymbol | |
| Gets the name of the DataType that is used for this IInstance. | |
| Gets the value encoding. |
Methods
| Name | Description |
|---|---|---|
| Equals | |
| Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. | |
| Returns the enumeration of all dynamic member names. | |
| Gets the HashCode of the Address | |
| Provides a DynamicMetaObject that dispatches to the dynamic virtual methods. The object can be encapsulated inside another DynamicMetaObject to provide custom behavior for individual actions. This method supports the Dynamic Language Runtime infrastructure for language implementers and it is not intended to be used directly from your code. | |
| Gets the Type of the current instance. | |
| Creates a shallow copy of the current Object. | |
| Handler function for reading ADS 'Any' Values. | |
| Handler function for reading Raw symbol value. | |
| Handler function reading the raw value of the DynamicSymbol. | |
| Handler function for the | |
| Handler function reading the DynamicSymbols value asynchronously. | |
| Sets a new InstanceName InstancePath | |
| Handler function for the | |
| Handler Function for writing value. | |
| Handler function for reading symbols raw value. | |
| Handler function for writing the raw DynamicSymbol value. | |
| Handler Function for writing value. | |
| Handler Function for writing value. | |
| Reads the value of this Value into a new created instance of the managed type | |
| Reads the raw value of the IValueSymbol (Ads Read / Write) | |
| Reads the Symbols raw value | |
| Read raw value as an asynchronous operation. | |
| Reads the value of this DynamicSymbol. | |
| Reads the value of this DynamicSymbol. | |
| Reads the Value of the IValueSymbol asynchronously. | |
| Returns a String that represents this instance. | |
| Provides implementation for binary operations. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for operations such as addition and multiplication. | |
| Provides implementation for type conversion operations. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for operations that convert an object from one type to another. | |
| Provides the implementation for operations that initialize a new instance of a dynamic object. This method is not intended for use in C# or Visual Basic. | |
| Provides the implementation for operations that delete an object by index. This method is not intended for use in C# or Visual Basic. | |
| Provides the implementation for operations that delete an object member. This method is not intended for use in C# or Visual Basic. | |
| Provides the implementation for operations that get a value by index. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for indexing operations. | |
| Provides the implementation for operations that get member values. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for operations such as getting a value for a property. | |
| Provides the implementation for operations that invoke an object. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for operations such as invoking an object or a delegate. | |
| Provides the implementation for operations that invoke a member. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for operations such as calling a method. | |
| Reads the Value of the IValueSymbol | |
| Provides the implementation for operations that set a value by index. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for operations that access objects by a specified index. | |
| Provides the implementation for operations that set member values. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for operations such as setting a value for a property. | |
| Provides implementation for unary operations. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for operations such as negation, increment, or decrement. | |
| Writes the specified value to the DynamicSymbol. | |
| Reads the value of this Value into the specified managed value. | |
| Writes the value represented by the managed value to this Value | |
| Writes the raw value of the IValueSymbol (Ads Read / Write) | |
| Writes the raw value of the IValueSymbol (Ads Read / Write) | |
| Writes the raw value of the IValueSymbol (Ads Read / Write) | |
| Writes the specified value to the DynamicSymbol. | |
| Writes the specified value to the DynamicSymbol. | |
| Writes the Value of the IValueSymbol |
Events
| Name | Description |
|---|---|---|
| Occurs when the RawValue of the IValueSymbol has changed. | |
| Occurs when the value of the IValueSymbol has changed. |
Operators
| Name | Description |
|---|---|---|
| Operator== | |
| Implements the != operator. |
Extension Methods
| Name | Description |
|---|---|---|
| Indicates, that the Instance value includes process memory data, that cannot be read in one memory block. | |
| Indicates, that the field is static or is not part of the parents processimage memory location | |
| Poll symbol values on trigger signals. | |
| Polls the symbol as value sequence of object values with a specified period time. | |
| Polls symbol values on trigger signals. | |
| Polls the symbol as value sequence of object values with a specified period time. | |
| Poll symbol values as a value sequence on trigger signals (typed) | |
| Polls the symbol as value sequence of object values with a specified period time (typed) | |
| Poll symbol values on trigger signals (typed) | |
| Poll symbol values on trigger signals (typed) | |
| Polls the symbol as value sequence of object values with a specified period time (typed) | |
| Poll symbol values as a sequence of annotated results (Value + ErrorCode) | |
| Poll symbol values with communication return codes. | |
| Gets the Unwrapped Symbol | |
| Gets an observable sequence when the value of the IValueSymbol has changed. | |
| Subscribes the IValueSymbol to an observable sequence of values and writes them to the IValueSymbol. | |
| Subscribes the IValueSymbol to an observable sequence of values and writes them to the IValueSymbol. | |
| Subscribes the IValueSymbol to an observable sequence of values and writes them to the IValueSymbol. | |
| Subscribes the IValueSymbol to an observable sequence of values and writes them to the IValueSymbol. |
Remarks
The DynamicSymbol adds dynamic run time behaviour to the ISymbol/IValueSymbol. That means e.g. for StructSymbols that .NET Properties are defined and dispatched at runtime to the structs fields like they are defined in TwinCAT / ADS Types. Indexed access to Array Symbols is another example where the dynamic runtime support takes place.
Example
Sample for the dynamic resolution of Symbols:
Dynamic Symbol access
/// <summary>
/// Defines the entry point of the application.
/// </summary>
/// <param name="args">The arguments.</param>
static async void Main(string[] args)
{
// Get the AdsAddress from command-line arguments
AmsAddress address = ArgParser.Parse(args);
CancellationTokenSource cancelSource = new CancellationTokenSource();
CancellationToken cancel = cancelSource.Token;
using (AdsClient client = new AdsClient())
{
// Connect to the target device
client.Connect(address);
// Usage of "dynamic" Type and Symbols (>= .NET4 only)
SymbolLoaderSettings settings = new SymbolLoaderSettings(SymbolsLoadMode.DynamicTree);
IAdsSymbolLoader dynLoader = (IAdsSymbolLoader)SymbolLoaderFactory.Create(client, settings);- DynamicSymbol Class
- DynamicSymbol._InnerSymbol Property
- DynamicSymbol.AccessRights Property
- DynamicSymbol.AllowIGIOAccess Property
- DynamicSymbol.Attributes Property
- DynamicSymbol.BitSize Property
- DynamicSymbol.ByteSize Property
- DynamicSymbol.Category Property
- DynamicSymbol.Comment Property
- DynamicSymbol.Connection Property
- DynamicSymbol.DataType Property
- DynamicSymbol.HasValue Property
- DynamicSymbol.InstanceName Property
- DynamicSymbol.InstancePath Property
- DynamicSymbol.IsBitType Property
- DynamicSymbol.IsByteAligned Property
- DynamicSymbol.IsContainerType Property
- DynamicSymbol.IsPersistent Property
- DynamicSymbol.IsPointer Property
- DynamicSymbol.IsPrimitiveType Property
- DynamicSymbol.IsReadOnly Property
- DynamicSymbol.IsRecursive Property
- DynamicSymbol.IsReference Property
- DynamicSymbol.IsStatic Property
- DynamicSymbol.NormalizedName Property
- DynamicSymbol.NotificationSettings Property
- DynamicSymbol.Parent Property
- DynamicSymbol.Size Property
- DynamicSymbol.SubSymbols Property
- DynamicSymbol.TypeName Property
- DynamicSymbol.ValueEncoding Property
- DynamicSymbol.Equals Method
- DynamicSymbol.GetDynamicMemberNames Method
- DynamicSymbol.GetHashCode Method
- DynamicSymbol.OnReadAnyValue Method
- DynamicSymbol.OnReadRawValue Method
- DynamicSymbol.OnReadRawValueAsync Method
- DynamicSymbol.OnReadValue Method
- DynamicSymbol.OnReadValueAsync Method
- DynamicSymbol.OnSetInstanceName Method
- DynamicSymbol.OnTryReadValue Method
- DynamicSymbol.OnTryWriteValue Method
- DynamicSymbol.OnWriteRawValue Method
- DynamicSymbol.OnWriteRawValueAsync Method
- DynamicSymbol.OnWriteValue Method
- DynamicSymbol.OnWriteValueAsync Method
- DynamicSymbol.ReadAnyValue Method
- DynamicSymbol.ReadRawValue Method
- DynamicSymbol.ReadRawValue Method (Int32)
- DynamicSymbol.ReadRawValueAsync Method
- DynamicSymbol.ReadValue Method
- DynamicSymbol.ReadValue Method (Int32)
- DynamicSymbol.ReadValueAsync Method
- DynamicSymbol.ToString Method
- DynamicSymbol.TryGetMember Method
- DynamicSymbol.TryReadValue Method
- DynamicSymbol.TryWriteValue Method
- DynamicSymbol.UpdateAnyValue Method
- DynamicSymbol.WriteAnyValue Method
- DynamicSymbol.WriteRawValue Method (.Byte.)
- DynamicSymbol.WriteRawValue Method (.Byte., Int32)
- DynamicSymbol.WriteRawValueAsync Method
- DynamicSymbol.WriteValue Method (Object)
- DynamicSymbol.WriteValue Method (Object, Int32)
- DynamicSymbol.WriteValueAsync Method
- DynamicSymbol.RawValueChanged Event
- DynamicSymbol.ValueChanged Event
- DynamicSymbol.Equality Operator
- DynamicSymbol.Inequality Operator
- DynamicSymbol.syncObject Field
- DynamicAliasInstance Class
- DynamicArrayInstance Class
- DynamicPointerInstance Class
- DynamicReferenceInstance Class
- DynamicUnionInstance Class
- DynamicInterfaceInstance Class