forked from espressif/arduino-esp32
BLE5 features to use with C3/S3 (#5085)
Added new BLE5 features to use on C3/S3 family: extended scan, extended/multi advertising New code is not fancy (no feedback from events), but i think it is functional. To get feedback from events i am suggesting to use custom GAP callback, which is already implemented in BLEDevice.
This commit is contained in:
@ -78,5 +78,36 @@ private:
|
||||
bool m_scanResp = true;
|
||||
|
||||
};
|
||||
|
||||
#ifdef CONFIG_BT_BLE_50_FEATURES_SUPPORTED
|
||||
|
||||
class BLEMultiAdvertising
|
||||
{
|
||||
private:
|
||||
esp_ble_gap_ext_adv_params_t* params_arrays;
|
||||
esp_ble_gap_ext_adv_t* ext_adv;
|
||||
uint8_t count;
|
||||
|
||||
public:
|
||||
BLEMultiAdvertising(uint8_t num = 1);
|
||||
~BLEMultiAdvertising() {}
|
||||
|
||||
bool setAdvertisingParams(uint8_t instance, const esp_ble_gap_ext_adv_params_t* params);
|
||||
bool setAdvertisingData(uint8_t instance, uint16_t length, const uint8_t* data);
|
||||
bool setScanRspData(uint8_t instance, uint16_t length, const uint8_t* data);
|
||||
bool start();
|
||||
bool start(uint8_t num, uint8_t from);
|
||||
void setDuration(uint8_t instance, int duration = 0, int max_events = 0);
|
||||
bool setInstanceAddress(uint8_t instance, esp_bd_addr_t rand_addr);
|
||||
bool stop(uint8_t num_adv, const uint8_t* ext_adv_inst);
|
||||
bool remove(uint8_t instance);
|
||||
bool clear();
|
||||
bool setPeriodicAdvertisingParams(uint8_t instance, const esp_ble_gap_periodic_adv_params_t* params);
|
||||
bool setPeriodicAdvertisingData(uint8_t instance, uint16_t length, const uint8_t* data);
|
||||
bool startPeriodicAdvertising(uint8_t instance);
|
||||
};
|
||||
|
||||
#endif // CONFIG_BT_BLE_50_FEATURES_SUPPORTED
|
||||
|
||||
#endif /* CONFIG_BLUEDROID_ENABLED */
|
||||
#endif /* COMPONENTS_CPP_UTILS_BLEADVERTISING_H_ */
|
||||
|
Reference in New Issue
Block a user