Проблема с характеристикой разрешения на запись ArduinoBLE
Я начал простой проект BLE project на Arduino, где я управляю светодиодом из приложения (включаю и выключаю). Я дал переключателю характеристическое разрешение BLEWrite. Проблема в том, что когда я проверяю его позже, на нем его нет. Понятия не имею почему. Если бы вы могли мне помочь, это было бы здорово, и я был бы признателен. Кроме того, я думаю, вы можете проверить остальную часть моего кода, чтобы узнать, есть ли другие проблемы.
#include <ArduinoBLE.h>
BLEService ledService("19B10000-E8F2-537E-4F6C-D104768A1214"); // led service
BLEByteCharacteristic switchCharacteristic("19B10001-E8F2-537E-4F6C-D104768A1214", BLEBroadcast | BLERead | BLEWrite | BLENotify | BLEIndicate);
void setup(){
Serial.begin(9600);
while (!Serial);
if (!BLE.begin())
{
Serial.println("starting BLE failed!");
while (1);
}
ledService.addCharacteristic(switchCharacteristic);
BLE.setLocalName("LED project");
BLE.setAdvertisedServiceUuid(ledService.uuid());
BLE.setAdvertisedService(ledService);
BLE.addService(ledService);
ledService.addCharacteristic(switchCharacteristic);
switchCharacteristic.setValue(0);
if (switchCharacteristic.canWrite()) {
Serial.println("characteristic is writable");
}
BLE.advertise();
Serial.println("Bluetooth device active, waiting for connections...");
}
void loop(){
Serial.begin(9600);
BLEDevice central = BLE.central();
if(central){
Serial.print("Connected to central: ");
Serial.println(central.address());
while(central.connected()){
//Serial.println(switchCharacteristic.written());
if(switchCharacteristic.written()){
if(switchCharacteristic.value()){
Serial.println("LED ON");
digitalWrite(LED_BUILTIN, HIGH);
}else{
Serial.println("LED OFF");
digitalWrite(LED_BUILTIN, LOW);
}
}
}
}
//Serial.println("Disconnected from central");
}