Skip to content

J1939NodeOptions Class

Immutable configuration for IJ1939Node. Captures the node's identity (Name), the SAE J1939-81 arbitration window ClaimAnnounceTimeout, receive-buffer bounds, and the transport-protocol options passed through to the shared IJ1939TpChannel for >8-byte payloads.

public sealed class J1939NodeOptions

Inheritance Object → J1939NodeOptions

Constructors

J1939NodeOptions(J1939Name) Constructor

Constructs options with the given 64-bit NAME. All other fields default.

public J1939NodeOptions(CanKit.Pro.Addressing.J1939Name name);

Parameters

name J1939Name

The node's SAE J1939-81 NAME used for address-claim arbitration.

Properties

J1939NodeOptions.ClaimAnnounceTimeout Property

Duration ClaimAddressAsync(byte, CancellationToken) waits after transmitting the initial Address Claim (PGN 0xEE00) before declaring the address claimed. SAE J1939-81 §4.4.3.3 mandates 250 ms — that is the default. Shorten for tests only.

public System.TimeSpan ClaimAnnounceTimeout { get; init; }

Property Value

TimeSpan

J1939NodeOptions.ClaimPriority Property

Priority used by this node for Address Claim / Cannot Claim (PGN 0xEE00) and Request-PGN (PGN 0xEA00) frames. Defaults to 6.

public byte ClaimPriority { get; init; }

Property Value

Byte

J1939NodeOptions.DefaultPriority Property

Default priority reported for inbound reassembled J1939-TP payloads, where the transport channel does not currently expose the original TP.CM / TP.DT CAN priority. Defaults to 6.

public byte DefaultPriority { get; init; }

Property Value

Byte

J1939NodeOptions.EnableArbitraryAddressClaiming Property

Arbitrary-address fallback after a lost claim contest (SRS FR-J1939-004 / SAE J1939-81 §4.5): when the node loses a contest for the preferred address it retries with the next candidate from the arbitrary address field (0x80..0xF7, wrapping once) and only broadcasts Cannot Claim (SA=0xFE) when the whole field is exhausted. null (default) derives the behavior from the NAME's Arbitrary Address Capable bit (J1939-81 §4.5.1); set explicitly to override the NAME bit.

public System.Nullable<bool> EnableArbitraryAddressClaiming { get; init; }

Property Value

Nullable<Boolean>

J1939NodeOptions.Name Property

The node's SAE J1939-81 NAME (used for address claim arbitration).

public CanKit.Pro.Addressing.J1939Name Name { get; }

Property Value

J1939Name

J1939NodeOptions.ReceiveBufferCapacity Property

Bounded capacity of the internal receive buffer. Drops the oldest message when full so a slow consumer never stalls the node's actor loop. Defaults to 128.

public int ReceiveBufferCapacity { get; init; }

Property Value

Int32

J1939NodeOptions.TransportOptions Property

Options forwarded to the shared IJ1939TpChannel for multi-frame payloads (SRS FR-J1939-006). Defaults to a fresh J1939TpOptions. Ignored when the caller supplies their own pre-built channel to the factory.

public CanKit.Pro.J1939Tp.J1939TpOptions TransportOptions { get; init; }

Property Value

J1939TpOptions