Reference
OpcNode Members
Represents the base class of the node classes which define the nodes of an address space, such as OpcObjectNode, OpcVariableNode and OpcMethodNode.
Reference
OpcNode Members
Properties
Category
Gets the NodeCategory attribute which identifies the kind of node and is therefore used to classify the node regarding its use and purpose.
public OpcNodeCategory Category { get; }Public ReadOnly Property Category As OpcNodeCategoryProperty value
One of the members defined by the OpcNodeCategory enumeration.
Implements
Description
Gets or sets the value of the optional Description attribute which shall explain the meaning of the node.
public OpcText Description { get; set; }Public Property Description As OpcTextProperty value
A localizable instance of the OpcText class which optionally explains the meaning of the node or a null reference (Nothing in Visual Basic) if there is no description associated with the node.
Implements
Remarks
The menaning of the node defines the usage, the context and the purpose of the node.
Descriptions
Gets the OpcNodeGlobalization instance used to control the localization and other globalization related tasks for the Description attribute of the current node.
public OpcNodeGlobalization Descriptions { get; }Public ReadOnly Property Descriptions As OpcNodeGlobalizationProperty value
An instance of the OpcNodeGlobalization class used by the current OpcNode to perform localization tasks for its Description.
DisplayName
Gets or sets the value of the DisplayName attribute which defines the localizable name of the node.
public OpcText DisplayName { get; set; }Public Property DisplayName As OpcTextProperty value
An instance of the OpcText class which defines the localizable name of the node.
Implements
Remarks
Client application should use this attribute if they want to display the name of the node to the user. The string part of the DisplayName is restricted to 512 characters.
DisplayNames
Gets the OpcNodeGlobalization instance used to control the localization and other globalization related tasks for the DisplayName attribute of the current node.
public OpcNodeGlobalization DisplayNames { get; }Public ReadOnly Property DisplayNames As OpcNodeGlobalizationProperty value
An instance of the OpcNodeGlobalization class used by the current OpcNode to perform localization tasks for its DisplayName.
HasPendingChanges
Gets a value indiciating whether there exists any pending change on the node.
public bool HasPendingChanges { get; }Public ReadOnly Property HasPendingChanges As BooleanProperty value
The value true if PendingChanges is not equals to None; otherwise the value false.
Implements
Id
Gets the value of the NodeId attribute which unambiguously identifies the node.
public OpcNodeId Id { get; }Public ReadOnly Property Id As OpcNodeIdProperty value
An instance of the OpcNodeId class representing the unambiguously identifier of the node.
Implements
Remarks
Some servers may accept alternative node identifiers in addition to the canonical node identifier represented by this attribute.
A server shall persist the node identifier of a node, that is, it shall not generate new node identifiers when rebooting.
Model
Gets the OpcNodeModel which has been used to model this OpcNode regarding its whole representation in the address space.
public OpcNodeModel Model { get; }Public ReadOnly Property Model As OpcNodeModelProperty value
An instance of the OpcNodeModel class which provides the modelling directives to use to model the whole node tree of this OpcNode.
Name
Gets or sets the value of the BrowseName attribute which defines the non-localizable human-readable name used when browsing the address space.
public OpcName Name { get; set; }Public Property Name As OpcNameProperty value
Implements
Remarks
The Name should never be used to display the name of the a node. Use the DisplayName instead for this purpose.
Unlike node identifiers the Name cannot be used to unambiguously identify the node. Different nodes may have the same browse name. The namespace is provided to make the browse name unique in some cases in the context of a node (e.g. properties of a node) although not unique in the context of the server. If different organizations define browse names for properties, the namespace of the Name provided by the organization makes the Name unique, although different organizations may use the same string having a slightly different meaning. Servers may often choose to use the same namespace for the node identifier and the browse name. However, if they want to provide a standard property, its browse name shall have the namespace of the standards body although the namespace of the node identifier reflects something else, for example the local server.
It is recommended that standard bodies defining standard type definitions use their namespace for the node identifier of the type definition node as well as for the browse name of the type definition node.
The string-part of the browse name is case sensitive. That is, clients shall consider them case sensitive. Server are allowed to handle browse names passed in service requests as case insensitive.
Use the value of this property to construct browse paths (see OpcNamePath).
Namespace
Gets the namespace of the node.
public OpcNamespace Namespace { get; }Public ReadOnly Property [Namespace] As OpcNamespaceProperty value
The OpcNamespace assigned to the node or, if no namespace has been assigned to the node, the Namespace of its Id.
Implements
Parent
Gets the parent node of the node.
public virtual IOpcNode Parent { get; }Public Overridable ReadOnly Property Parent As IOpcNodeProperty value
An instance implementing the IOpcNode interface which represents the phyiscal parent of the node. In general a node can have multiple (logical) parent nodes, but this property provides the only physical parent node of the node. The value can also be a null reference (Nothing in Visual Basic) in case there the node does only have logical parent nodes.
Implements
PendingChanges
Gets a value indicating the most recent changes performed on the node since their last notification.
public OpcNodeChanges PendingChanges { get; }Public ReadOnly Property PendingChanges As OpcNodeChangesProperty value
A bitwise combination of OpcNodeChanges members identifying the changes made on the node or None if there was no change on the node since the last change notification.
Implements
Remarks
Use one of the ApplyChanges overloads to reset the value of this property to None or use one of the UpdateChanges overloads to partially reset the pending changes.
QueryEventsCallback
Gets or sets a callback used to query any event information which belongs to the node.
public OpcQueryEventsCallback QueryEventsCallback { get; set; }Public Property QueryEventsCallback As OpcQueryEventsCallbackProperty value
A OpcQueryEventsCallback used to query any event information which belongs to the node. The value can also be a null reference (Nothing in Visual Basic).
Remarks
A condition refresh reports the retained conditions of the node's children and of the nodes added by AddNotifier without the callback. Reporting such a condition from the callback as well makes a client receive it twice. The callback is meant for event information that is no child and no notifier of the node.
ReadDescriptionCallback
Gets or sets a callback used to read the value of the Description attribute.
public OpcReadAttributeValueCallback<OpcText> ReadDescriptionCallback { get; set; }Public Property ReadDescriptionCallback As OpcReadAttributeValueCallback(Of OpcText)Property value
OpcReadAttributeValueCallback<OpcText>
A OpcReadAttributeValueCallback<T> used to read the value of the Description attribute as an OpcText. The value can also be a null reference (Nothing in Visual Basic).
ReadDisplayNameCallback
Gets or sets a callback used to read the value of the DisplayName attribute.
public OpcReadAttributeValueCallback<OpcText> ReadDisplayNameCallback { get; set; }Public Property ReadDisplayNameCallback As OpcReadAttributeValueCallback(Of OpcText)Property value
OpcReadAttributeValueCallback<OpcText>
A OpcReadAttributeValueCallback<T> used to read the value of the DisplayName attribute as an OpcText. The value can also be a null reference (Nothing in Visual Basic).
ReadUserWriteAccessCallback
Gets or sets a callback used to read the value of the UserWriteAccess attribute.
public OpcReadAttributeValueCallback<OpcAttributeWriteAccess> ReadUserWriteAccessCallback { get; set; }Public Property ReadUserWriteAccessCallback As OpcReadAttributeValueCallback(Of OpcAttributeWriteAccess)Property value
OpcReadAttributeValueCallback<OpcAttributeWriteAccess>
A OpcReadAttributeValueCallback<T> used to read the value of the UserWriteAccess attribute as a combination of the members defined by the OpcAttributeWriteAccess enumeration. The value can also be a null reference (Nothing in Visual Basic).
ReadWriteAccessCallback
Gets or sets a callback used to read the value of the WriteAccess attribute.
public OpcReadAttributeValueCallback<OpcAttributeWriteAccess> ReadWriteAccessCallback { get; set; }Public Property ReadWriteAccessCallback As OpcReadAttributeValueCallback(Of OpcAttributeWriteAccess)Property value
OpcReadAttributeValueCallback<OpcAttributeWriteAccess>
A OpcReadAttributeValueCallback<T> used to read the value of the WriteAccess attribute as a combination of the members defined by the OpcAttributeWriteAccess enumeration. The value can also be a null reference (Nothing in Visual Basic).
SymbolicName
Gets or sets a symbolic name for the node which is not expected to be globally unique.
public string SymbolicName { get; set; }Public Property SymbolicName As StringProperty value
The symbolic name of the node or a null reference (Nothing in Visual Basic) if there is no symbolic name assigned. The name can only contain characters which are valid for an XML element name.
Implements
Remarks
The symbolic name is not an attribute of the node and is therefore not provided to clients; it is used when the state of the node is saved, for example as the name of its XML element. In case there UseNodeNameAsDefaultSymbolicName is set to the value true and no symbolic name is assigned, the Value of the Name is used as the symbolic name when the node is initialized.
Tag
Gets or sets the object that contains additional user data about the node.
public object Tag { get; set; }Public Property Tag As ObjectProperty value
An object that contains additional user data about the node. The default is null (Nothing in Visual Basic).
Implements
UserWriteAccess
Gets or sets the value of the optional UserWriteAccess attribute which exposes the possibilities of a client to write the attributes of the node taking user access rights into account.
public OpcAttributeWriteAccess UserWriteAccess { get; set; }Public Property UserWriteAccess As OpcAttributeWriteAccessProperty value
A combination of the members defined by the OpcAttributeWriteAccess enumeration.
Implements
UserWriteAccess, UserWriteAccess
Remarks
The mask value of this attribute can only further restrict the WriteAccess attribute, when it is set to not writable in the general case that applies for every user.
WriteAccess
Gets or sets the value of the optional WriteAccess attribute which exposes the posibilities of a client to write the attributes of the node.
public OpcAttributeWriteAccess WriteAccess { get; set; }Public Property WriteAccess As OpcAttributeWriteAccessProperty value
A combination of the members defined by the OpcAttributeWriteAccess enumeration.
Implements
Remarks
The mask value of this attribute does not take any user access rights into account, that is, altough an attribute is writable this may be restricted to a certain user / user group.
If a server does not have the ability to get the write mask information for a specific attribute from the underlying system, it should state that it is writable. If a write opertation is called on the attribute, the server should transfer this request and return the corresponding OpcStatusCode if such a request is rejected.
Only in case there a corresponding attribute is set in the mask of this attribute the according attribute is writable; otherwise it can not accessed for writing.
WriteDescriptionCallback
Gets or sets a callback used to write the value of the Description attribute.
public OpcWriteAttributeValueCallback<OpcText> WriteDescriptionCallback { get; set; }Public Property WriteDescriptionCallback As OpcWriteAttributeValueCallback(Of OpcText)Property value
OpcWriteAttributeValueCallback<OpcText>
A OpcWriteAttributeValueCallback<T> used to write the value of the Description attribute as an OpcText. The value can also be a null reference (Nothing in Visual Basic).
WriteDisplayNameCallback
Gets or sets a callback used to write the value of the DisplayName attribute.
public OpcWriteAttributeValueCallback<OpcText> WriteDisplayNameCallback { get; set; }Public Property WriteDisplayNameCallback As OpcWriteAttributeValueCallback(Of OpcText)Property value
OpcWriteAttributeValueCallback<OpcText>
A OpcWriteAttributeValueCallback<T> used to write the value of the DisplayName attribute as an OpcText. The value can also be a null reference (Nothing in Visual Basic).
WriteUserWriteAccessCallback
Gets or sets a callback used to write the value of the UserWriteAccess attribute.
public OpcWriteAttributeValueCallback<OpcAttributeWriteAccess> WriteUserWriteAccessCallback { get; set; }Public Property WriteUserWriteAccessCallback As OpcWriteAttributeValueCallback(Of OpcAttributeWriteAccess)Property value
OpcWriteAttributeValueCallback<OpcAttributeWriteAccess>
A OpcWriteAttributeValueCallback<T> used to write the value of the UserWriteAccess attribute as a combination of the members defined by the OpcAttributeWriteAccess enumeration. The value can also be a null reference (Nothing in Visual Basic).
WriteWriteAccessCallback
Gets or sets a callback used to write the value of the WriteAccess attribute.
public OpcWriteAttributeValueCallback<OpcAttributeWriteAccess> WriteWriteAccessCallback { get; set; }Public Property WriteWriteAccessCallback As OpcWriteAttributeValueCallback(Of OpcAttributeWriteAccess)Property value
OpcWriteAttributeValueCallback<OpcAttributeWriteAccess>
A OpcWriteAttributeValueCallback<T> used to write the value of the WriteAccess attribute as a combination of the members defined by the OpcAttributeWriteAccess enumeration. The value can also be a null reference (Nothing in Visual Basic).
Methods
AddNotifier
When implemented in a subtype, adds the node to the collection of notifiers (= event sources) of this node.
public virtual void AddNotifier(OpcContext context, IOpcNode node)Public Overridable Sub AddNotifier(context As OpcContext, node As IOpcNode)Parameters
| Name | Type | Description |
|---|---|---|
context | OpcContext | The OpcContext to use to add the node as the notifying event source. |
node | IOpcNode | The IOpcNode instance acting as the notifier. |
Exceptions
| Exception | Condition |
|---|---|
| Argument | The context or node is null reference ( |
| Not | Adding notifiers is only supported on OpcObjectNode and its subclasses. |
Implements
Remarks
If the node is the first notifier being added to the collection of notifiers the EventNotifier attribute of this OpcObjectNode is set to 'SubscribeToEvents'.
ApplyChanges
| Overload | Description |
|---|---|
| ApplyChanges( | Notifies about changes performed on the node since the last notification and resets the pending changes to None. |
| ApplyChanges( | Notifies about changes performed on the node ( |
Exceptions (all overloads)
| Exception | Condition |
|---|---|
| Argument | The context is a null reference ( |
ApplyChanges(OpcContext)
Notifies about changes performed on the node since the last notification and resets the pending changes to None.
public virtual void ApplyChanges(OpcContext context)Public Overridable Sub ApplyChanges(context As OpcContext)Parameters
| Name | Type | Description |
|---|---|---|
context | OpcContext | The OpcContext to use to notify about changes performed on the node. |
Implements
Remarks
This method influences the value of the properties PendingChanges and HasPendingChanges. After a call to ApplyChanges the PendingChanges property returns None and the HasPendingChanges the value false. The method is not synchronized, see ApplyChanges.
ApplyChanges(OpcContext, bool)
Notifies about changes performed on the node (and optionally on its children) since the last notification and resets the pending changes to None.
public virtual void ApplyChanges(OpcContext context, bool recursive)Public Overridable Sub ApplyChanges(context As OpcContext, recursive As Boolean)Parameters
| Name | Type | Description |
|---|---|---|
context | OpcContext | The OpcContext to use to notify about changes performed on the node. |
recursive | Boolean | The value true if pending changes are to be notified for all children as well; otherwise the value false. |
Implements
Remarks
This method influences the value of the properties PendingChanges and HasPendingChanges. After a call to ApplyChanges the PendingChanges property returns None and the HasPendingChanges the value false.
The method is not synchronized. A change made by another thread while the method runs can be reset without being notified. Change and apply the changes of a node from one thread at a time, or hold OpcNodeManager.SyncRoot of the node manager of the node, which describes what that lock covers.
AttributeValue
| Overload | Description |
|---|---|
| AttributeValue( | Retrieves the value of the attribute specified. |
| AttributeValue< | Retrieves the value of the attribute specified. |
AttributeValue(OpcAttribute)
Retrieves the value of the attribute specified.
public object AttributeValue(OpcAttribute attribute)Public Function AttributeValue(attribute As OpcAttribute) As ObjectParameters
| Name | Type | Description |
|---|---|---|
attribute | OpcAttribute | One of the members defined by the OpcAttribute enumeration which identifies the attribute its value is queried. |
Returns
The value of the attribute specified or a null reference (Nothing in Visual Basic) in case there the value of the attribute is a null reference or it is not supported by the current OpcNode.
Implements
AttributeValue<T>(OpcAttribute)
Retrieves the value of the attribute specified.
public T AttributeValue<T>(OpcAttribute attribute)Public Function AttributeValue(Of T)(attribute As OpcAttribute) As TType parameters
| Name | Description |
|---|---|
T | The expected type of value the attribute shall offer. |
Parameters
| Name | Type | Description |
|---|---|---|
attribute | OpcAttribute | One of the members defined by the OpcAttribute enumeration which identifies the attribute its value is queried. |
Returns
T
The value of the attribute as the type T specified or the default value of the type T in case there the value of the attribute is a null reference (Nothing in Visual Basic) or it is not supported by the current OpcNode.
Implements
Child
Retrieves the child node its Name property matches exactly the name specified.
public IOpcNode Child(OpcContext context, OpcName name)Public Function Child(context As OpcContext, name As OpcName) As IOpcNodeParameters
| Name | Type | Description |
|---|---|---|
context | OpcContext | The OpcContext to use to lookup the requested child node. |
name | OpcName | The full qualified OpcName of the node to lookup. |
Returns
An instance implementing the IOpcNode interface its Name exactly matches the name specified, if such a node is a known child node of this node. Otherwise a null reference (Nothing in Visual Basic).
Exceptions
| Exception | Condition |
|---|---|
| Argument | The context or name is a null reference ( |
Implements
ChildModel
Retrieves the model of the child node with the name specified from the Model of the node.
protected OpcNodeModel ChildModel(OpcName name)Protected Function ChildModel(name As OpcName) As OpcNodeModelParameters
| Name | Type | Description |
|---|---|---|
name | OpcName | The OpcName of the child node whose model is to be retrieved. |
Returns
The OpcNodeModel defined for the child node with the name specified, the model defined for all children if there is no model for the specific child node or None if neither of them is defined.
Exceptions
| Exception | Condition |
|---|---|
| Argument | The name is a null reference ( |
ChildModellingDirective
Retrieves the modelling directive of the child node with the name specified from the Model of the node.
protected OpcModellingDirective ChildModellingDirective(OpcName name)Protected Function ChildModellingDirective(
name As OpcName) As OpcModellingDirectiveParameters
| Name | Type | Description |
|---|---|---|
name | OpcName | The OpcName of the child node whose modelling directive is to be retrieved. |
Returns
The Directive of the model which ChildModel retrieves for the child node.
Exceptions
| Exception | Condition |
|---|---|
| Argument | The name is a null reference ( |
Children
Retrieves a sequence of all nodes organized as children of this node.
public IEnumerable<IOpcNode> Children(OpcContext context)Public Function Children(context As OpcContext) As IEnumerable(Of IOpcNode)Parameters
| Name | Type | Description |
|---|---|---|
context | OpcContext | The OpcContext to use to lookup the child nodes. |
Returns
A sequence of instances implementing the IOpcNode interface which representing the nodes organized as child nodes of this node.
Exceptions
| Exception | Condition |
|---|---|
| Argument | The context is a null reference ( |
Implements
DefineModel
| Overload | Description |
|---|---|
| DefineModel< | Defines a model rule for the model of the node type specified by T using the rule which is to be applied to the node known under the path passed. |
| DefineModel< | Defines a model rule for the model of the node type specified by T using the rule which is to be applied to the node known under the pathElements passed. |
DefineModel<T>(OpcModellingRule, OpcNamePath)
Defines a model rule for the model of the node type specified by T using the rule which is to be applied to the node known under the path passed.
protected static void DefineModel<T>(
OpcModellingRule rule,
OpcNamePath path)
where T : OpcNodeProtected Shared Sub DefineModel(Of T As OpcNode)(
rule As OpcModellingRule,
path As OpcNamePath)Type parameters
| Name | Description |
|---|---|
T | The type of OpcNode for which the model rule is to be applied. |
Parameters
| Name | Type | Description |
|---|---|---|
rule | OpcModellingRule | The OpcModellingRule to apply. |
path | OpcNamePath | The OpcNamePath to the node affected. |
Exceptions
| Exception | Condition |
|---|---|
| Argument | The path is a null reference ( |
DefineModel<T>(OpcModellingRule, params OpcName[])
Defines a model rule for the model of the node type specified by T using the rule which is to be applied to the node known under the pathElements passed.
protected static void DefineModel<T>(
OpcModellingRule rule,
params OpcName[] pathElements)
where T : OpcNodeProtected Shared Sub DefineModel(Of T As OpcNode)(
rule As OpcModellingRule,
ParamArray pathElements As OpcName())Type parameters
| Name | Description |
|---|---|
T | The type of OpcNode for which the model rule is to be applied. |
Parameters
| Name | Type | Description |
|---|---|---|
rule | OpcModellingRule | The OpcModellingRule to apply. |
pathElements | params OpcName[] | The OpcName's to the node affected. |
GetType
Retrieves the Type which implementes the node type which is identified by the typeId specified.
public static Type GetType(OpcNodeId typeId)Public Shared Function [GetType](typeId As OpcNodeId) As TypeParameters
| Name | Type | Description |
|---|---|---|
typeId | OpcNodeId | The OpcNodeId which identifies the Type to retrieve. |
Returns
The Type which is known under the typeId specified or a null reference (Nothing in Visual Basic) if there doesn't exist a known Type which is associated with the typeId specified.
Exceptions
| Exception | Condition |
|---|---|
| Argument | The typeId is a null reference ( |
GetTypeInfo
| Overload | Description |
|---|---|
| GetTypeInfo< | Retrieves the OpcNodeTypeInfo which declares the node type implemented by the T specified. |
| GetTypeInfo( | Retrieves the OpcNodeTypeInfo which declares the node type which is identified by the typeId specified. |
| GetTypeInfo( | Retrieves the OpcNodeTypeInfo which declares the node type implemented by the underlyingType specified. |
GetTypeInfo<T>()
Retrieves the OpcNodeTypeInfo which declares the node type implemented by the T specified.
public static OpcNodeTypeInfo GetTypeInfo<T>()Public Shared Function GetTypeInfo(Of T)() As OpcNodeTypeInfoType parameters
| Name | Description |
|---|---|
T | The Type which implements the OpcNodeTypeInfo to retrieve. |
Returns
The OpcNodeTypeInfo which declares the T specified or a null reference (Nothing in Visual Basic) if there isn't a OpcNodeTypeInfo associated with the T specified.
GetTypeInfo(OpcNodeId)
Retrieves the OpcNodeTypeInfo which declares the node type which is identified by the typeId specified.
public static OpcNodeTypeInfo GetTypeInfo(OpcNodeId typeId)Public Shared Function GetTypeInfo(typeId As OpcNodeId) As OpcNodeTypeInfoParameters
| Name | Type | Description |
|---|---|---|
typeId | OpcNodeId | The OpcNodeId which identifies the OpcNodeTypeInfo to retrieve. |
Returns
The OpcNodeTypeInfo which is known under the typeId specified or a null reference (Nothing in Visual Basic) if there doesn't exist a known OpcNodeTypeInfo which is associated with the typeId specified.
Exceptions
| Exception | Condition |
|---|---|
| Argument | The typeId is a null reference ( |
GetTypeInfo(Type)
Retrieves the OpcNodeTypeInfo which declares the node type implemented by the underlyingType specified.
public static OpcNodeTypeInfo GetTypeInfo(Type underlyingType)Public Shared Function GetTypeInfo(underlyingType As Type) As OpcNodeTypeInfoParameters
| Name | Type | Description |
|---|---|---|
underlyingType | Type | The Type which implements the OpcNodeTypeInfo to retrieve. |
Returns
The OpcNodeTypeInfo which declares the underlyingType specified or a null reference (Nothing in Visual Basic) if there isn't a OpcNodeTypeInfo associated with the underlyingType specified.
Exceptions
| Exception | Condition |
|---|---|
| Argument | The underlyingType is a null reference ( |
Implement
Performs node specific implementation tasks to finalize the node creation before it can be used for the first time.
protected virtual void Implement(OpcContext context)Protected Overridable Sub Implement(context As OpcContext)Parameters
| Name | Type | Description |
|---|---|---|
context | OpcContext | The OpcContext to use to implement the node. |
InitializeChildren
Initializes the children of the node.
protected virtual void InitializeChildren(OpcContext context)Protected Overridable Sub InitializeChildren(context As OpcContext)Parameters
| Name | Type | Description |
|---|---|---|
context | OpcContext | The OpcContext to use to initialize the children. |
Exceptions
| Exception | Condition |
|---|---|
| Argument | The context is a null reference ( |
InitializeDefaults
Initializes the default values used by the node implementation represented / required.
protected virtual void InitializeDefaults()Protected Overridable Sub InitializeDefaults()Remarks
This method is always called by the lowest constructor of the OpcNode constructor chain to initialize all default values which are explicitly necessary before the node is (for example) added as a child node of another node. In case there a parent node is passed to constructor this becomes essential to ensure that the node is initialized appropriately before it is added to the parent.
Only implement this method in case there is a custom node setup required (typically performed within the custom constructor). Any code for member field initialization or additional logic can be kept in the constructor.
IsAccessible
Determines whether the node is accessible using the context specified within the view identified by the viewId specified.
public virtual bool IsAccessible(OpcContext context, OpcNodeId viewId)Public Overridable Function IsAccessible(
context As OpcContext,
viewId As OpcNodeId) As BooleanParameters
| Name | Type | Description |
|---|---|---|
context | OpcContext | The OpcContext within that the node is accessed. |
viewId | OpcNodeId | The OpcNodeId of the view within that the node is accessed or Null if the node is not accessed within a specific view. |
Returns
The value true if the node is accessible; otherwise the value false. The default implementation always returns the value true.
IsChangePending
Determines whether all of the changes specified by the change are pending on the node (see PendingChanges).
public bool IsChangePending(OpcNodeChanges change)Public Function IsChangePending(change As OpcNodeChanges) As BooleanParameters
| Name | Type | Description |
|---|---|---|
change | OpcNodeChanges | A bitwise combination of OpcNodeChanges members identifying the changes to check. |
Returns
The value true if all of the changes specified by the change are pending on the node; otherwise the value false.
Implements
OnAfterAdded
Raises the AfterAdded event using the event data specified.
protected virtual void OnAfterAdded(OpcNodeAddedEventArgs e)Protected Overridable Sub OnAfterAdded(e As OpcNodeAddedEventArgs)Parameters
| Name | Type | Description |
|---|---|---|
e | Opc | The Opc |
OnAfterApplyChanges
Raises the AfterApplyChanges event using the event data specified.
protected virtual void OnAfterApplyChanges(OpcNodeChangesEventArgs e)Protected Overridable Sub OnAfterApplyChanges(e As OpcNodeChangesEventArgs)Parameters
| Name | Type | Description |
|---|---|---|
e | Opc | The Opc |
OnBeforeAdded
Raises the BeforeAdded event using the event data specified.
protected virtual void OnBeforeAdded(OpcNodeAddedEventArgs e)Protected Overridable Sub OnBeforeAdded(e As OpcNodeAddedEventArgs)Parameters
| Name | Type | Description |
|---|---|---|
e | Opc | The Opc |
OnBeforeApplyChanges
Raises the BeforeApplyChanges event using the event data specified.
protected virtual void OnBeforeApplyChanges(OpcNodeChangesEventArgs e)Protected Overridable Sub OnBeforeApplyChanges(e As OpcNodeChangesEventArgs)Parameters
| Name | Type | Description |
|---|---|---|
e | Opc | The Opc |
OnChangesUnhandled
Raises the ChangesUnhandled event using the event data specified.
protected virtual void OnChangesUnhandled(OpcNodeChangesEventArgs e)Protected Overridable Sub OnChangesUnhandled(e As OpcNodeChangesEventArgs)Parameters
| Name | Type | Description |
|---|---|---|
e | Opc | The Opc |
OnEventReported
Raises the EventReported event using the event data specified.
protected virtual void OnEventReported(OpcNodeEventReportedEventArgs e)Protected Overridable Sub OnEventReported(e As OpcNodeEventReportedEventArgs)Parameters
| Name | Type | Description |
|---|---|---|
e | Opc | The Opc |
QueryEventsCore
Queries the events which belong to the node using the QueryEventsCallback, if one is assigned.
protected virtual void QueryEventsCore(
OpcNodeContext context,
OpcEventCollection events)Protected Overridable Sub QueryEventsCore(
context As OpcNodeContext,
events As OpcEventCollection)Parameters
| Name | Type | Description |
|---|---|---|
context | OpcNodeContext | The OpcNodeContext to use to query the node events. |
events | Opc | The Opc |
ReadAttributeValueCore
Determines the value of the attribute to read. In case there a callback is assigned to read the value of the attribute (see ReadDisplayNameCallback, ReadDescriptionCallback, ReadUserWriteAccessCallback and ReadWriteAccessCallback) the callback determines the value; otherwise the preliminary value is returned.
protected virtual OpcAttributeValue<T> ReadAttributeValueCore<T>(
OpcReadAttributeValueContext context,
OpcAttributeValue<T> value)Protected Overridable Function ReadAttributeValueCore(Of T)(
context As OpcReadAttributeValueContext,
value As OpcAttributeValue(Of T)) As OpcAttributeValue(Of T)Type parameters
| Name | Description |
|---|---|
T | The type of attribute value to read. |
Parameters
| Name | Type | Description |
|---|---|---|
context | Opc | The Opc |
value | Opc | The preliminary Opc |
Returns
The determined OpcAttributeValue<T>.
References
Retrieves a sequence of immutable references between this node and other nodes.
public virtual IEnumerable<OpcReference> References()Public Overridable Function References() As IEnumerable(Of OpcReference)Returns
A sequence of OpcReference instances providing hierarchical and non-hierarchical references from this node to other nodes.
Implements
RegisterType
| Overload | Description |
|---|---|
| RegisterType< | Registers the type defined by T as the node object type to create in case there a node instance is to be created for the type definition identified by the OpcT specified. |
| RegisterType( | Registers the nodeType specified as the node object type to create in case there a node instance is to be created for the type node identified by the OpcnodeType specified. |
| RegisterType< | Registers the type defined by T as the node object type to create in case there a node instance is to be created for the type definition identified by the nodeTypeId specified. |
| RegisterType( | Registers the nodeType specified as the node object type to create in case there a node instance is to be created for the type node identified by the nodeTypeId specified. |
RegisterType<T>()
Registers the type defined by T as the node object type to create in case there a node instance is to be created for the type definition identified by the OpcNodeTypeAttribute defined on the T specified.
public static void RegisterType<T>()Public Shared Sub RegisterType(Of T)()Type parameters
| Name | Description |
|---|---|
T | The type to use in case there a node object for the node type equals to the node type identifier defined using the Opc |
Exceptions
| Exception | Condition |
|---|---|
| Argument | The type T uses any node type specific attribute which offers invalid information about the node type to associate with the Type. |
RegisterType(Type)
Registers the nodeType specified as the node object type to create in case there a node instance is to be created for the type node identified by the OpcNodeTypeAttribute defined on the nodeType specified.
public static void RegisterType(Type nodeType)Public Shared Sub RegisterType(nodeType As Type)Parameters
| Name | Type | Description |
|---|---|---|
nodeType | Type | The Type to use in case there a node object for the node type equals to the node type identifier defined using the Opc |
Exceptions
| Exception | Condition |
|---|---|
| Argument | The nodeType uses any node type specific attribute which offers invalid information about the node type to associate with the Type. |
| Argument | The nodeType is a null reference ( |
RegisterType<T>(OpcNodeId)
Registers the type defined by T as the node object type to create in case there a node instance is to be created for the type definition identified by the nodeTypeId specified.
public static void RegisterType<T>(OpcNodeId nodeTypeId)Public Shared Sub RegisterType(Of T)(nodeTypeId As OpcNodeId)Type parameters
| Name | Description |
|---|---|
T | The type to use in case there a node object for the node type equals to the node type identifier defined using the Opc |
Parameters
| Name | Type | Description |
|---|---|---|
nodeTypeId | OpcNodeId | The identifier of the type node for which the T is to be used to create a node object instance. |
Exceptions
| Exception | Condition |
|---|---|
| Argument | The type T uses any node type specific attribute which offers invalid information about the node type to associate with the Type. |
| Argument | The nodeTypeId is a null reference ( |
Remarks
It is not possible to register the same or a different node type for the nodeTypeId specified as long there is already a node type registered for the type node specified by nodeTypeId.
RegisterType(Type, OpcNodeId)
Registers the nodeType specified as the node object type to create in case there a node instance is to be created for the type node identified by the nodeTypeId specified.
public static void RegisterType(Type nodeType, OpcNodeId nodeTypeId)Public Shared Sub RegisterType(nodeType As Type, nodeTypeId As OpcNodeId)Parameters
| Name | Type | Description |
|---|---|---|
nodeType | Type | The Type to use in case there a node object for the node type equals to the node type identifier defined using the Opc |
nodeTypeId | OpcNodeId | The identifier of the type node for which the nodeType is to be used to create a node object instance. |
Exceptions
| Exception | Condition |
|---|---|
| Argument | The nodeType uses any node type specific attribute which offers invalid information about the node type to associate with the Type. |
| Argument | The nodeType or nodeTypeId is a null reference ( |
Remarks
It is not possible to register the same or a different node type for the nodeTypeId specified as long there is already a node type registered for the type node specified by nodeTypeId.
RegisterTypes
| Overload | Description |
|---|---|
| RegisterTypes( | Registers all non-abstract types in the assembly specified which defines the Opc |
| RegisterTypes( | Registers the nodeTypes specified as the node object type to create in case there a node instance is to be created for the type nodes identified by the OpcnodeTypes specified. |
| RegisterTypes( | Registers the nodeType and the further specified nodeTypes as the node object type to create in case there a node instance is to be created for the type node identified by the OpcnodeType or on one of the nodeTypes specified. |
Exceptions (all overloads)
| Exception | Condition |
|---|---|
| Argument | A Type does not use any node type specific attribute which offers invalid information about the node type to associate with the Type. |
RegisterTypes(Assembly)
Registers all non-abstract types in the assembly specified which defines the OpcNodeTypeAttribute.
public static void RegisterTypes(Assembly assembly)Public Shared Sub RegisterTypes(assembly As Assembly)Parameters
| Name | Type | Description |
|---|---|---|
assembly | Assembly | The Assembly its types are inspected for types which using the Opc |
Exceptions
| Exception | Condition |
|---|---|
| Argument | The assembly is a null reference ( |
Remarks
The Type instances to register need to define the OpcNodeTypeAttribute and needs to be a subclass of the OpcNode class.
RegisterTypes(IEnumerable<Type>)
Registers the nodeTypes specified as the node object type to create in case there a node instance is to be created for the type nodes identified by the OpcEventTypeAttribute used on one of the nodeTypes specified.
public static void RegisterTypes(IEnumerable<Type> nodeTypes)Public Shared Sub RegisterTypes(nodeTypes As IEnumerable(Of Type))Parameters
| Name | Type | Description |
|---|---|---|
nodeTypes | IEnumerable<Type> | A sequence of Type instances representing the types to use in case there a node object for the node type equals to the node type identifier defined using the Opc |
Exceptions
| Exception | Condition |
|---|---|
| Argument | The nodeTypes is a null reference ( |
Remarks
Any null reference (Nothing in Visual Basic) in nodeTypes is ignored.
RegisterTypes(Type, params Type[])
Registers the nodeType and the further specified nodeTypes as the node object type to create in case there a node instance is to be created for the type node identified by the OpcNodeTypeAttribute used on the nodeType or on one of the nodeTypes specified.
public static void RegisterTypes(Type nodeType, params Type[] nodeTypes)Public Shared Sub RegisterTypes(
nodeType As Type,
ParamArray nodeTypes As Type())Parameters
| Name | Type | Description |
|---|---|---|
nodeType | Type | The Type instance to use in case there a node object for the node type equals to the node type identifier defined using the Opc |
nodeTypes | params Type[] | An array of additional Type instances to use in case there a node object for the node types equals to the node type identifier defined using the Opc |
Exceptions
| Exception | Condition |
|---|---|
| Argument | The nodeType or nodeTypes is a null reference ( |
RemoveNotifier
Removes the node from the collection of notifiers (= event sources) of this node.
public virtual void RemoveNotifier(OpcContext context, IOpcNode node)Public Overridable Sub RemoveNotifier(context As OpcContext, node As IOpcNode)Parameters
| Name | Type | Description |
|---|---|---|
context | OpcContext | The OpcContext to use to remove the node as the notifying event source. |
node | IOpcNode | The IOpcNode instance no longer acting as the notifier. |
Exceptions
| Exception | Condition |
|---|---|
| Argument | The context or node is a null reference ( |
Implements
ReportEvent
Reports the eventData specified to all nodes this OpcNode is a notifier of.
public void ReportEvent(OpcContext context, OpcEvent eventData)Public Sub ReportEvent(context As OpcContext, eventData As OpcEvent)Parameters
| Name | Type | Description |
|---|---|---|
context | OpcContext | The OpcContext to use to notify about the eventData. |
eventData | OpcEvent | The OpcEvent instance to report. |
Exceptions
| Exception | Condition |
|---|---|
| Argument | The eventData does not provide a Opc |
| Argument | The context or eventData is a null reference ( |
ResolveModel
Resolves the Model of the node.
protected virtual OpcNodeModel ResolveModel()Protected Overridable Function ResolveModel() As OpcNodeModelReturns
The OpcNodeModel assigned to the node, the model of the child with the Name of the node within the Model of its parent node or None if neither of them is available.
ResumeModelChangeEvents
Resumes model change tracking and events for this OpcNode and optionally for all children.
public void ResumeModelChangeEvents(bool recursive = false)Public Sub ResumeModelChangeEvents(recursive As Boolean = False)Parameters
| Name | Type | Description |
|---|---|---|
recursive | Boolean | The value true if model changes are to be resumed for all children as well; otherwise the value false. Optional, default false. |
SuspendModelChangeEvents
Temporarily suspends model change tracking and events for this OpcNode and optionally for all children.
public void SuspendModelChangeEvents(bool recursive = false)Public Sub SuspendModelChangeEvents(recursive As Boolean = False)Parameters
| Name | Type | Description |
|---|---|---|
recursive | Boolean | The value true if model changes are to be suspended for all children as well; otherwise the value false. Optional, default false. |
UnregisterType
| Overload | Description |
|---|---|
| UnregisterType< | Unregisters the previously registered (T as the object type to not longer create for the type node identified by the OpcT specified. |
| UnregisterType< | Unregisters the previously registered (T as the object type to not longer create for the type node identified by the nodeTypeId specified. |
UnregisterType<T>()
Unregisters the previously registered (see RegisterType) type defined by T as the object type to not longer create for the type node identified by the OpcNodeTypeAttribute defined on the T specified.
public static void UnregisterType<T>()Public Shared Sub UnregisterType(Of T)()Type parameters
| Name | Description |
|---|---|
T | The node type to unregister for the node type equals to node type identifier defined using the Opc |
UnregisterType<T>(OpcNodeId)
Unregisters the previously registered (see RegisterType) type defined by T as the object type to not longer create for the type node identified by the nodeTypeId specified.
public static void UnregisterType<T>(OpcNodeId nodeTypeId)Public Shared Sub UnregisterType(Of T)(nodeTypeId As OpcNodeId)Type parameters
| Name | Description |
|---|---|
T | The node type to unregister for the node type equals to nodeTypeId. |
Parameters
| Name | Type | Description |
|---|---|---|
nodeTypeId | OpcNodeId | The identifier of the type node for which the T is to be unregistered. |
Exceptions
| Exception | Condition |
|---|---|
| Argument | The nodeTypeId is a null reference ( |
UnregisterTypes
| Overload | Description |
|---|---|
| UnregisterTypes( | Unregisters all previously registered types (assembly specified. |
| UnregisterTypes( | Unregisters the previously registered (nodeTypes specified. |
| UnregisterTypes( | Unregisters the previously registered nodeType and the further specified nodeTypes ( |
UnregisterTypes(Assembly)
Unregisters all previously registered types (see RegisterTypes) in the assembly specified.
public static void UnregisterTypes(Assembly assembly)Public Shared Sub UnregisterTypes(assembly As Assembly)Parameters
| Name | Type | Description |
|---|---|---|
assembly | Assembly | The Assembly its types are inspected for types using the Opc |
Exceptions
| Exception | Condition |
|---|---|
| Argument | The assembly is a null reference ( |
UnregisterTypes(IEnumerable<Type>)
Unregisters the previously registered (see RegisterTypes) nodeTypes specified.
public static void UnregisterTypes(IEnumerable<Type> nodeTypes)Public Shared Sub UnregisterTypes(nodeTypes As IEnumerable(Of Type))Parameters
| Name | Type | Description |
|---|---|---|
nodeTypes | IEnumerable<Type> | A sequence of Type instances to unregister for the node types equals to the node type identifiers defined using the Opc |
Exceptions
| Exception | Condition |
|---|---|
| Argument | The nodeTypes is a null reference ( |
UnregisterTypes(Type, params Type[])
Unregisters the previously registered nodeType and the further specified nodeTypes (see RegisterTypes).
public static void UnregisterTypes(Type nodeType, params Type[] nodeTypes)Public Shared Sub UnregisterTypes(
nodeType As Type,
ParamArray nodeTypes As Type())Parameters
| Name | Type | Description |
|---|---|---|
nodeType | Type | The Type instance to unregister for the node types equals to the node type identifiers defined using the Opc |
nodeTypes | params Type[] |
Exceptions
| Exception | Condition |
|---|---|
| Argument | The nodeType or nodeTypes is a null reference ( |
UpdateChanges
| Overload | Description |
|---|---|
| UpdateChanges( | Notifies about the changes on behalf of the node and removes pending changes which intersect with the changes specified. |
| UpdateChanges( | Notifies about the changes on behalf of the node (changes specified. |
Exceptions (all overloads)
| Exception | Condition |
|---|---|
| Argument | The context is a null reference ( |
UpdateChanges(OpcContext, OpcNodeChanges)
Notifies about the changes on behalf of the node and removes pending changes which intersect with the changes specified.
public void UpdateChanges(OpcContext context, OpcNodeChanges changes)Public Sub UpdateChanges(context As OpcContext, changes As OpcNodeChanges)Parameters
| Name | Type | Description |
|---|---|---|
context | OpcContext | The OpcContext to use to notify about the changes. |
changes | OpcNodeChanges | A bitwise combination of OpcNodeChanges members to use to notify changes on behalf of the node. |
Remarks
This method influences the value of the properties PendingChanges and HasPendingChanges.
UpdateChanges(OpcContext, OpcNodeChanges, bool)
Notifies about the changes on behalf of the node (and optionally on its children) and removes pending changes which intersect with the changes specified.
public void UpdateChanges(
OpcContext context,
OpcNodeChanges changes,
bool recursive)Public Sub UpdateChanges(
context As OpcContext,
changes As OpcNodeChanges,
recursive As Boolean)Parameters
| Name | Type | Description |
|---|---|---|
context | OpcContext | The OpcContext to use to notify about changes performed on the node. |
changes | OpcNodeChanges | A bitwise combination of OpcNodeChanges members to use to notify changes on behalf of the node ( |
recursive | Boolean | The value true if the changes are to be notified for all children as well; otherwise the value false. |
Remarks
This method influences the value of the properties PendingChanges and HasPendingChanges.
WriteAttributeValueCore
Determines the value of the attribute to write. In case there a callback is assigned to write the value of the attribute (see WriteDisplayNameCallback, WriteDescriptionCallback, WriteUserWriteAccessCallback and WriteWriteAccessCallback) the callback determines the value written; otherwise the value is returned.
protected virtual OpcAttributeValue<T> WriteAttributeValueCore<T>(
OpcWriteAttributeValueContext context,
OpcAttributeValue<T> value)Protected Overridable Function WriteAttributeValueCore(Of T)(
context As OpcWriteAttributeValueContext,
value As OpcAttributeValue(Of T)) As OpcAttributeValue(Of T)Type parameters
| Name | Description |
|---|---|
T | The type of attribute value to write. |
Parameters
| Name | Type | Description |
|---|---|---|
context | Opc | The Opc |
value | Opc | The Opc |
Returns
The OpcAttributeValue<T> written.
Events
AfterAdded
Occurs after the node has been added to the address space.
public event OpcNodeAddedEventHandler AfterAddedPublic Event AfterAdded As OpcNodeAddedEventHandlerEvent type
AfterApplyChanges
Occurs after one or more changes on the node has been notified.
public event OpcNodeChangesEventHandler AfterApplyChangesPublic Event AfterApplyChanges As OpcNodeChangesEventHandlerEvent type
Remarks
The changes notified either belong to the PendingChanges or to changes on behalf of the node.
BeforeAdded
Occurs before the node is added to the address space.
public event OpcNodeAddedEventHandler BeforeAddedPublic Event BeforeAdded As OpcNodeAddedEventHandlerEvent type
BeforeApplyChanges
Occurs before one or more changes on the node are notified.
public event OpcNodeChangesEventHandler BeforeApplyChangesPublic Event BeforeApplyChanges As OpcNodeChangesEventHandlerEvent type
Remarks
The changes notified either belong to the PendingChanges or to changes on behalf of the node.
ChangesUnhandled
Occurs when changes applied with ApplyChanges are not monitored or discarded by all monitored items.
public event OpcNodeChangesEventHandler ChangesUnhandledPublic Event ChangesUnhandled As OpcNodeChangesEventHandlerEvent type
EventReported
Occurs after an event has been reported using ReportEvent.
public event OpcNodeEventReportedEventHandler EventReportedPublic Event EventReported As OpcNodeEventReportedEventHandlerEvent type

