/** * @brief Remove an entry from the BLE white list. * @param [in] address The address to remove from the white list. */ void BLEDevice::whiteListRemove(BLEAddress address) { ESP_LOGD(LOG_TAG, ">> whiteListRemove: %s", address.toString().c_str()); esp_err_t errRc = esp_ble_gap_update_whitelist(false, *address.getNative()); // False to remove an entry. if (errRc != ESP_OK) { ESP_LOGE(LOG_TAG, "esp_ble_gap_update_whitelist: rc=%d %s", errRc, GeneralUtils::errorToString(errRc)); } ESP_LOGD(LOG_TAG, "<< whiteListRemove"); } // whiteListRemove
/** * Allow to connect GATT server to peer device * Probably can be used in ANCS for iPhone */ bool BLEServer::connect(BLEAddress address) { esp_bd_addr_t addr; memcpy(&addr, address.getNative(), 6); // Perform the open connection request against the target BLE Server. m_semaphoreOpenEvt.take("connect"); esp_err_t errRc = ::esp_ble_gatts_open( getGattsIf(), addr, // address 1 // direct connection ); if (errRc != ESP_OK) { ESP_LOGE(LOG_TAG, "esp_ble_gattc_open: rc=%d %s", errRc, GeneralUtils::errorToString(errRc)); return false; } uint32_t rc = m_semaphoreOpenEvt.wait("connect"); // Wait for the connection to complete. ESP_LOGD(LOG_TAG, "<< connect(), rc=%d", rc==ESP_GATT_OK); return rc == ESP_GATT_OK; } // connect