pub struct Peripheral<'d, C, P: PacketPool> { /* private fields */ }
Expand description
Type which implements the BLE peripheral role.
Implementations§
Source§impl<'d, C: Controller, P: PacketPool> Peripheral<'d, C, P>
impl<'d, C: Controller, P: PacketPool> Peripheral<'d, C, P>
Sourcepub async fn advertise<'k>(
&mut self,
params: &AdvertisementParameters,
data: Advertisement<'k>,
) -> Result<Advertiser<'d, C, P>, BleHostError<C::Error>>where
C: for<'t> ControllerCmdSync<LeSetAdvData> + ControllerCmdSync<LeSetAdvParams> + for<'t> ControllerCmdSync<LeSetAdvEnable> + for<'t> ControllerCmdSync<LeSetScanResponseData>,
pub async fn advertise<'k>(
&mut self,
params: &AdvertisementParameters,
data: Advertisement<'k>,
) -> Result<Advertiser<'d, C, P>, BleHostError<C::Error>>where
C: for<'t> ControllerCmdSync<LeSetAdvData> + ControllerCmdSync<LeSetAdvParams> + for<'t> ControllerCmdSync<LeSetAdvEnable> + for<'t> ControllerCmdSync<LeSetScanResponseData>,
Start advertising with the provided parameters and return a handle to accept connections.
Sourcepub async fn update_adv_data<'k>(
&mut self,
data: Advertisement<'k>,
) -> Result<(), BleHostError<C::Error>>where
C: for<'t> ControllerCmdSync<LeSetAdvData> + for<'t> ControllerCmdSync<LeSetScanResponseData>,
pub async fn update_adv_data<'k>(
&mut self,
data: Advertisement<'k>,
) -> Result<(), BleHostError<C::Error>>where
C: for<'t> ControllerCmdSync<LeSetAdvData> + for<'t> ControllerCmdSync<LeSetScanResponseData>,
Update the advertisment adv_data and/or scan_data. Does not change any other advertising parameters. If no advertising is active, this will not produce any observable effect. This is typically useful when implementing a BLE beacon that only broadcasts advertisement data and does not accept any connections.
Sourcepub async fn advertise_ext<'k>(
&mut self,
sets: &[AdvertisementSet<'k>],
handles: &mut [AdvSet],
) -> Result<Advertiser<'d, C, P>, BleHostError<C::Error>>where
C: for<'t> ControllerCmdSync<LeSetExtAdvData<'t>> + ControllerCmdSync<LeClearAdvSets> + ControllerCmdSync<LeSetExtAdvParams> + ControllerCmdSync<LeSetAdvSetRandomAddr> + ControllerCmdSync<LeReadNumberOfSupportedAdvSets> + for<'t> ControllerCmdSync<LeSetExtAdvEnable<'t>> + for<'t> ControllerCmdSync<LeSetExtScanResponseData<'t>>,
pub async fn advertise_ext<'k>(
&mut self,
sets: &[AdvertisementSet<'k>],
handles: &mut [AdvSet],
) -> Result<Advertiser<'d, C, P>, BleHostError<C::Error>>where
C: for<'t> ControllerCmdSync<LeSetExtAdvData<'t>> + ControllerCmdSync<LeClearAdvSets> + ControllerCmdSync<LeSetExtAdvParams> + ControllerCmdSync<LeSetAdvSetRandomAddr> + ControllerCmdSync<LeReadNumberOfSupportedAdvSets> + for<'t> ControllerCmdSync<LeSetExtAdvEnable<'t>> + for<'t> ControllerCmdSync<LeSetExtScanResponseData<'t>>,
Starts sending BLE advertisements according to the provided config.
The handles are required to provide the storage while advertising, and can be created by calling AdvertisementSet::handles(sets).
Advertisements are stopped when a connection is made against this host, in which case a handle for the connection is returned.
Returns a handle to accept connections.
Sourcepub async fn update_adv_data_ext<'k>(
&mut self,
sets: &[AdvertisementSet<'k>],
handles: &mut [AdvSet],
) -> Result<(), BleHostError<C::Error>>where
C: for<'t> ControllerCmdSync<LeSetExtAdvData<'t>> + for<'t> ControllerCmdSync<LeSetExtScanResponseData<'t>>,
pub async fn update_adv_data_ext<'k>(
&mut self,
sets: &[AdvertisementSet<'k>],
handles: &mut [AdvSet],
) -> Result<(), BleHostError<C::Error>>where
C: for<'t> ControllerCmdSync<LeSetExtAdvData<'t>> + for<'t> ControllerCmdSync<LeSetExtScanResponseData<'t>>,
Update the extended advertisment adv_data and/or scan_data for multiple advertising sets. Does not change any other advertising parameters. If no advertising is active, this will not produce any observable effect. This is typically useful when implementing a BLE beacon that only broadcasts advertisement data and does not accept any connections.
Sourcepub fn try_accept(&mut self) -> Option<Connection<'d, P>>
pub fn try_accept(&mut self) -> Option<Connection<'d, P>>
Accept any pending available connection.
Accepts the next pending connection if there are any.