Skip to content

J1939Fields Struct

The decomposed fields of a 29-bit J1939 CAN identifier (SAE J1939-21) — bit layout (MSB→LSB): Priority(3) | Reserved(1) | DataPage(1) | PDU-Format(8) | PDU-Specific(8) | Source-Address(8).

public readonly struct J1939Fields

Properties

J1939Fields.DataPage Property

Data Page bit (bit 24).

public byte DataPage { get; }

Property Value

Byte

J1939Fields.DestinationAddress Property

Destination address for PDU1 messages (equal to PduSpecific), or null for PDU2 messages (which have no destination — they are always broadcast).

public System.Nullable<byte> DestinationAddress { get; }

Property Value

Nullable<Byte>

J1939Fields.IsPdu1 Property

True for PDU1 (peer-to-peer, destination-addressable) format: PduFormat < 240. False for PDU2 (broadcast-only).

public bool IsPdu1 { get; }

Property Value

Boolean

J1939Fields.PduFormat Property

PDU Format (PF), bits 23-16.

public byte PduFormat { get; }

Property Value

Byte

J1939Fields.PduSpecific Property

PDU Specific (PS), bits 15-8: a destination address when IsPdu1 is true (PF < 240), or a Group Extension (part of the PGN) otherwise.

public byte PduSpecific { get; }

Property Value

Byte

J1939Fields.Pgn Property

The Parameter Group Number: (Reserved<<17) | (DataPage<<16) | (PduFormat<<8) | GroupExtension, where the Group Extension is PduSpecific for PDU2 messages and 0 for PDU1 messages (whose PS is a destination address, not part of the PGN).

public uint Pgn { get; }

Property Value

UInt32

J1939Fields.Priority Property

Message priority, 0 (highest) – 7 (lowest).

public byte Priority { get; }

Property Value

Byte

J1939Fields.Reserved Property

Reserved bit (bit 25); conventionally 0.

public bool Reserved { get; }

Property Value

Boolean

J1939Fields.SourceAddress Property

Source Address (SA), bits 7-0.

public byte SourceAddress { get; }

Property Value

Byte