TxConfirmation Struct¶
Result of SendConfirmed(CanFrame, Nullable<TimeSpan>, CancellationToken): a uniform "was this frame actually sent" answer regardless of whether the underlying adapter supports hardware TX echo (arc42 §5.3/§6.3, ADR-7; FR-RAW-030..034).
Implements IEquatable<TxConfirmation>
Remarks¶
A TxConfirmation value is only ever produced for a *resolved* outcome — the
returned Task<TxConfirmation> never completes successfully while the send is
still pending. Confirmed is true only for an actual driver-accepted send
(approximated) or an actually-matched echo frame (real); for every other outcome
(timeout, bus-off, outright rejection) Confirmed is false and
FailureReason explains why (FR-RAW-033). Explicit caller-supplied
CancellationToken cancellation is reported as task
cancellation (standard .NET convention), not as a TxConfirmation value.
Properties¶
TxConfirmation.Confirmed Property¶
True if the send was confirmed — either by a matched hardware echo, or (when the adapter has no echo capability enabled) by the driver accepting the frame. See IsApproximated to tell the two apart.
Property Value¶
TxConfirmation.FailureReason Property¶
Why the send was not confirmed; None when Confirmed is true.
Property Value¶
TxConfirmation.HostTransmitTimestamp Property¶
GetTimestamp reading taken immediately
after the driver accepted the frame, or zero when nothing was handed to the driver
(an outright rejection). Monotonic, and comparable with the
HostArrivalTimestamp the demux puts on received frames.
Property Value¶
Remarks¶
Timestamp answers "when was this result produced" and is a wall-clock reading; this answers "when did the frame go out", which is a different question and needs a different clock. A caller whose response deadline starts at transmission has no other way to learn that instant: by the time the returned task completes it is behind the echo wait, and reading the clock then starts the deadline late enough to let a late response pass for a punctual one (#92).
TxConfirmation.IsApproximated Property¶
True when Confirmed reflects driver acceptance rather than an actual hardware echo (FR-RAW-032) — i.e. "best-effort acknowledgment", not a guarantee the frame reached the wire. Always false when Confirmed is false.
Property Value¶
TxConfirmation.Timestamp Property¶
UTC timestamp of when this result was produced (confirmation or failure).