19#include "pw_async2/dispatcher.h"
20#include "pw_async2/once_sender.h"
21#include "pw_bluetooth/internal/raii_ptr.h"
22#include "pw_bluetooth/low_energy/advertising_data.h"
23#include "pw_bluetooth/low_energy/connection2.h"
24#include "pw_bluetooth/low_energy/phy.h"
25#include "pw_bluetooth/types.h"
26#include "pw_function/function.h"
27#include "pw_result/expected.h"
29namespace pw::bluetooth::low_energy {
87 internal::RaiiPtr<AdvertisedPeripheral2, &AdvertisedPeripheral2::Release>;
138 std::variant<std::monostate, ScanResponse, ConnectionOptions, Anonymous>
157 using AdvertisingProcedure =
158 std::variant<LegacyAdvertising, ExtendedAdvertising>;
205 using AdvertiseResult =
206 pw::expected<AdvertisedPeripheral2::Ptr, AdvertiseError>;
Definition: dispatcher_base.h:52
Definition: once_sender.h:41
AdvertisedPeripheral instances are valid for the duration of advertising.
Definition: peripheral2.h:32
virtual async2::Poll< pw::Status > PendStop(async2::Context &cx)=0
virtual async2::Poll< Connection2::Ptr > PendConnection(async2::Context &cx)=0
virtual void StopAdvertising()=0
internal::RaiiPtr< AdvertisedPeripheral2, &AdvertisedPeripheral2::Release > Ptr
Definition: peripheral2.h:87
Represents the LE Peripheral role, which advertises and is connected to.
Definition: peripheral2.h:91
AdvertiseError
Errors returned by Advertise.
Definition: peripheral2.h:181
@ kInvalidParameters
The requested parameters are invalid.
@ kScanResponseDataTooLong
@ kNotEnoughAdvertisingSlots
@ kAdvertisingDataTooLong
@ kFailed
Advertising could not be initiated due to a hardware or system error.
virtual async2::OnceReceiver< AdvertiseResult > Advertise(const AdvertisingParameters ¶meters)=0
AdvertisingData ScanResponse
Definition: peripheral2.h:111
Represents parameters that are set on a per-connection basis.
Definition: connection2.h:109
Definition: peripheral2.h:98
uint16_t min
Default: 1.28s.
Definition: peripheral2.h:100
uint16_t max
Default: 1.28s.
Definition: peripheral2.h:102
Represents the parameters for configuring advertisements.
Definition: peripheral2.h:161
AdvertisingIntervalRange interval_range
See AdvertisingIntervalRange documentation.
Definition: peripheral2.h:167
AdvertisingData data
Definition: peripheral2.h:164
std::optional< Address::Type > address_type
Definition: peripheral2.h:173
AdvertisingProcedure procedure
Definition: peripheral2.h:177
Anonymous advertisements do not include the address.
Definition: peripheral2.h:133
Definition: peripheral2.h:131
std::variant< std::monostate, ScanResponse, ConnectionOptions, Anonymous > configuration
Definition: peripheral2.h:139
Phy secondary_phy
Definition: peripheral2.h:154
Phy primary_phy
Definition: peripheral2.h:149
std::optional< int8_t > tx_power
Definition: peripheral2.h:144
Definition: peripheral2.h:121
std::optional< ScanResponse > scan_response
See ScanResponse documentation.
Definition: peripheral2.h:123
std::optional< ConnectionOptions > connection_options
See ConnectionOptions documentation.
Definition: peripheral2.h:126