Skip to main content

StateSync

Struct StateSync 

Source
pub struct StateSync {
    pub cad_to_rx: CadToRx,
    pub forward: Forward,
    pub relay_data_rate: u8,
    pub xtal_accuracy: XtalAccuracy,
    pub cad_periodicity: CadPeriodicity,
    pub t_offset_ms: u16,
}
Expand description

What a relay tells an end device about itself in a WOR ACK, TS011-1.0.1 table 14.

Fields§

§cad_to_rx: CadToRx

How long the relay takes from detecting activity to receiving.

§forward: Forward

Whether it will forward the uplink.

§relay_data_rate: u8

The data rate the relay forwards at, which bounds the device’s payload.

§xtal_accuracy: XtalAccuracy

How accurate its crystal is.

§cad_periodicity: CadPeriodicity

How often it scans.

§t_offset_ms: u16

The milliseconds from the start of the scan that heard the frame to the end of the frame’s preamble, eleven bits wide.

Implementations§

Source§

impl StateSync

Source

pub const MAX_T_OFFSET_MS: u16 = 0x07ff

The largest offset the eleven-bit field holds, in milliseconds.

Source

pub fn to_bits(&self) -> Result<u32, LorawanError>

Packs the state into the 24 bits a WOR ACK carries.

§Returns

The bits: CadToRx 23:22, Forward 21:20, RelayDataRate 19:16, XTALAccuracy 15:14, CADPeriodicity 13:11 and TOffset 10:0.

§Errors

Returns LorawanError::MalformedFrame for a data rate past 15 or an offset past MAX_T_OFFSET_MS.

Source

pub fn from_bits(bits: u32) -> Result<StateSync, LorawanError>

Unpacks the 24 bits a WOR ACK carries.

§Arguments
  • bits - the state; bits past the 24th are ignored.
§Returns

The state.

§Errors

Returns LorawanError::MalformedFrame for a reserved scan periodicity.

Trait Implementations§

Source§

impl Clone for StateSync

Source§

fn clone(&self) -> StateSync

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for StateSync

Source§

impl Debug for StateSync

Source§

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

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

impl Eq for StateSync

Source§

impl Hash for StateSync

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for StateSync

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for StateSync

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§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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>,

Source§

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>,

Source§

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.