IsoTpEndpoint Struct¶
Minimal ISO-TP endpoint value type used by IsoTpFrameCodec to decide the TX/RX CAN identifiers and whether the first payload byte is reserved for an address-extension byte. Runtime channel/session objects live outside this codec-only assembly.
Implements IEquatable<IsoTpEndpoint>
Properties¶
IsoTpEndpoint.AddressExtension Property¶
Address-extension byte written as the first byte of every outbound frame's CAN payload.
Only meaningful when UsesAddressExtension is true.
Property Value¶
Remarks¶
For Extended this is the peer's target address (the N_TA we address the remote node with). For Mixed it is the shared address-extension byte, which is the same on both directions.
IsoTpEndpoint.AddressExtensionSize Property¶
The number of payload bytes reserved for the address-extension byte (0 or 1).
Property Value¶
IsoTpEndpoint.AddressingMode Property¶
Addressing mode; decides whether an address-extension byte is present.
Property Value¶
IsoTpEndpoint.IsExtendedCanId Property¶
Whether TxCanId/RxCanId use the 29-bit extended CAN-ID format (true) or the 11-bit standard format (false).
Property Value¶
IsoTpEndpoint.RxAddressExtension Property¶
Address-extension byte expected as the first byte of every inbound frame's CAN payload.
Only meaningful when UsesAddressExtension is true.
Property Value¶
Remarks¶
For Extended this is the local node's own source address (from the peer's perspective, we are the target of frames they send back, so they write our source address into the AE byte). Storing this separately from the outbound AddressExtension is required for correct RX filtering when the two differ (Bugbot 3594960802). For Mixed and Normal/NormalFixed this equals AddressExtension.
IsoTpEndpoint.RxCanId Property¶
Inbound (peer -> this-node) CAN identifier.
Property Value¶
IsoTpEndpoint.TxCanId Property¶
Outbound (this-node -> peer) CAN identifier.
Property Value¶
IsoTpEndpoint.UsesAddressExtension Property¶
true when AddressingMode is Extended
or Mixed; the first payload byte is then consumed by the
address-extension byte and only the remaining bytes carry PCI + data.
Property Value¶
Methods¶
IsoTpEndpoint.Extended(uint, uint, byte, byte, bool) Method¶
Creates an endpoint using ISO 15765-2 <em>Extended</em> addressing. The targetAddress is placed as the first byte of every outbound frame (the peer's N_TA); the runtime filters inbound frames on sourceAddress, which is what the peer writes into the AE byte when addressing us.
public static CanKit.Pro.IsoTp.IsoTpEndpoint Extended(uint txCanId, uint rxCanId, byte sourceAddress, byte targetAddress, bool isExtendedCanId=false);
Parameters¶
txCanId UInt32
rxCanId UInt32
sourceAddress Byte
targetAddress Byte
isExtendedCanId Boolean
Returns¶
IsoTpEndpoint.Mixed(uint, uint, byte, bool) Method¶
Creates an endpoint using ISO 15765-2 <em>Mixed</em> addressing. The addressExtension byte is written as the first byte of every outbound frame and is expected as the first byte of every inbound frame.
public static CanKit.Pro.IsoTp.IsoTpEndpoint Mixed(uint txCanId, uint rxCanId, byte addressExtension, bool isExtendedCanId=false);
Parameters¶
txCanId UInt32
rxCanId UInt32
addressExtension Byte
isExtendedCanId Boolean
Returns¶
IsoTpEndpoint.Normal(uint, uint, bool) Method¶
Creates an endpoint using ISO 15765-2 <em>Normal</em> addressing.
public static CanKit.Pro.IsoTp.IsoTpEndpoint Normal(uint txCanId, uint rxCanId, bool isExtendedCanId=false);
Parameters¶
txCanId UInt32
rxCanId UInt32
isExtendedCanId Boolean
Returns¶
IsoTpEndpoint.NormalFixed(uint, uint) Method¶
Creates an endpoint using ISO 15765-2 <em>Normal-Fixed</em> addressing (29-bit).
Parameters¶
txCanId UInt32
rxCanId UInt32
Returns¶
Operators¶
IsoTpEndpoint.operator ==(IsoTpEndpoint, IsoTpEndpoint) Operator¶
Equality operator.
public static bool operator ==(CanKit.Pro.IsoTp.IsoTpEndpoint left, CanKit.Pro.IsoTp.IsoTpEndpoint right);
Parameters¶
left IsoTpEndpoint
right IsoTpEndpoint
Returns¶
IsoTpEndpoint.operator !=(IsoTpEndpoint, IsoTpEndpoint) Operator¶
Inequality operator.
public static bool operator !=(CanKit.Pro.IsoTp.IsoTpEndpoint left, CanKit.Pro.IsoTp.IsoTpEndpoint right);
Parameters¶
left IsoTpEndpoint
right IsoTpEndpoint