flutter 特征的描述符为空

yftpprvb  于 2023-06-30  发布在  Flutter
关注(0)|答案(1)|浏览(110)

我做了一个简单的arduino代码,其中有6个特性,我做了一个flutter apk,我观察了我在arduino中定义的所有特性。
在arudino的设置代码中->

// Create the BLE Service
  BLEService* pService = pServer->createService(SERVICE_UUID);

  // Create a BLE Characteristic
  pCharacteristic1 = pService->createCharacteristic(
    CHARACTERISTIC_UUID1,
    BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE | BLECharacteristic::PROPERTY_NOTIFY | BLECharacteristic::PROPERTY_INDICATE);

  // Create a BLE Descriptor
  pCharacteristic1->addDescriptor(new BLE2902());

  // Create a BLE Characteristic
  pCharacteristic2 = pService->createCharacteristic(
    CHARACTERISTIC_UUID2,
    BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE | BLECharacteristic::PROPERTY_NOTIFY | BLECharacteristic::PROPERTY_INDICATE);

  // Create a BLE Descriptor
  pCharacteristic2->addDescriptor(new BLE2902());

  // Create a BLE Characteristic
  pCharacteristic3 = pService->createCharacteristic(
    CHARACTERISTIC_UUID3,
    BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE | BLECharacteristic::PROPERTY_NOTIFY | BLECharacteristic::PROPERTY_INDICATE);

  // Create a BLE Descriptor
  pCharacteristic3->addDescriptor(new BLE2902());

  // Create a BLE Characteristic
  pCharacteristic4 = pService->createCharacteristic(
    CHARACTERISTIC_UUID4,
    BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE | BLECharacteristic::PROPERTY_NOTIFY | BLECharacteristic::PROPERTY_INDICATE);

  // Create a BLE Descriptor
  pCharacteristic4->addDescriptor(new BLE2902());

  // Create a BLE Characteristic
  pCharacteristic5 = pService->createCharacteristic(
    CHARACTERISTIC_UUID5,
    BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE | BLECharacteristic::PROPERTY_NOTIFY | BLECharacteristic::PROPERTY_INDICATE);

  // Create a BLE Descriptor
  pCharacteristic5->addDescriptor(new BLE2902());

  // Create a BLE Characteristic
  pCharacteristic6 = pService->createCharacteristic(
    CHARACTERISTIC_UUID6,
    BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE | BLECharacteristic::PROPERTY_NOTIFY | BLECharacteristic::PROPERTY_INDICATE);

  // Create a BLE Descriptor
  pCharacteristic6->addDescriptor(new BLE2902());

在arudino的循环中->

// notify changed value
  if (deviceConnected) {
    pCharacteristic1->setValue((uint8_t*)&value, 4);
    pCharacteristic1->notify();
    
    pCharacteristic2->setValue((uint8_t*)&value, 4);
    pCharacteristic2->notify();
    
    pCharacteristic3->setValue((uint8_t*)&value, 4);
    pCharacteristic3->notify();
    
    pCharacteristic4->setValue((uint8_t*)&value, 4);
    pCharacteristic4->notify();
    
    pCharacteristic5->setValue((uint8_t*)&value, 4);
    pCharacteristic5->notify();
    
    pCharacteristic6->setValue((uint8_t*)&value, 4);
    pCharacteristic6->notify();
    value++;
    digitalWrite(2, HIGH);
    delay(1000);  // bluetooth stack will go into congestion, if too many packets are sent, in 6 hours test i was able to go as low as 3ms
  } else {

    digitalWrite(2, HIGH);  // Turn the LED on (HIGH is the voltage level)
    delay(2000);            // Wait for a second
    digitalWrite(2, LOW);   // Turn the LED off by making the voltage LOW
    delay(1000);
    }

现在在android日志中我只能找到4个描述符值,特征5的描述符为空,特征6在特征列表中从未找到
这是Android Studio中的日志->
蓝牙特征{uuid:beb54831-36e1-4688-b7f5-ea07361b26a8,deviceId:C0:49:EF:CE:E7:E2,serviceUuid:4fafc 201 - 1fb 5 - 459 e-8 fcc-c5 c9 c331914 b,辅助服务Uuid:null,属性:CharacteristicProperties{broadcast:false,读取:true,writeWithoutResponse:false,写:true,通知:真,表示:true,authenticatedSignedWrites:false,extendedProperties:false,notifyEncryptionRequired:false,indicateEncryptionRequired:false},描述符:[蓝牙描述符{uuid:00002902-0000-1000-8000-00805f9b34fb,deviceId:C0:49:EF:CE:E7:E2,serviceUuid:4fafc201-1fb5-459e-8fcc-c5c9c331914b,characteristicUuid:beb 54831 - 36 e1 -4688-b7 f5-ea 07361 b26 a8,值:[]}],值:[]}
蓝牙特征{uuid:beb54832-36e1-4688-b7f5-ea07361b26a8,deviceId:C0:49:EF:CE:E7:E2,serviceUuid:4fafc 201 - 1fb 5 - 459 e-8 fcc-c5 c9 c331914 b,辅助服务Uuid:null,属性:CharacteristicProperties{broadcast:false,读取:true,writeWithoutResponse:false,写:true,通知:真,表示:true,authenticatedSignedWrites:false,extendedProperties:false,notifyEncryptionRequired:false,indicateEncryptionRequired:false},描述符:[蓝牙描述符{uuid:00002902-0000-1000-8000-00805f9b34fb,deviceId:C0:49:EF:CE:E7:E2,serviceUuid:4fafc201-1fb5-459e-8fcc-c5c9c331914b,characteristicUuid:beb 54832 - 36 e1 -4688-b7 f5-ea 07361 b26 a8,值:[]}],值:[]}
蓝牙特征{uuid:beb54833-36e1-4688-b7f5-ea07361b26a8,deviceId:C0:49:EF:CE:E7:E2,serviceUuid:4fafc 201 - 1fb 5 - 459 e-8 fcc-c5 c9 c331914 b,辅助服务Uuid:null,属性:CharacteristicProperties{broadcast:false,读取:true,writeWithoutResponse:false,写:true,通知:真,表示:true,authenticatedSignedWrites:false,extendedProperties:false,notifyEncryptionRequired:false,indicateEncryptionRequired:false},描述符:[蓝牙描述符{uuid:00002902-0000-1000-8000-00805f9b34fb,deviceId:C0:49:EF:CE:E7:E2,serviceUuid:4fafc201-1fb5-459e-8fcc-c5c9c331914b,characteristicUuid:beb 54833 - 36 e1 -4688-b7 f5-ea 07361 b26 a8,值:[]}],值:[]}
蓝牙特征{uuid:beb54834-36e1-4688-b7f5-ea07361b26a8,deviceId:C0:49:EF:CE:E7:E2,serviceUuid:4fafc 201 - 1fb 5 - 459 e-8 fcc-c5 c9 c331914 b,辅助服务Uuid:null,属性:CharacteristicProperties{broadcast:false,读取:true,writeWithoutResponse:false,写:true,通知:真,表示:true,authenticatedSignedWrites:false,extendedProperties:false,notifyEncryptionRequired:false,indicateEncryptionRequired:false},描述符:[蓝牙描述符{uuid:00002902-0000-1000-8000-00805f9b34fb,deviceId:C0:49:EF:CE:E7:E2,serviceUuid:4fafc201-1fb5-459e-8fcc-c5c9c331914b,characteristicUuid:beb 54834 - 36 e1 -4688-b7 f5-ea 07361 b26 a8,值:[]}],值:[]}

但是对于beb 54835,没有描述符,特征中没有找到beb 54836。

蓝牙特征{uuid:beb54835-36e1-4688-b7f5-ea07361b26a8,deviceId:C0:49:EF:CE:E7:E2,serviceUuid:4fafc 201 - 1fb 5 - 459 e-8 fcc-c5 c9 c331914 b,辅助服务Uuid:null,属性:CharacteristicProperties{broadcast:false,读取:true,writeWithoutResponse:false,写:true,通知:真,表示:true,authenticatedSignedWrites:false,extendedProperties:false,notifyEncryptionRequired:false,indicateEncryptionRequired:false},描述符:[],value:[]}

1tu0hz3e

1tu0hz3e1#

发现编辑numHandles解决了这个问题,默认情况下只允许15个numHandles

pService = pServer->createService(BLEUUID(SERVICE_UUID), 100);  // 100 handles

相关问题