// Host configuration parameters. Gather the configuration from the // legacy advertising HCI commands. The initial configuration // matches the default values of the parameters of the HCI command // LE Set Advertising Parameters.
slots advertising_interval{0x0800};
AdvertisingType advertising_type{AdvertisingType::ADV_IND};
OwnAddressType own_address_type{OwnAddressType::PUBLIC_DEVICE_ADDRESS};
PeerAddressType peer_address_type{PeerAddressType::PUBLIC_DEVICE_OR_IDENTITY_ADDRESS};
Address peer_address{};
uint8_t advertising_channel_map{0x07};
AdvertisingFilterPolicy advertising_filter_policy{AdvertisingFilterPolicy::ALL_DEVICES};
std::vector<uint8_t> advertising_data{};
std::vector<uint8_t> scan_response_data{};
};
// Implement a single extended advertising set. // The configuration is set by the extended advertising commands; // for the legacy advertiser check the LegacyAdvertiser class. class ExtendedAdvertiser : public Advertiser { public:
ExtendedAdvertiser(uint8_t advertising_handle = 0) : advertising_handle(advertising_handle) {}
~ExtendedAdvertiser() = default;
// Periodic advertising configuration. // Note: the enable flag has a latch because of the semantic describe in the // specification: // // If the advertising set is not currently enabled, the periodic advertising // is not started until the advertising set is enabled. Once the advertising // set has been enabled, the Controller shall continue periodic advertising // until the Host issues an HCI_LE_Set_Periodic_Advertising_Enable command // with bit 0 of Enable set to 0 (periodic advertising is disabled). // Disabling the advertising set has no effect on the periodic advertising // once the advertising set has been enabled. // // Thus the enable latch is set when the advertising set is enabled and // periodic advertising is enabled, and cleared when periodic advertising // gets disabled. bool periodic_advertising_enable{false}; bool periodic_advertising_enable_latch{false};
slots periodic_advertising_interval{};
std::vector<uint8_t> periodic_advertising_data{}; bool partial_periodic_advertising_data{false};
// Time keeping for periodic advertising.
std::chrono::steady_clock::time_point next_periodic_event{};
// Not implemented at the moment. bool constant_tone_extensions{false};
// Compute the maximum advertising data payload size for the selected // advertising event properties. The advertising data is not present if // 0 is returned. static uint16_t GetMaxAdvertisingDataLength(const AdvertisingEventProperties& properties);
// Compute the maximum scan response data payload size for the selected // advertising event properties. The scan response data is not present if // 0 is returned. static uint16_t GetMaxScanResponseDataLength(const AdvertisingEventProperties& properties);
// Reconstitute the raw Advertising_Event_Properties bitmask. static uint16_t GetRawAdvertisingEventProperties(const AdvertisingEventProperties& properties);
// Compute the maximum periodic advertising data payload size for the // selected periodic advertising interval. static uint16_t GetMaxPeriodicAdvertisingDataLength(slots periodic_advertising_interval);
};
} // namespace rootcanal
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-06-27)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.