Skip to main content

Frame

Struct Frame 

Source
pub struct Frame { /* private fields */ }
Expand description

Zigbee APS frame parameters.

Implementations§

Source§

impl Frame

Source

pub const fn new( profile_id: u16, cluster_id: u16, source_endpoint: u8, destination_endpoint: u8, options: Options, group_id: u16, sequence: u8, ) -> Self

Create a new APS frame.

Source

pub const fn profile_id(&self) -> u16

Return the application profile ID that describes the format of the message.

Source

pub const fn cluster_id(&self) -> u16

Return the cluster ID for this message.

Source

pub const fn source_endpoint(&self) -> u8

Return the source endpoint.

Source

pub const fn destination_endpoint(&self) -> u8

Return the destination endpoint.

Source

pub const fn options(&self) -> Options

Return a list of options.

Source

pub const fn group_id(&self) -> u16

Return the group ID for this message if it is a multicast mode.

Source

pub const fn set_group_id(&mut self, group_id: u16)

Sets the raw APS group ID field.

For multicast frames this identifies the destination group. Fragmented frames overload the field with the fragment index in the low byte and block information in the high byte. This method does not modify Options::FRAGMENT or validate that encoding; use Frame::set_first_fragment or Frame::set_followup_fragment when constructing fragmented frames.

Source

pub const fn sequence(&self) -> u8

Return the sequence number.

Source

pub const fn set_sequence(&mut self, sequence: u8)

Set the APS sequence number.

Source

pub fn enable_retry(&mut self)

Enable APS retry for this frame.

Source

pub const fn fragmentation(&self) -> Option<(u8, Option<u8>)>

Return fragmentation information if the message is fragmented.

§Returns
  • Some((index, Some(total_fragments))) if this is the first fragment, where index is 0.
  • Some((index, None)) if this is a subsequent fragment.
  • None if the message is not fragmented.
Source

pub fn set_first_fragment(&mut self, blocks: u8)

Mark this frame as the first fragment of a fragmented APS message.

Source

pub fn set_followup_fragment(&mut self, index: NonZero<u8>)

Mark this frame as a follow-up fragment of a fragmented APS message.

Source

pub fn clear_fragmentation(&mut self)

Removes APS fragmentation metadata from this frame.

Trait Implementations§

Source§

impl Clone for Frame

Source§

fn clone(&self) -> Frame

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 Debug for Frame

Source§

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

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

impl Display for Frame

Source§

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

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

impl Eq for Frame

Source§

impl FromLeStream for Frame

Source§

fn from_le_stream<__LeStreamBytesIterator>( bytes: __LeStreamBytesIterator, ) -> Option<Self>
where __LeStreamBytesIterator: Iterator<Item = u8>,

Parses a value from the front of a little-endian byte stream. Read more
Source§

fn from_le_stream_exact<T>(bytes: T) -> Result<Self, Error<Self>>
where T: Iterator<Item = u8>,

Parses a value from a little-endian byte stream and requires exhaustion. Read more
Source§

fn from_le_slice(bytes: &[u8]) -> Result<Self, Error<Self>>

Parses a value from a little-endian byte slice and requires exhaustion. Read more
Source§

impl Hash for Frame

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 Frame

Source§

fn eq(&self, other: &Frame) -> 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 Frame

Source§

impl ToLeStream for Frame

Source§

type Iter = Chain<Chain<Chain<Chain<Chain<Chain<<u16 as ToLeStream>::Iter, <u16 as ToLeStream>::Iter>, <u8 as ToLeStream>::Iter>, <u8 as ToLeStream>::Iter>, <Options as ToLeStream>::Iter>, <u16 as ToLeStream>::Iter>, <u8 as ToLeStream>::Iter>

Iterator returned by to_le_stream.
Source§

fn to_le_stream(self) -> <Self as ToLeStream>::Iter

Returns an iterator over the little-endian byte representation. Read more

Auto Trait Implementations§

§

impl Freeze for Frame

§

impl RefUnwindSafe for Frame

§

impl Send for Frame

§

impl Sync for Frame

§

impl Unpin for Frame

§

impl UnsafeUnpin for Frame

§

impl UnwindSafe for Frame

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> 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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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> TryFromLeStream<T> for U
where T: FromLeStream, U: TryFrom<T>,

Source§

fn try_from_le_stream<I>( bytes: I, ) -> Result<U, Option<<U as TryFrom<T>>::Error>>
where I: Iterator<Item = u8>,

Try to parse an object from another type that can be parsed from a stream of bytes with little endianness. Read more
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.