pub struct GenericPacketParams { /* private fields */ }
Expand description

Packet parameters for set_packet_params.

Implementations§

source§

impl GenericPacketParams

source

pub const fn new() -> GenericPacketParams

Create a new GenericPacketParams.

This is the same as default, but in a const function.

Example
use stm32wlxx_hal::subghz::GenericPacketParams;

const PKT_PARAMS: GenericPacketParams = GenericPacketParams::new();
assert_eq!(PKT_PARAMS, GenericPacketParams::default());
source

pub const fn set_preamble_len(self, len: u16) -> GenericPacketParams

Preamble length in number of symbols.

Values of zero are invalid, and will automatically be set to 1.

Example
use stm32wlxx_hal::subghz::GenericPacketParams;

const PKT_PARAMS: GenericPacketParams = GenericPacketParams::new().set_preamble_len(0x1234);
source

pub const fn set_preamble_detection( self, pb_det: PreambleDetection ) -> GenericPacketParams

Preamble detection length in number of bit symbols.

Example
use stm32wlxx_hal::subghz::{GenericPacketParams, PreambleDetection};

const PKT_PARAMS: GenericPacketParams =
    GenericPacketParams::new().set_preamble_detection(PreambleDetection::Bit8);
source

pub const fn set_sync_word_len(self, len: u8) -> GenericPacketParams

Sync word length in number of bit symbols.

Valid values are 0x00 - 0x40 for 0 to 64-bits respectively. Values that exceed the maximum will saturate at 0x40.

Example

Set the sync word length to 4 bytes (16 bits).

use stm32wlxx_hal::subghz::GenericPacketParams;

const PKT_PARAMS: GenericPacketParams = GenericPacketParams::new().set_sync_word_len(16);
source

pub const fn set_addr_comp(self, addr_comp: AddrComp) -> GenericPacketParams

Address comparison/filtering.

Example

Enable address on the node address.

use stm32wlxx_hal::subghz::{AddrComp, GenericPacketParams};

const PKT_PARAMS: GenericPacketParams =
    GenericPacketParams::new().set_addr_comp(AddrComp::Node);
source

pub const fn set_header_type( self, header_type: HeaderType ) -> GenericPacketParams

Header type definition.

Note: The reference manual calls this packet type, but that results in a conflicting variable name for the modulation scheme, which the reference manual also calls packet type.

Example

Set the header type to a variable length.

use stm32wlxx_hal::subghz::{GenericPacketParams, HeaderType};

const PKT_PARAMS: GenericPacketParams =
    GenericPacketParams::new().set_header_type(HeaderType::Variable);
source

pub const fn set_payload_len(self, len: u8) -> GenericPacketParams

Set the payload length in bytes.

Example
use stm32wlxx_hal::subghz::GenericPacketParams;

const PKT_PARAMS: GenericPacketParams = GenericPacketParams::new().set_payload_len(12);
source

pub const fn set_crc_type(self, crc_type: CrcType) -> GenericPacketParams

CRC type definition.

Example
use stm32wlxx_hal::subghz::{CrcType, GenericPacketParams};

const PKT_PARAMS: GenericPacketParams =
    GenericPacketParams::new().set_crc_type(CrcType::Byte2Inverted);
source

pub const fn set_whitening_enable(self, en: bool) -> GenericPacketParams

Whitening enable.

Example

Enable whitening.

use stm32wlxx_hal::subghz::GenericPacketParams;

const PKT_PARAMS: GenericPacketParams = GenericPacketParams::new().set_whitening_enable(true);
source

pub const fn as_slice(&self) -> &[u8]

Extracts a slice containing the packet.

Example
use stm32wlxx_hal::subghz::{
    AddrComp, CrcType, GenericPacketParams, HeaderType, PreambleDetection,
};

const PKT_PARAMS: GenericPacketParams = GenericPacketParams::new()
    .set_preamble_len(8)
    .set_preamble_detection(PreambleDetection::Disabled)
    .set_sync_word_len(2)
    .set_addr_comp(AddrComp::Disabled)
    .set_header_type(HeaderType::Fixed)
    .set_payload_len(128)
    .set_crc_type(CrcType::Byte2)
    .set_whitening_enable(true);

assert_eq!(
    PKT_PARAMS.as_slice(),
    &[0x8C, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x80, 0x02, 0x01]
);

Trait Implementations§

source§

impl Clone for GenericPacketParams

source§

fn clone(&self) -> GenericPacketParams

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

source§

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

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

impl Default for GenericPacketParams

source§

fn default() -> Self

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

impl PartialEq for GenericPacketParams

source§

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

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

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

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

impl Copy for GenericPacketParams

source§

impl Eq for GenericPacketParams

source§

impl StructuralEq for GenericPacketParams

source§

impl StructuralPartialEq for GenericPacketParams

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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, U> TryFrom<U> for Twhere 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 Twhere 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.