Struct can_type_rs::j1939::NameField

source ·
pub struct NameField(/* private fields */);
Expand description

Represents a Name in the SAE J1939 protocol.

The Name structure is used in the SAE J1939 protocol to represent the identity of a device or component within a vehicle’s network.

§Repr: u64

FieldSize (bits)
Arbitrary address bits1
Industry group bits3
Vehicle system instance bits4
Vehicle system bits7
Reserved bits1
Function bits8
Function instance bits5
ECU instance bits3
Manufacturer code bits11
Identity number bits21

Implementations§

source§

impl NameField

source

pub const fn new() -> Self

Creates a new default initialized bitfield.

source

pub const fn from_bits(bits: u64) -> Self

Convert from bits.

source

pub const fn into_bits(self) -> u64

Convert into bits.

source§

impl NameField

source

pub const fn arbitrary_address(&self) -> bool

Indicates whether the ECU/CA can negotiate an address (true = yes; false = no).

source

pub const fn industry_group(&self) -> u8

These codes are associated with particular industries such as on-highway equipment, agricultural equipment, and more.

source

pub const fn vehicle_system_instance(&self) -> u8

Assigns a number to each instance on the Vehicle System (in case you connect several networks – e.g. connecting cars on a train).

source

pub const fn vehicle_system(&self) -> u8

Vehicle systems are associated with the Industry Group and they can be, for instance, “tractor” in the “Common” industry or “trailer” in the “On-Highway” industry group.

source

pub const fn reserved(&self) -> bool

Always zero(false).

source

pub const fn function(&self) -> u8

This code, in a range between 128 and 255, is assigned according to the Industry Group. A value between 0 and 127 is not associated with any other parameter.

source

pub const fn function_instance(&self) -> u8

Returns the function instance.

source

pub const fn ecu_instance(&self) -> u8

A J1939 network may accommodate several ECUs of the same kind (i.e. same functionality). The Instance code separates them.

source

pub const fn manufacturer_code(&self) -> u16

The 11-Bit Manufacturer Code is assigned by the SAE.

source

pub const fn identity_number(&self) -> u32

This field is assigned by the manufacturer, similar to a serial number, i.e. the code must be uniquely assigned to the unit.

Trait Implementations§

source§

impl Clone for NameField

source§

fn clone(&self) -> NameField

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Conversion for NameField

source§

fn from_bits(bits: u64) -> Self

Creates a new NameField bitfield from a 64-bit integer.

source§

fn from_hex(hex_str: &str) -> Self

Creates a new NameField bitfield from a base-16 (hex) string slice.

source§

fn try_from_bits(bits: u64) -> Option<Self>

Creates a new NameField bitfield from a 64-bit integer.

source§

fn try_from_hex(hex_str: &str) -> Option<Self>

Creates a new NameField bitfield from a base-16 (hex) string slice.

source§

fn into_bits(self) -> u64

Creates a new 64-bit integer from the NameField bitfield.

source§

fn into_hex(self) -> String

Creates a new base-16 (hex) String from the NameField bitfield.

§

type Type = u64

source§

impl Debug for NameField

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for NameField

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl From<NameField> for u64

source§

fn from(v: NameField) -> u64

Converts to this type from the input type.
source§

impl From<u64> for NameField

source§

fn from(v: u64) -> Self

Converts to this type from the input type.
source§

impl Ord for NameField

source§

fn cmp(&self, other: &NameField) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for NameField

source§

fn eq(&self, other: &NameField) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for NameField

source§

fn partial_cmp(&self, other: &NameField) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Copy for NameField

source§

impl Eq for NameField

source§

impl StructuralPartialEq for NameField

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> CloneToUninit for T
where T: Copy,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.