Aquí hay un ejemplo de código en C++ que utiliza la librería NimBLE para crear un servidor Bluetooth en un ESP-32:

#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>

BLEServer *pServer = NULL;
BLEService *pService = NULL;
BLECharacteristic *pCharacteristic = NULL;

class MyCallbacks: public BLECharacteristicCallbacks {
  void onWrite(BLECharacteristic *pCharacteristic) {
    std::string rxValue = pCharacteristic->getValue();

    if (rxValue.length() > 0) {
      Serial.println("Received value: ");
      for (int i = 0; i < rxValue.length(); i++) {
        Serial.print(rxValue[i]);
      }
      Serial.println();
    }
  }
};

void setup() {
  Serial.begin(115200);
  Serial.println("Starting BLE work!");

  BLEDevice::init("ESP32 Server");
  pServer = BLEDevice::createServer();
  pService = pServer->createService(SERVICE_UUID);
  pCharacteristic = pService->createCharacteristic(
    CHARACTERISTIC_UUID_RX,
    BLECharacteristic::PROPERTY_NOTIFY | BLECharacteristic::PROPERTY_WRITE
  );

  pCharacteristic->setCallbacks(new MyCallbacks());
  pService->start();

  BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
  pAdvertising->addServiceUUID(SERVICE_UUID);
  pAdvertising->setScanResponse(false);
  pAdvertising->setMinPreferred(0x06);
  pAdvertising->setMaxPreferred(0x12);
  BLEDevice::startAdvertising();
  Serial.println("Characteristic defined! Now you can read it in your phone!");
}

void loop() {
  BLEDevice::poll();
}

En este ejemplo, se crea un servidor Bluetooth y un servicio con una característica que permite la escritura. La clase MyCallbacks implementa el manejador de eventos onWrite para imprimir en la consola cualquier texto recibido. Finalmente, el servidor se inicia y se comienza a escuchar en busca de dispositivos que quieran conectarse.
นี่คือตัวอย่างของโค้ด C++ ที่ใช้ไลบรารี NimBLE เพื่อสร้างเซิร์ฟเวอร์ Bluetooth บน ESP-32: #include <BLEDevice.h> #include <BLEServer.h> #include <BLEUtils.h> #include <BLE2902.h > BLEServer *pServer = NULL; BLEService *pService = โมฆะ; BLECharacteristic * pCharacteristic = NULL; คลาส MyCallbacks: BLECharacteristicCallbacks สาธารณะ { เป็นโมฆะ onWrite (BLECharacteristic * pCharacteristic) { std :: string rxValue = pCharacteristic-> getValue (); if (rxValue.length() > 0) { Serial.println ("ค่าที่ได้รับ: "); สำหรับ (int i = 0; i < rxValue.length(); i++) { Serial.print(rxValue[i]); } อนุกรม.println(); } } }; การตั้งค่าเป็นโมฆะ () { Serial.begin (115200); Serial.println("กำลังเริ่มงาน BLE!"); BLEDevice::init("เซิร์ฟเวอร์ ESP32"); pServer = BLEDevice::createServer(); pService = pServer -> createService (SERVICE_UUID); pCharacteristic = pService->createCharacteristic( CHARACTERISTIC_UUID_RX, BLECharacteristic::PROPERTY_NOTIFY | BLECharacteristic::PROPERTY_WRITE ); pCharacteristic->setCallbacks(MyCallbacks ใหม่()); pService->เริ่มต้น(); BLEAdvertising *pAdvertising = BLEDevice::getAdvertising(); pการโฆษณา->เพิ่มServiceUUID(SERVICE_UUID); pAdvertising->setScanResponse(เท็จ); pการโฆษณา->setMinPreferred(0x06); pการโฆษณา->setMaxPreferred(0x12); BLEDevice::startAdvertising(); Serial.println("กำหนดลักษณะเฉพาะ! ตอนนี้คุณสามารถอ่านบนโทรศัพท์ของคุณได้แล้ว!"); } void loop() { BLEDevice::poll(); } ตัวอย่างนี้สร้างเซิร์ฟเวอร์ Bluetooth และบริการที่มีคุณสมบัติเปิดใช้งานการเขียน คลาส MyCallbacks ใช้ตัวจัดการเหตุการณ์ onWrite เพื่อพิมพ์ข้อความที่ได้รับไปยังคอนโซล สุดท้าย เซิร์ฟเวอร์จะเริ่มทำงานและเริ่มฟังอุปกรณ์ที่ต้องการเชื่อมต่อ
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence