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:
chegewara
2021-04-22 12:01:20 +02:00
committed by GitHub
parent e62ff6dc37
commit 7856de7a57
17 changed files with 909 additions and 1 deletions

View File

@ -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_ */