本文整理汇总了C#中ExpandedNodeId类的典型用法代码示例。如果您正苦于以下问题:C# ExpandedNodeId类的具体用法?C# ExpandedNodeId怎么用?C# ExpandedNodeId使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
ExpandedNodeId类属于命名空间,在下文中一共展示了ExpandedNodeId类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Initialize
/// <summary>
/// Initializes the control with a set of items.
/// </summary>
public void Initialize(Session session, ExpandedNodeId nodeId)
{
ItemsLV.Items.Clear();
m_session = session;
if (m_session == null)
{
return;
}
ILocalNode node = m_session.NodeCache.Find(nodeId) as ILocalNode;
if (node == null)
{
return;
}
IList<IReference> references = null;
references = node.References.Find(ReferenceTypes.NonHierarchicalReferences, false, true, m_session.TypeTree);
for (int ii = 0; ii < references.Count; ii++)
{
AddItem(references[ii]);
}
references = node.References.Find(ReferenceTypes.NonHierarchicalReferences, true, true, m_session.TypeTree);
for (int ii = 0; ii < references.Count; ii++)
{
AddItem(references[ii]);
}
AdjustColumns();
}
示例2: Initialize
/// <summary>
/// Sets the nodes in the control.
/// </summary>
public void Initialize(Session session, ExpandedNodeId nodeId)
{
if (session == null) throw new ArgumentNullException("session");
Clear();
if (nodeId == null)
{
return;
}
m_session = session;
m_nodeId = (NodeId)nodeId;
INode node = m_session.NodeCache.Find(m_nodeId);
if (node != null && (node.NodeClass & (NodeClass.Variable | NodeClass.Object)) != 0)
{
AddReferences(ReferenceTypeIds.HasTypeDefinition, BrowseDirection.Forward);
AddReferences(ReferenceTypeIds.HasModellingRule, BrowseDirection.Forward);
}
AddAttributes();
AddProperties();
}
示例3: Find
/// <summary cref="INodeTable.Find(ExpandedNodeId)" />
public INode Find(ExpandedNodeId nodeId)
{
// check for null.
if (NodeId.IsNull(nodeId))
{
return null;
}
// check if node alredy exists.
INode node = m_nodes.Find(nodeId);
if (node != null)
{
// do not return temporary nodes created after a Browse().
if (node.GetType() != typeof(Node))
{
return node;
}
}
// fetch node from server.
try
{
return FetchNode(nodeId);
}
catch (Exception e)
{
Utils.Trace("Could not fetch node from server: NodeId={0}, Reason='{1}'.", nodeId, e.Message);
// m_nodes[nodeId] = null;
return null;
}
}
示例4: ShowDialog
/// <summary>
/// Displays the dialog.
/// </summary>
public ExpandedNodeId ShowDialog(Session session, ExpandedNodeId value)
{
if (session == null) throw new ArgumentNullException("session");
ValueCTRL.Browser = new Browser(session);
ValueCTRL.RootId = Objects.RootFolder;
ValueCTRL.Identifier = ExpandedNodeId.ToNodeId(value, session.NamespaceUris);
if (ShowDialog() != DialogResult.OK)
{
return null;
}
return ValueCTRL.Identifier;
}
示例5: ShowDialog
/// <summary>
/// Displays the dialog.
/// </summary>
public void ShowDialog(Session session, ExpandedNodeId nodeId)
{
if (session == null) throw new ArgumentNullException("session");
if (nodeId == null) throw new ArgumentNullException("nodeId");
m_session = session;
m_nodeId = nodeId;
AttributesCTRL.Initialize(session, nodeId);
if (ShowDialog() != DialogResult.OK)
{
return;
}
}
示例6: FetchNode
/// <summary>
/// Fetches a node from the server and updates the cache.
/// </summary>
public Node FetchNode(ExpandedNodeId nodeId)
{
NodeId localId = ExpandedNodeId.ToNodeId(nodeId, m_session.NamespaceUris);
if (localId == null)
{
return null;
}
// fetch node from server.
Node source = m_session.ReadNode(localId);
try
{
// fetch references from server.
ReferenceDescriptionCollection references = m_session.FetchReferences(localId);
foreach (ReferenceDescription reference in references)
{
// create a placeholder for the node if it does not already exist.
if (!m_nodes.Exists(reference.NodeId))
{
Node target = new Node(reference);
m_nodes.Attach(target);
}
// add the reference.
source.ReferenceTable.Add(reference.ReferenceTypeId, !reference.IsForward, reference.NodeId);
}
}
catch (Exception e)
{
Utils.Trace("Could not fetch references for valid node with NodeId = {0}. Error = {1}", nodeId, e.Message);
}
// add to cache.
m_nodes.Attach(source);
return source;
}
示例7: FetchSuperTypes
/// <summary>
/// Adds the supertypes of the node to the cache.
/// </summary>
public void FetchSuperTypes(ExpandedNodeId nodeId)
{
// find the target node,
ILocalNode source = Find(nodeId) as ILocalNode;
if (source == null)
{
return;
}
// follow the tree.
ILocalNode subType = source;
while (subType != null)
{
ILocalNode superType = null;
IList<IReference> references = subType.References.Find(ReferenceTypeIds.HasSubtype, true, true, this);
if (references != null && references.Count > 0)
{
superType = Find(references[0].TargetId) as ILocalNode;
}
subType = superType;
}
}
示例8: IsEncodingOf
/// <summary>
/// Checks if the identifier <paramref name="encodingId"/> represents a that provides encodings
/// for the <paramref name="datatypeId "/>.
/// </summary>
/// <param name="encodingId">The id the encoding node .</param>
/// <param name="datatypeId">The id of the DataType node.</param>
/// <returns>
/// <c>true</c> if <paramref name="encodingId"/> is encoding of the <paramref name="datatypeId"/>; otherwise, <c>false</c>.
/// </returns>
public bool IsEncodingOf(ExpandedNodeId encodingId, ExpandedNodeId datatypeId)
{
ILocalNode encoding = Find(encodingId) as ILocalNode;
if (encoding == null)
{
return false;
}
foreach (IReference reference in encoding.References.Find(ReferenceTypeIds.HasEncoding, true, true, m_typeTree))
{
if (reference.TargetId == datatypeId)
{
return true;
}
}
// no match.
return false;
}
示例9: FindDataTypeId
/// <summary>
/// Returns the data type for the specified encoding.
/// </summary>
/// <param name="encodingId">The encoding id.</param>
/// <returns></returns>
public NodeId FindDataTypeId(ExpandedNodeId encodingId)
{
ILocalNode encoding = Find(encodingId) as ILocalNode;
if (encoding == null)
{
return NodeId.Null;
}
IList<IReference> references = encoding.References.Find(ReferenceTypeIds.HasEncoding, true, true, m_typeTree);
if (references.Count > 0)
{
return ExpandedNodeId.ToNodeId(references[0].TargetId, m_session.NamespaceUris);
}
return NodeId.Null;
}
示例10: AddReferenceTypes
/// <summary>
/// Adds the reference types to drop down box.
/// </summary>
private void AddReferenceTypes(ExpandedNodeId referenceTypeId, ReferenceTypeChoice supertype)
{
if (referenceTypeId == null) throw new ApplicationException("referenceTypeId");
try
{
// find reference.
ReferenceTypeNode node = m_session.NodeCache.Find(referenceTypeId) as ReferenceTypeNode;
if (node == null)
{
return;
}
// add reference to combobox.
ReferenceTypeChoice choice = new ReferenceTypeChoice();
choice.ReferenceType = node;
choice.SuperType = supertype;
ReferenceTypesCB.Items.Add(choice);
// recursively add subtypes.
IList<INode> subtypes = m_session.NodeCache.FindReferences(node.NodeId, ReferenceTypeIds.HasSubtype, false, true);
foreach (INode subtype in subtypes)
{
AddReferenceTypes(subtype.NodeId, choice);
}
}
catch (Exception e)
{
Utils.Trace(e, "Ignoring unknown reference type.");
return;
}
}
示例11: GetLocalNode
/// <summary>
/// Returns a node managed by the manager with the specified node id.
/// </summary>
public ILocalNode GetLocalNode(ExpandedNodeId nodeId)
{
if (nodeId == null)
{
return null;
}
// check for absolute declarations of local nodes.
if (nodeId.IsAbsolute)
{
if (nodeId.ServerIndex != 0)
{
return null;
}
int namespaceIndex = this.Server.NamespaceUris.GetIndex(nodeId.NamespaceUri);
if (namespaceIndex < 0 || nodeId.NamespaceIndex >= this.Server.NamespaceUris.Count)
{
return null;
}
return GetLocalNode(new NodeId(nodeId.Identifier, (ushort)namespaceIndex));
}
return GetLocalNode((NodeId)nodeId);
}
示例12: DeleteReference
/// <summary>
/// This method is used to delete bi-directional references to nodes from other node managers.
/// </summary>
public virtual ServiceResult DeleteReference(
object sourceHandle,
NodeId referenceTypeId,
bool isInverse,
ExpandedNodeId targetId,
bool deleteBiDirectional)
{
lock (Lock)
{
// check for valid handle.
NodeState source = IsHandleInNamespace(sourceHandle);
if (source == null)
{
return StatusCodes.BadNodeIdUnknown;
}
source.RemoveReference(referenceTypeId, isInverse, targetId);
if (deleteBiDirectional)
{
// check if the target is also managed by the node manager.
if (!targetId.IsAbsolute)
{
NodeState target = GetManagerHandle(m_systemContext, (NodeId)targetId, null) as NodeState;
if (target != null)
{
target.RemoveReference(referenceTypeId, !isInverse, source.NodeId);
}
}
}
return ServiceResult.Good;
}
}
示例13: GetDisplayText
/// <summary>
/// Returns a display name for a node.
/// </summary>
public string GetDisplayText(ExpandedNodeId nodeId)
{
if (NodeId.IsNull(nodeId))
{
return String.Empty;
}
INode node = Find(nodeId);
if (node != null)
{
return GetDisplayText(node);
}
return Utils.Format("{0}", nodeId);
}
示例14: Initialize
/// <summary>
/// Initializes the control with a set of items.
/// </summary>
public void Initialize(Session session, ExpandedNodeId nodeId)
{
ItemsLV.Items.Clear();
m_session = session;
if (m_session == null)
{
return;
}
ILocalNode node = m_session.NodeCache.Find(nodeId) as ILocalNode;
if (node == null)
{
return;
}
uint[] attributesIds = Attributes.GetIdentifiers();
for (int ii = 0; ii < attributesIds.Length; ii++)
{
uint attributesId = attributesIds[ii];
if (!node.SupportsAttribute(attributesId))
{
continue;
}
ItemInfo info = new ItemInfo();
info.NodeId = node.NodeId;
info.AttributeId = attributesId;
info.Name = Attributes.GetBrowseName(attributesId);
info.Value = new DataValue(StatusCodes.BadWaitingForInitialData);
ServiceResult result = node.Read(null, attributesId, info.Value);
if (ServiceResult.IsBad(result))
{
info.Value = new DataValue(result.StatusCode);
}
AddItem(info);
}
IList<IReference> references = node.References.Find(ReferenceTypes.HasProperty, false, true, m_session.TypeTree);
for (int ii = 0; ii < references.Count; ii++)
{
IReference reference = references[ii];
ILocalNode property = m_session.NodeCache.Find(reference.TargetId) as ILocalNode;
if (property == null)
{
return;
}
ItemInfo info = new ItemInfo();
info.NodeId = property.NodeId;
info.AttributeId = Attributes.Value;
info.Name = Utils.Format("{0}", property.DisplayName);
info.Value = new DataValue(StatusCodes.BadWaitingForInitialData);
ServiceResult result = property.Read(null, Attributes.Value, info.Value);
if (ServiceResult.IsBad(result))
{
info.Value = new DataValue(result.StatusCode);
}
AddItem(info);
}
UpdateValues();
}
示例15: CreateVariable
public NodeId CreateVariable(
NodeId parentId,
NodeId referenceTypeId,
NodeId nodeId,
QualifiedName browseName,
VariableAttributes attributes,
ExpandedNodeId typeDefinitionId)
{
return null;
}