Запускает процесс глобального оповещения о себе в радиосети BLE в качестве подчиненного устройства (advertising, подчиненное устройство оповещает о своей готовности работать в сети как сервер BLE). GAP становится общедоступным (Discoverable), работают режимы соединения для главного устройства, выполняется широковещание по радиоканалу (Broadcast Procedure). Подробнее про GAP см. [4].
Примечание: неизвестные термины и сокращения см. в Словарике [2].
Приложение может запустить процедуру advertising в целях широковещания, когда уже существует активное соединение. Таким образом, после получения события BLE_GAP_EVT_CONNECTED, эта функция может быть вызвана для запуска процедуры broadcast advertising. Однако при этом advertising не работает в обычном режиме для соединения с главным устройством (клиентом BLE), т. е. тип оповещения должен быть BLE_GAP_ADV_TYPE_ADV_SCAN_IND или BLE_GAP_ADV_TYPE_ADV_NONCONN_IND (эти advertising-типы не дают возможности установки соединения для двусторонней передачи данных, см. врезку "GAP Advertising types").
В любой момент времени может быть активным только один advertiser.
Макросы SoftDevice 132 v3.0.0, задающие тип широковещательного оповещения о профиле подчиненного устройства (GAP Advertising):
#define BLE_GAP_ADV_TYPE_ADV_IND 0x00
#define BLE_GAP_ADV_TYPE_ADV_DIRECT_IND 0x01
#define BLE_GAP_ADV_TYPE_ADV_SCAN_IND 0x02
#define BLE_GAP_ADV_TYPE_ADV_NONCONN_IND 0x03
BLE_GAP_ADV_TYPE_ADV_IND задает ненаправленное соединение с клиентом (connectable undirected), к устройству может подключиться любой клиент.
BLE_GAP_ADV_TYPE_ADV_DIRECT_IND задает направленное соединение с определенным клиентом (connectable directed).
BLE_GAP_ADV_TYPE_ADV_SCAN_IND ненаправленное широковещание с возможностью проведения операции сканирования со стороны любых клиентских устройств (scannable undirected).
BLE_GAP_ADV_TYPE_ADV_NONCONN_IND ненаправленное широковещание с запретом установки соединения со стороны побочных клиентских устройств (non connectable undirected).
Генерируемые события
BLE_GAP_EVT_CONNECTED генерируется после того, как было установлено соединение через (connectable advertising, тип оповещений BLE_GAP_ADV_TYPE_ADV_IND или BLE_GAP_ADV_TYPE_ADV_DIRECT_IND, см. врезку "GAP Advertising types").
BLE_GAP_EVT_TIMEOUT таймаут оповещения.
Соответствующие диаграммы последовательности сообщений
NRF_ERROR_INVALID_STATE недопустимое состояние для выполнения операции.
NRF_ERROR_CONN_COUNT достигнут предел доступных соединений; не может быть запущен оповещатель с возможностью соединения (connectable advertiser).
NRF_ERROR_NO_MEM сконфигурированные пулы памяти (см. ble_conn_bw_counts_t) недостаточно велики для выбранной полосы в этом соединении.
NRF_ERROR_INVALID_PARAM предоставлен недопустимый параметр (параметры), проверьте для параметров допустимые диапазоны и ограничения.
BLE_ERROR_GAP_INVALID_BLE_ADDR предоставлен недопустимый адрес Bluetooth.
BLE_ERROR_GAP_DISCOVERABLE_WITH_WHITELIST режим Discoverable и whitelist не совместимы друг с другом.
NRF_ERROR_BUSY стек занят, обработайте ожидающие обработки события и попробуйте еще раз.
NRF_ERROR_RESOURCES недостаточно слотов ролей (BLE role slots). Остановите одну или большее количество активных ролей (Central, Peripheral или Observer) и попробуйте еще раз.
[Остановка оповещений]
uint32_tsd_ble_gap_adv_stop (void);
Останавливает advertising (GAP Discoverable, Connectable modes, Broadcast Procedure). См. выше врезки Advertising и Whitelist Sharing в разделе "Соответствующие диаграммы последовательности сообщений".
Возвращаемые значения
NRF_SUCCESS стек BLE остановил оповещения.
NRF_ERROR_INVALID_STATE недопустимое состояние для выполнения операции (возможно, устройство не в состоянии advertising).