docs(galaxy): fix stale SystemPlatform/alias/Galaxy doc comments (review follow-up)

Resolves the code-review notes on 95be607a + the AdminUI bundle: the
EnsureVariable docs (IOpcUaAddressSpaceSink, OtOpcUaNodeManager) and the Tag
entity doc no longer say 'Galaxy / SystemPlatform / alias'; the DriverHostActor
ForwardToMux comment now states the real equipment-tag value-routing gap (the
FullName→NodeId 'live values' milestone) instead of claiming Galaxy values map
straight through.
This commit is contained in:
Joseph Doherty
2026-06-12 22:00:52 -04:00
parent b4b7cd7d0f
commit 5edea52bd7
4 changed files with 12 additions and 11 deletions
@@ -55,7 +55,7 @@ public interface IOpcUaAddressSpaceSink
/// Ensure a Variable node exists at <paramref name="variableNodeId"/>, parented under /// Ensure a Variable node exists at <paramref name="variableNodeId"/>, parented under
/// <paramref name="parentFolderNodeId"/> (or the namespace root when null). Created with /// <paramref name="parentFolderNodeId"/> (or the namespace root when null). Created with
/// Bad quality + null value; subsequent <see cref="WriteValue"/> calls update both. /// Bad quality + null value; subsequent <see cref="WriteValue"/> calls update both.
/// Used by <c>Phase7Applier</c> to materialise Galaxy / SystemPlatform tags ahead of any /// Used by <c>Phase7Applier</c> to materialise equipment-namespace tags ahead of any
/// driver-side subscribe so OPC UA clients can browse them. Idempotent. /// driver-side subscribe so OPC UA clients can browse them. Idempotent.
/// </summary> /// </summary>
/// <param name="variableNodeId">The OPC UA node ID for the variable.</param> /// <param name="variableNodeId">The OPC UA node ID for the variable.</param>
@@ -4,10 +4,9 @@ namespace ZB.MOM.WW.OtOpcUa.Configuration.Entities;
/// <summary> /// <summary>
/// One canonical tag (signal) in a cluster's generation. <see cref="EquipmentId"/> set ⟺ the /// One canonical tag (signal) in a cluster's generation. <see cref="EquipmentId"/> set ⟺ the
/// tag participates in the Equipment tree, regardless of the driver's namespace kind. A /// tag participates in the Equipment tree. A <c>GalaxyMxGateway</c>-bound equipment tag is an
/// <c>GalaxyMxGateway</c>-bound equipment tag is an <em>alias</em> — a Galaxy attribute surfaced /// ordinary equipment tag (GalaxyMxGateway is a standard Equipment-kind driver) that carries its
/// under a UNS name, with its Galaxy reference carried in <c>TagConfig.FullName</c>. /// Galaxy attribute reference in <c>TagConfig.FullName</c> — there is no separate alias concept.
/// <see cref="EquipmentId"/> is NULL for SystemPlatform mirror tags (FolderPath-scoped).
/// </summary> /// </summary>
public sealed class Tag public sealed class Tag
{ {
@@ -626,8 +626,8 @@ public sealed class OtOpcUaNodeManager : CustomNodeManager2
/// Ensure a Variable node exists at <paramref name="variableNodeId"/> parented under /// Ensure a Variable node exists at <paramref name="variableNodeId"/> parented under
/// <paramref name="parentFolderNodeId"/> (or root when null). Initial value=null, quality=Bad, /// <paramref name="parentFolderNodeId"/> (or root when null). Initial value=null, quality=Bad,
/// timestamp=epoch — <see cref="WriteValue"/> fills these in once driver data flows. /// timestamp=epoch — <see cref="WriteValue"/> fills these in once driver data flows.
/// Idempotent. Materialises Galaxy / SystemPlatform tags so they're browseable before the /// Idempotent. Materialises equipment-namespace tags so they're browseable before drivers
/// Galaxy driver issues SubscribeBulk. /// issue SubscribeBulk.
/// </summary> /// </summary>
/// <param name="variableNodeId">The node identifier of the variable.</param> /// <param name="variableNodeId">The node identifier of the variable.</param>
/// <param name="parentFolderNodeId">The node identifier of the parent folder; null to use the namespace root.</param> /// <param name="parentFolderNodeId">The node identifier of the parent folder; null to use the namespace root.</param>
@@ -383,10 +383,12 @@ public sealed class DriverHostActor : ReceiveActor, IWithTimers
// tags registered); production binds the mux via the RuntimeActors extension. // tags registered); production binds the mux via the RuntimeActors extension.
_dependencyMux?.Tell(msg); _dependencyMux?.Tell(msg);
// Also push the value to the OPC UA sink so the materialised variable reflects live data // Also push the value to the OPC UA sink. NOTE: equipment-tag variables are materialised with
// instead of staying BadWaitingForInitialData. For SystemPlatform / Galaxy tags the variable // folder-scoped NodeIds (EquipmentId/FolderPath/Name), while the driver publishes keyed by
// NodeId is exactly the dot-form MXAccess reference the driver subscribed to, so the published // FullReference (the tag's FullName). The value therefore only lands on the variable once the
// FullReference maps straight onto the sink NodeId. // FullName→NodeId routing — the equipment-tag "live values" milestone — is wired; until then
// the variable stays BadWaitingForInitialData. (The retired SystemPlatform mirror matched only
// because its NodeId WAS the FullName.)
_opcUaPublishActor?.Tell(new ZB.MOM.WW.OtOpcUa.Runtime.OpcUa.OpcUaPublishActor.AttributeValueUpdate( _opcUaPublishActor?.Tell(new ZB.MOM.WW.OtOpcUa.Runtime.OpcUa.OpcUaPublishActor.AttributeValueUpdate(
msg.FullReference, msg.Value, msg.Quality, msg.TimestampUtc)); msg.FullReference, msg.Value, msg.Quality, msg.TimestampUtc));
} }