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 set_filter_accept_list(
&mut self,
filter_accept_list: &[Address],
) -> Result<(), BleHostError<C::Error>>
pub async fn set_filter_accept_list( &mut self, filter_accept_list: &[Address], ) -> Result<(), BleHostError<C::Error>>
Set the filter accept list for advertising.
This clears the existing filter accept list on the controller and adds the provided entries. Must be called before starting advertising (not while advertising is active).
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.