RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-387830

Seffel's questions

Martin Hope
Seffel
Asked: 2024-09-18 02:24:44 +0000 UTC

编译ArduinoIDE代码时出现错误如何解决?

  • 5

我有 ESP32 的以下代码

#include <BLEDevice.h> //Header file for BLE 
static BLEUUID serviceUUID("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"); //Service UUID фитнес браслета, полученный с помощью приложения nRF connect 
static BLEUUID    charUUID("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"); //Characteristic  UUID фитнес браслета, полученный с помощью приложения nRF connect
String My_BLE_Address = "ff:ff:ff:ff:ff:ff"; //аппаратный  Bluetooth MAC нашего фитнес браслета,  полученный с помощью приложения nRF connect. Будет отличаться для каждого браслета 
static BLERemoteCharacteristic* pRemoteCharacteristic;
BLEScan* pBLEScan; //Name the scanning device as pBLEScan
BLEScanResults foundDevices;
static BLEAddress *Server_BLE_Address;
String Scaned_BLE_Address;
boolean paired = false; //boolean variable to togge light (логическая переменная для включения/выключения света)
 
bool connectToserver (BLEAddress pAddress){
    
    BLEClient*  pClient  = BLEDevice::createClient();
    Serial.println(" - Created client");
    // Connect to the BLE Server. (соединение с BLE сервером)
    pClient->connect(pAddress);
    Serial.println(" - Connected to fitnessband");
    // Obtain a reference to the service we are after in the remote BLE server.
    BLERemoteService* pRemoteService = pClient->getService(serviceUUID);
    if (pRemoteService != nullptr)
    {
      Serial.println(" - Found our service");
      return true;
    }
    else
    return false;
    // Obtain a reference to the characteristic in the service of the remote BLE server.
    pRemoteCharacteristic = pRemoteService->getCharacteristic(charUUID);
    if (pRemoteCharacteristic != nullptr)
      Serial.println(" - Found our characteristic");
      return true;
}
class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks 
{
    void onResult(BLEAdvertisedDevice advertisedDevice) {
      Serial.printf("Scan Result: %s \n", advertisedDevice.toString().c_str());
      Server_BLE_Address = new BLEAddress(advertisedDevice.getAddress());
      
      Scaned_BLE_Address = Server_BLE_Address->toString().c_str();
      
    }
};
void setup() {
    Serial.begin(115200); //инициализируем последовательную связь 
    Serial.println("ESP32 BLE Server program"); //печатаем приветственное сообщение
    BLEDevice::init("");
    pBLEScan = BLEDevice::getScan(); //начинаем новое сканирование
    pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks()); //Call the class that is defined above 
    pBLEScan->setActiveScan(true); // активное сканирование потребляет больше мощности, но быстрее получает результат
    pinMode (13,OUTPUT); //задаем режим работы для контакта на вывод данных 
}
void loop() {
  foundDevices = pBLEScan->start(3); // сканируем в течение 3-х секунд чтобы найти фитнес браслет 
  while (foundDevices.getCount() >= 1)
  {
    if (Scaned_BLE_Address == My_BLE_Address && paired == false)
    {
      Serial.println("Found Device :-)... connecting to Server as client");
       if (connectToserver(*Server_BLE_Address))
      {
      paired = true;
      Serial.println("********************LED turned ON************************");
      digitalWrite (13,HIGH);
      break;
      }
      else
      {
      Serial.println("Pairing failed");
      break;
      }
    }
    
    if (Scaned_BLE_Address == My_BLE_Address && paired == true)
    {
      Serial.println("Our device went out of range"); // устройство вне диапазона действия
      paired = false;
      Serial.println("********************LED OOOFFFFF************************");
      digitalWrite (13,LOW);
      ESP.restart();
      break;
    }
    else
    {
    Serial.println("We have some other BLe device in range"); //некоторые BLe устройства в зоне нашего действия
    break;
    }
  } 
}

编译时,程序会产生以下错误日志:

AppData\Local\Temp\.arduinoIDE-unsaved2024817-13824-28fsi2.1i74u\sketch_sep17a\sketch_sep17a.ino: In function 'void loop()':
AppData\Local\Temp\.arduinoIDE-unsaved2024817-13824-28fsi2.1i74u\sketch_sep17a\sketch_sep17a.ino:54:35: error: no match for 'operator=' (operand types are 'BLEScanResults' and 'BLEScanResults*')
   **54 |   foundDevices = pBLEScan->start(5); // сканируем в течение 5-х секунд чтобы найти фитнес браслет**
      |                                   ^
In file included from AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\libraries\BLE\src/BLEAdvertisedDevice.h:20,
                 from AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\libraries\BLE\src/BLEClient.h:25,
                 from AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\libraries\BLE\src/BLEDevice.h:22,
                 from AppData\Local\Temp\.arduinoIDE-unsaved2024817-13824-28fsi2.1i74u\sketch_sep17a\sketch_sep17a.ino:1:
AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\libraries\BLE\src/BLEScan.h:48:7: note: candidate: 'BLEScanResults& BLEScanResults::operator=(const BLEScanResults&)'
   **48 | class BLEScanResults {
      |       ^~~~~~~~~~~~~~**
AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\libraries\BLE\src/BLEScan.h:48:7: note:   no known conversion for argument 1 from 'BLEScanResults*' to 'const BLEScanResults&'
AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\libraries\BLE\src/BLEScan.h:48:7: note: candidate: 'BLEScanResults& BLEScanResults::operator=(BLEScanResults&&)'
AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\libraries\BLE\src/BLEScan.h:48:7: note:   no known conversion for argument 1 from 'BLEScanResults*' to 'BLEScanResults&&'

Используем библиотеку BLE версии 3.0.4 из папки: AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\libraries\BLE 
exit status 1

**Compilation error: no match for 'operator=' (operand types are 'BLEScanResults' and 'BLEScanResults*')**
c++
  • 1 个回答
  • 22 Views
Martin Hope
Seffel
Asked: 2024-09-16 17:13:27 +0000 UTC

我可以通过蓝牙获取 ESP32 连接设备的数据吗?

  • 5

我需要 ESP32 上的自动“身份验证”。我想通过蓝牙将特定手机连接到固件内的 ESP 来实现它。例如:我进入 ESP32 蓝牙连接的范围内,手机自动连接到该网络,ESP32 看到这一点,接收所连接设备的 MAC 地址和有关该设备的其他不可变数据(如果有),然后生成哈希值数据并将其与内存中存储的数据进行比较,如果哈希值相同,则将标志设置为 True;如果没有设备或连接了其他设备,则标志的值为 False;

bluetooth
  • 2 个回答
  • 30 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5