feat(streaming): carry AckTime on DebugAlarmStateDto (21) (ScadaBridge#84)
The live AlarmStateUpdate already carried ack_time (24) but the Debug View snapshot DTO did not, so snapshot-seeded alarm rows showed a null ack time until the next live update. Additive google.protobuf.Timestamp ack_time = 21 (absent => null, including from a pre-#84 site), vendored C# regenerated with docker/regen-proto.sh sitecommand, mapped both ways in SiteCommandDtoMapper. The native golden sample now sets AckTime (the computed one leaves it null), so the round-trip golden pins both the present and the absent decode. Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV
This commit is contained in:
@@ -290,7 +290,11 @@ internal static class SiteCommandSamples
|
||||
IsMesReportable = true
|
||||
};
|
||||
|
||||
/// <summary>A mirrored native alarm: every native enrichment field populated, <c>Condition</c> explicit.</summary>
|
||||
/// <summary>
|
||||
/// A mirrored native alarm: every native enrichment field populated, <c>Condition</c> explicit.
|
||||
/// Carries an ack time so the golden pins <c>DebugAlarmStateDto</c> field 21 (Gitea #84); the
|
||||
/// computed sample leaves it null, pinning the absent-means-null decode.
|
||||
/// </summary>
|
||||
private static AlarmStateChanged NativeAlarm() =>
|
||||
new("Site1.Pump1", "Tank01.Level.HiHi", AlarmState.Active, 850, T2)
|
||||
{
|
||||
@@ -304,6 +308,7 @@ internal static class SiteCommandSamples
|
||||
OperatorUser = "multi-role",
|
||||
OperatorComment = "ack'd at panel",
|
||||
OriginalRaiseTime = T1,
|
||||
AckTime = T2,
|
||||
CurrentValue = "91.2",
|
||||
LimitValue = "90.0",
|
||||
NativeSourceCanonicalName = "Tank01.TankAlarms",
|
||||
|
||||
Reference in New Issue
Block a user