BlePhy

Enum BlePhy 

Source
pub enum BlePhy {
    Le1M,
    Le2M,
    LeCodedS2,
    LeCodedS8,
}
Expand description

BLE Physical Layer (PHY) options

BLE 5.0 introduced multiple PHY options for different use cases:

  • LE 1M: Standard 1 Mbps rate, good range
  • LE 2M: High speed 2 Mbps, reduced range
  • LE Coded: Long range mode with error correction

Variants§

§

Le1M

LE 1M PHY - 1 Mbps, ~100m range

The standard BLE PHY, compatible with all BLE devices. Good balance of speed and range.

§

Le2M

LE 2M PHY - 2 Mbps, ~50m range

Double the data rate but reduced range. Use for high-throughput short-range links.

§

LeCodedS2

LE Coded S=2 PHY - 500 kbps, ~200m range

Coded PHY with 2x redundancy. Good balance of range and throughput.

§

LeCodedS8

LE Coded S=8 PHY - 125 kbps, ~400m range

Coded PHY with 8x redundancy. Maximum range but lowest throughput.

Implementations§

Source§

impl BlePhy

Source

pub fn data_rate_bps(&self) -> u32

Get the data rate in bits per second

Source

pub fn data_rate_kbps(&self) -> u32

Get the data rate in kilobits per second

Source

pub fn typical_range_m(&self) -> u16

Get typical maximum range in meters (line of sight)

Source

pub fn typical_latency_ms(&self) -> u16

Get typical latency in milliseconds for a connection event

Source

pub fn is_coded(&self) -> bool

Check if this is a coded PHY (long range)

Source

pub fn requires_ble5(&self) -> bool

Check if this requires BLE 5.0

Source

pub fn coding_scheme(&self) -> Option<u8>

Get the coding scheme (S value) for coded PHYs

Source

pub fn name(&self) -> &'static str

Get PHY name as string

Source

pub fn transmit_time_us(&self, bytes: usize) -> u64

Calculate approximate time to transmit data

Source

pub fn relative_power(&self) -> f32

Estimate power consumption relative to LE 1M (1.0 = baseline)

Trait Implementations§

Source§

impl Clone for BlePhy

Source§

fn clone(&self) -> BlePhy

Returns a duplicate 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 BlePhy

Source§

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

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

impl Default for BlePhy

Source§

fn default() -> BlePhy

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

impl Display for BlePhy

Source§

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

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

impl Hash for BlePhy

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 BlePhy

Source§

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

Source§

impl Eq for BlePhy

Source§

impl StructuralPartialEq for BlePhy

Auto Trait Implementations§

§

impl Freeze for BlePhy

§

impl RefUnwindSafe for BlePhy

§

impl Send for BlePhy

§

impl Sync for BlePhy

§

impl Unpin for BlePhy

§

impl UnwindSafe for BlePhy

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