diff --git a/bluetooth_connect/bluetooth_connect.ino b/bluetooth_connect/bluetooth_connect.ino index fd7ed41..ef81fde 100644 --- a/bluetooth_connect/bluetooth_connect.ino +++ b/bluetooth_connect/bluetooth_connect.ino @@ -1,39 +1,11 @@ -/** - * Bluetooth Classic Example - * Scan for devices - asyncronously, print device as soon as found - * query devices for SPP - SDP profile - * connect to first device offering a SPP connection - * - * Example python server: - * source: https://gist.github.com/ukBaz/217875c83c2535d22a16ba38fc8f2a91 - * - * Tested with Raspberry Pi onboard Wifi/BT, USB BT 4.0 dongles, USB BT 1.1 dongles, - * 202202: does NOT work with USB BT 2.0 dongles when esp32 aduino lib is compiled with SSP support! - * see https://github.com/espressif/esp-idf/issues/8394 - * - * use ESP_SPP_SEC_ENCRYPT|ESP_SPP_SEC_AUTHENTICATE in connect() if remote side requests 'RequireAuthentication': dbus.Boolean(True), - * use ESP_SPP_SEC_NONE or ESP_SPP_SEC_ENCRYPT|ESP_SPP_SEC_AUTHENTICATE in connect() if remote side has Authentication: False - */ - #include #include -#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED) -#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it -#endif - -#if !defined(CONFIG_BT_SPP_ENABLED) -#error Serial Bluetooth not available or not enabled. It is only available for the ESP32 chip. -#endif - BluetoothSerial SerialBT; - #define BT_DISCOVER_TIME 10000 -esp_spp_sec_t sec_mask=ESP_SPP_SEC_NONE; // or ESP_SPP_SEC_ENCRYPT|ESP_SPP_SEC_AUTHENTICATE to request pincode confirmation -esp_spp_role_t role=ESP_SPP_ROLE_SLAVE; // or ESP_SPP_ROLE_MASTER - -// std::map btDeviceList; +esp_spp_sec_t sec_mask=ESP_SPP_SEC_NONE; +esp_spp_role_t role=ESP_SPP_ROLE_SLAVE; void setup() { Serial.begin(115200); @@ -41,15 +13,10 @@ void setup() { Serial.println("========== serialBT failed!"); abort(); } - // SerialBT.setPin("1234"); // doesn't seem to change anything - // SerialBT.enableSSP(); // doesn't seem to change anything - Serial.println("Starting discoverAsync..."); - BTScanResults* btDeviceList = SerialBT.getScanResults(); // maybe accessing from different threads! + BTScanResults* btDeviceList = SerialBT.getScanResults(); if (SerialBT.discoverAsync([](BTAdvertisedDevice* pDevice) { - // BTAdvertisedDeviceSet*set = reinterpret_cast(pDevice); - // btDeviceList[pDevice->getAddress()] = * set; Serial.printf(">>>>>>>>>>>Found a new device asynchronously: %s\n", pDevice->toString().c_str()); } ) ) { @@ -87,13 +54,9 @@ void setup() { } } - -String sendData="Hi from esp32!\n"; - void loop() { if(! SerialBT.isClosed() && SerialBT.connected()) { if(SerialBT.available()) { - Serial.print("rx: "); while(SerialBT.available()) { int c=SerialBT.read(); if(c >= 0) {