Skip to content

PeerSafetySnapshot Class

One immutable, read-only acquisition of a peer's safety communication configuration (#403).

public sealed class PeerSafetySnapshot

Inheritance Object → PeerSafetySnapshot

Remarks

Each acquisition has a new identity. Replacing a running monitor's snapshot must start a new evaluation period. No snapshot is an atomic device image or a safety approval. #289's unresolved byte-order/version questions also apply to the signature comparisons here.

Properties

PeerSafetySnapshot.ConfigurationId Property

This acquisition's identity; not a device-provided version.

public System.Guid ConfigurationId { get; }

Property Value

Guid

PeerSafetySnapshot.Consistency Property

Observed change or unconfirmed consistency; never atomic consistency.

public CanKit.Pro.CANopen.Safety.PeerSafetySnapshotConsistency Consistency { get; }

Property Value

PeerSafetySnapshotConsistency

PeerSafetySnapshot.DeviceConfigurationValid Property

Live 13FEh: A5h is true, 00h false, unavailable or another value null.

public System.Nullable<bool> DeviceConfigurationValid { get; }

Property Value

Nullable<Boolean>

PeerSafetySnapshot.Duration Property

Monotonic elapsed acquisition duration.

public System.TimeSpan Duration { get; }

Property Value

TimeSpan

PeerSafetySnapshot.Entries Property

First uploads, including 1018h identity entries where readable; every raw value has provenance.

public System.Collections.Generic.IReadOnlyList<CanKit.Pro.CANopen.Safety.PeerSafetyEntry> Entries { get; }

Property Value

IReadOnlyList<PeerSafetyEntry>

PeerSafetySnapshot.ExpectedComparison Property

Optional expected configuration comparison, independent of signature and device flag. Match requires a complete acquisition without observed changes; a known difference still reports Mismatch in a partial image.

public CanKit.Pro.CANopen.Safety.SafetyComparison ExpectedComparison { get; }

Property Value

SafetyComparison

PeerSafetySnapshot.Findings Property

Per-entry findings, including unavailable values and interoperability limitations.

public System.Collections.Generic.IReadOnlyList<CanKit.Pro.CANopen.Safety.PeerSafetyFinding> Findings { get; }

Property Value

IReadOnlyList<PeerSafetyFinding>

PeerSafetySnapshot.IsComplete Property

The bounded safety image and rechecks were read from live/explicit SRVT-rule evidence. Does not imply valid parameters, atomic consistency, or safety approval.

public bool IsComplete { get; }

Property Value

Boolean

PeerSafetySnapshot.PeerNodeId Property

Peer node-id.

public byte PeerNodeId { get; }

Property Value

Byte

PeerSafetySnapshot.RecheckEntries Property

Second uploads of the same bounded entry set, retained for observed-change diagnostics.

public System.Collections.Generic.IReadOnlyList<CanKit.Pro.CANopen.Safety.PeerSafetyEntry> RecheckEntries { get; }

Property Value

IReadOnlyList<PeerSafetyEntry>

PeerSafetySnapshot.Srdos Property

Interpreted records, including deleted/unusable ones.

public System.Collections.Generic.IReadOnlyList<CanKit.Pro.CANopen.Safety.PeerSafetySrdoSnapshot> Srdos { get; }

Property Value

IReadOnlyList<PeerSafetySrdoSnapshot>

PeerSafetySnapshot.StartedAtUtc Property

UTC wall time at acquisition start, after obtaining the client's peer-SDO channel.

public System.DateTimeOffset StartedAtUtc { get; }

Property Value

DateTimeOffset