Skip to content

IsoTpReceivedPdu Struct

A reassembled inbound PDU together with the monotonic instant it was queued for delivery.

public readonly struct IsoTpReceivedPdu

Remarks

The timestamp exists so a caller enforcing a response deadline can ask when the PDU arrived rather than when it got round to looking. Those differ by however long the caller was descheduled, and on a loaded host that is not a small quantity — which is exactly the case a deadline has to survive.

ArrivalTimestamp is a raw GetTimestamp reading in units of Frequency per second, not a wall-clock time: an elapsed quantity stays an elapsed quantity, and no NTP step or DST change can move it. Compare it against another reading from the same source and divide by Frequency; the absolute value is meaningless on its own.

Constructors

IsoTpReceivedPdu(byte[], long) Constructor

Creates a delivery record.

public IsoTpReceivedPdu(byte[] pdu, long arrivalTimestamp);

Parameters

pdu Byte[]

The reassembled PDU.

arrivalTimestamp Int64

A GetTimestamp reading taken when the PDU was queued.

Properties

IsoTpReceivedPdu.ArrivalTimestamp Property

Monotonic GetTimestamp reading taken when the PDU's <b>final frame</b> was dequeued from the bus subscription — ahead of the protocol actor and of reassembly, so neither contributes to it. It is therefore an arrival time rather than an observation time, up to one channel hop between the demux and the channel's reader.

public long ArrivalTimestamp { get; }

Property Value

Int64

IsoTpReceivedPdu.Pdu Property

The reassembled PDU.

public byte[] Pdu { get; }

Property Value

Byte[]