docs: fill missing XML docs and strip tracking IDs from src comments
Clears CommentChecker findings in src/ (3,280 -> 209, the remainder being false positives like PLC-5/IEEE-754/M0.0) by adding missing summaries/params/returns, normalising inheritdoc usage, and removing Gitea/review tracking IDs while keeping the rationale they annotated. Comment-only: comment-stripped sources are identical to the parent commit.
This commit is contained in:
+1
-1
@@ -30,7 +30,7 @@ public sealed class DependencyMuxTagUpstreamSource : ITagUpstreamSource
|
||||
// The status an "unknown path" snapshot carries — a path nothing has ever pushed to.
|
||||
//
|
||||
// This is deliberately BadWaitingForInitialData rather than the bare Bad (0x80000000u) it used
|
||||
// to be, and the distinction is load-bearing (#481, closing #478 Finding 3). Both codes are Bad,
|
||||
// to be, and the distinction is load-bearing. Both codes are Bad,
|
||||
// so the engine's AreInputsReady gate treats them identically and the cold-start hold is
|
||||
// unchanged. What changed is that "no data has ever arrived" is now tellable apart from "a
|
||||
// driver pushed Bad", which previously looked identical whenever the pushed Bad carried a null
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ namespace ZB.MOM.WW.OtOpcUa.Runtime.ScriptedAlarms;
|
||||
/// The LocalDb replacement for <c>EfAlarmConditionStateStore</c> (which persisted to the
|
||||
/// central config DB's <c>ScriptedAlarmState</c> table). Per-cluster mesh Phase 4 cuts the
|
||||
/// ConfigDb from driver-only nodes, so this state moves into the same replicated LocalDb
|
||||
/// file the Phase-2 alarm store-and-forward buffer already lives in — a node's condition
|
||||
/// file the alarm store-and-forward buffer already lives in — a node's condition
|
||||
/// state then mirrors to its redundant pair peer instead of depending on central SQL.
|
||||
/// </para>
|
||||
/// <para>
|
||||
|
||||
@@ -301,7 +301,7 @@ public sealed class ScriptedAlarmHostActor : ReceiveActor
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// #487 — re-project every loaded alarm that is NOT in the Part 9 "no-event" position back onto
|
||||
/// re-project every loaded alarm that is NOT in the Part 9 "no-event" position back onto
|
||||
/// its condition node, right after a (re)load.
|
||||
///
|
||||
/// <para>
|
||||
@@ -322,7 +322,7 @@ public sealed class ScriptedAlarmHostActor : ReceiveActor
|
||||
/// telemetry hub. That is the whole reason it reads <see cref="ScriptedAlarmEngine.GetProjections"/>
|
||||
/// (a plain read returning <see cref="ScriptedAlarmProjection"/>) rather than re-emitting: an
|
||||
/// <c>alerts</c> row per alarm per deploy would append a duplicate historian / AVEVA record
|
||||
/// every time anyone deploys — the alarm analogue of the VirtualTag M1 historian issue.
|
||||
/// every time anyone deploys — the alarm analogue of the VirtualTag historian issue.
|
||||
/// </para>
|
||||
///
|
||||
/// <para>
|
||||
@@ -393,10 +393,10 @@ public sealed class ScriptedAlarmHostActor : ReceiveActor
|
||||
|
||||
private void OnDependencyChanged(VirtualTagActor.DependencyValueChanged msg)
|
||||
{
|
||||
// Feed the live value into the upstream the engine subscribes from. #478 — carry the source
|
||||
// Feed the live value into the upstream the engine subscribes from. Carry the source
|
||||
// driver's quality (mapped to an OPC UA StatusCode) so the engine can derive a scripted
|
||||
// condition's worst-of-input quality; a Bad/Uncertain input is no longer silently treated as Good.
|
||||
// #519 — the status code rides through verbatim. This used to convert the incoming value onto a
|
||||
// the status code rides through verbatim. This used to convert the incoming value onto a
|
||||
// 3-state enum and straight back again through a pair of mutually-inverse mappers, which is where
|
||||
// the input's sub-code was lost before the engine ever cached it.
|
||||
_upstream.Push(msg.TagId,
|
||||
@@ -439,11 +439,11 @@ public sealed class ScriptedAlarmHostActor : ReceiveActor
|
||||
return;
|
||||
}
|
||||
|
||||
// #478 — QualityChanged is a source-quality annotation (worst-of-input bucket moved with no Part 9
|
||||
// QualityChanged is a source-quality annotation (worst-of-input bucket moved with no Part 9
|
||||
// state transition — e.g. an input went Bad, freezing the condition). Route it to the dedicated
|
||||
// WriteAlarmQuality node path (sets ONLY Quality, one Part 9 event on a bucket change): NO full-state
|
||||
// projection (would clobber severity/message) and NO /alerts row (it is not a state transition, so it
|
||||
// must not historize). Same out-of-band quality path native comms-loss uses (#477 Layer 2).
|
||||
// must not historize). Same out-of-band quality path native comms-loss uses.
|
||||
if (e.Emission == EmissionKind.QualityChanged)
|
||||
{
|
||||
_publishActor.Tell(new OpcUaPublishActor.AlarmQualityUpdate(
|
||||
@@ -517,7 +517,7 @@ public sealed class ScriptedAlarmHostActor : ReceiveActor
|
||||
if (_driverMemberCountProvider is not null) return _driverMemberCountProvider();
|
||||
try
|
||||
{
|
||||
// R3-04 (01/C-9): GossipedRolesHave, not ordinal Contains — a peer gossiping a miscased
|
||||
// GossipedRolesHave, not ordinal Contains — a peer gossiping a miscased
|
||||
// 'Driver' (rolling-upgrade window) must still count toward the alerts-emit gate.
|
||||
return Akka.Cluster.Cluster.Get(Context.System).State.Members
|
||||
.Count(m => m.Status == Akka.Cluster.MemberStatus.Up
|
||||
@@ -711,7 +711,7 @@ public sealed class ScriptedAlarmHostActor : ReceiveActor
|
||||
private static AlarmConditionSnapshot ToSnapshot(ScriptedAlarmEvent e)
|
||||
=> ToSnapshot(e.Condition, e.Severity, e.Message, e.WorstInputStatusCode);
|
||||
|
||||
/// <summary>#487 — the same projection for a <see cref="ScriptedAlarmProjection"/>: a state READ used
|
||||
/// <summary>The same projection for a <see cref="ScriptedAlarmProjection"/>: a state READ used
|
||||
/// to restore a condition node after a rebuild, never an emission. Shares
|
||||
/// <see cref="ToSnapshot(AlarmConditionState, AlarmSeverity, string, uint)"/> with the transition path
|
||||
/// so a re-asserted node is byte-identical to what the alarm's own transition would have written.</summary>
|
||||
@@ -736,11 +736,11 @@ public sealed class ScriptedAlarmHostActor : ReceiveActor
|
||||
Shelving: MapShelving(condition.Shelving.Kind),
|
||||
Severity: (ushort)SeverityToInt(severity),
|
||||
Message: message,
|
||||
// #478 — the condition's status is the worst status across the script's input tags at evaluation
|
||||
// the condition's status is the worst status across the script's input tags at evaluation
|
||||
// time (carried on the event by the engine). A transition fired while an input is Uncertain projects
|
||||
// Uncertain here so the full-snapshot write doesn't clobber quality back to Good.
|
||||
StatusCode: worstInputStatusCode,
|
||||
// Gitea #597 — the engine's own expiry, so the node's UnshelveTime counts down to it.
|
||||
// the engine's own expiry, so the node's UnshelveTime counts down to it.
|
||||
UnshelveAtUtc: condition.Shelving.Kind == ShelvingKind.Timed ? condition.Shelving.UnshelveAtUtc : null);
|
||||
|
||||
/// <summary>Maps the Core <see cref="ShelvingKind"/> onto the Commons <see cref="AlarmShelvingKind"/>
|
||||
|
||||
Reference in New Issue
Block a user