Expand XML docs across bridge and test code
This commit is contained in:
@@ -31,10 +31,29 @@ namespace ZB.MOM.WW.LmxOpcUa.Host.OpcUa
|
||||
private readonly object _lock = new object();
|
||||
private IDictionary<NodeId, IList<IReference>>? _externalReferences;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the mapping from OPC UA node identifiers to the Galaxy tag references used for runtime I/O.
|
||||
/// </summary>
|
||||
public IReadOnlyDictionary<string, string> NodeIdToTagReference => _nodeIdToTagReference;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the number of variable nodes currently published from Galaxy attributes.
|
||||
/// </summary>
|
||||
public int VariableNodeCount { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the number of non-area object nodes currently published from the Galaxy hierarchy.
|
||||
/// </summary>
|
||||
public int ObjectNodeCount { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new node manager for the Galaxy-backed OPC UA namespace.
|
||||
/// </summary>
|
||||
/// <param name="server">The hosting OPC UA server internals.</param>
|
||||
/// <param name="configuration">The OPC UA application configuration for the host.</param>
|
||||
/// <param name="namespaceUri">The namespace URI that identifies the Galaxy model to clients.</param>
|
||||
/// <param name="mxAccessClient">The runtime client used to service reads, writes, and subscriptions.</param>
|
||||
/// <param name="metrics">The metrics collector used to track node manager activity.</param>
|
||||
public LmxNodeManager(
|
||||
IServerInternal server,
|
||||
ApplicationConfiguration configuration,
|
||||
@@ -51,6 +70,7 @@ namespace ZB.MOM.WW.LmxOpcUa.Host.OpcUa
|
||||
_mxAccessClient.OnTagValueChanged += OnMxAccessDataChange;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void CreateAddressSpace(IDictionary<NodeId, IList<IReference>> externalReferences)
|
||||
{
|
||||
lock (Lock)
|
||||
@@ -63,6 +83,8 @@ namespace ZB.MOM.WW.LmxOpcUa.Host.OpcUa
|
||||
/// <summary>
|
||||
/// Builds the address space from Galaxy hierarchy and attributes data. (OPC-002, OPC-003)
|
||||
/// </summary>
|
||||
/// <param name="hierarchy">The Galaxy object hierarchy that defines folders and objects in the namespace.</param>
|
||||
/// <param name="attributes">The Galaxy attributes that become OPC UA variable nodes.</param>
|
||||
public void BuildAddressSpace(List<GalaxyObjectInfo> hierarchy, List<GalaxyAttributeInfo> attributes)
|
||||
{
|
||||
lock (Lock)
|
||||
@@ -145,6 +167,8 @@ namespace ZB.MOM.WW.LmxOpcUa.Host.OpcUa
|
||||
/// <summary>
|
||||
/// Rebuilds the address space, removing old nodes and creating new ones. (OPC-010)
|
||||
/// </summary>
|
||||
/// <param name="hierarchy">The latest Galaxy object hierarchy to publish.</param>
|
||||
/// <param name="attributes">The latest Galaxy attributes to publish.</param>
|
||||
public void RebuildAddressSpace(List<GalaxyObjectInfo> hierarchy, List<GalaxyAttributeInfo> attributes)
|
||||
{
|
||||
lock (Lock)
|
||||
@@ -316,6 +340,7 @@ namespace ZB.MOM.WW.LmxOpcUa.Host.OpcUa
|
||||
|
||||
#region Read/Write Handlers
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void Read(OperationContext context, double maxAge, IList<ReadValueId> nodesToRead,
|
||||
IList<DataValue> results, IList<ServiceResult> errors)
|
||||
{
|
||||
@@ -346,6 +371,7 @@ namespace ZB.MOM.WW.LmxOpcUa.Host.OpcUa
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void Write(OperationContext context, IList<WriteValue> nodesToWrite,
|
||||
IList<ServiceResult> errors)
|
||||
{
|
||||
@@ -444,6 +470,7 @@ namespace ZB.MOM.WW.LmxOpcUa.Host.OpcUa
|
||||
/// Called by the OPC UA framework after monitored items are created on nodes in our namespace.
|
||||
/// Triggers ref-counted MXAccess subscriptions for the underlying tags.
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
protected override void OnCreateMonitoredItemsComplete(ServerSystemContext context, IList<IMonitoredItem> monitoredItems)
|
||||
{
|
||||
foreach (var item in monitoredItems)
|
||||
@@ -458,6 +485,7 @@ namespace ZB.MOM.WW.LmxOpcUa.Host.OpcUa
|
||||
/// Called by the OPC UA framework after monitored items are deleted.
|
||||
/// Decrements ref-counted MXAccess subscriptions.
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
protected override void OnDeleteMonitoredItemsComplete(ServerSystemContext context, IList<IMonitoredItem> monitoredItems)
|
||||
{
|
||||
foreach (var item in monitoredItems)
|
||||
@@ -475,6 +503,10 @@ namespace ZB.MOM.WW.LmxOpcUa.Host.OpcUa
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Increments the subscription reference count for a Galaxy tag and opens the runtime subscription when the first OPC UA monitored item appears.
|
||||
/// </summary>
|
||||
/// <param name="fullTagReference">The fully qualified Galaxy tag reference to subscribe.</param>
|
||||
internal void SubscribeTag(string fullTagReference)
|
||||
{
|
||||
lock (_lock)
|
||||
@@ -491,6 +523,10 @@ namespace ZB.MOM.WW.LmxOpcUa.Host.OpcUa
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Decrements the subscription reference count for a Galaxy tag and closes the runtime subscription when no OPC UA monitored items remain.
|
||||
/// </summary>
|
||||
/// <param name="fullTagReference">The fully qualified Galaxy tag reference to unsubscribe.</param>
|
||||
internal void UnsubscribeTag(string fullTagReference)
|
||||
{
|
||||
lock (_lock)
|
||||
|
||||
Reference in New Issue
Block a user