flutter 特征的描述符为空

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

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

  1. // Create the BLE Service
  2. BLEService* pService = pServer->createService(SERVICE_UUID);
  3. // Create a BLE Characteristic
  4. pCharacteristic1 = pService->createCharacteristic(
  5. CHARACTERISTIC_UUID1,
  6. BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE | BLECharacteristic::PROPERTY_NOTIFY | BLECharacteristic::PROPERTY_INDICATE);
  7. // Create a BLE Descriptor
  8. pCharacteristic1->addDescriptor(new BLE2902());
  9. // Create a BLE Characteristic
  10. pCharacteristic2 = pService->createCharacteristic(
  11. CHARACTERISTIC_UUID2,
  12. BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE | BLECharacteristic::PROPERTY_NOTIFY | BLECharacteristic::PROPERTY_INDICATE);
  13. // Create a BLE Descriptor
  14. pCharacteristic2->addDescriptor(new BLE2902());
  15. // Create a BLE Characteristic
  16. pCharacteristic3 = pService->createCharacteristic(
  17. CHARACTERISTIC_UUID3,
  18. BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE | BLECharacteristic::PROPERTY_NOTIFY | BLECharacteristic::PROPERTY_INDICATE);
  19. // Create a BLE Descriptor
  20. pCharacteristic3->addDescriptor(new BLE2902());
  21. // Create a BLE Characteristic
  22. pCharacteristic4 = pService->createCharacteristic(
  23. CHARACTERISTIC_UUID4,
  24. BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE | BLECharacteristic::PROPERTY_NOTIFY | BLECharacteristic::PROPERTY_INDICATE);
  25. // Create a BLE Descriptor
  26. pCharacteristic4->addDescriptor(new BLE2902());
  27. // Create a BLE Characteristic
  28. pCharacteristic5 = pService->createCharacteristic(
  29. CHARACTERISTIC_UUID5,
  30. BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE | BLECharacteristic::PROPERTY_NOTIFY | BLECharacteristic::PROPERTY_INDICATE);
  31. // Create a BLE Descriptor
  32. pCharacteristic5->addDescriptor(new BLE2902());
  33. // Create a BLE Characteristic
  34. pCharacteristic6 = pService->createCharacteristic(
  35. CHARACTERISTIC_UUID6,
  36. BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE | BLECharacteristic::PROPERTY_NOTIFY | BLECharacteristic::PROPERTY_INDICATE);
  37. // Create a BLE Descriptor
  38. pCharacteristic6->addDescriptor(new BLE2902());

在arudino的循环中->

  1. // notify changed value
  2. if (deviceConnected) {
  3. pCharacteristic1->setValue((uint8_t*)&value, 4);
  4. pCharacteristic1->notify();
  5. pCharacteristic2->setValue((uint8_t*)&value, 4);
  6. pCharacteristic2->notify();
  7. pCharacteristic3->setValue((uint8_t*)&value, 4);
  8. pCharacteristic3->notify();
  9. pCharacteristic4->setValue((uint8_t*)&value, 4);
  10. pCharacteristic4->notify();
  11. pCharacteristic5->setValue((uint8_t*)&value, 4);
  12. pCharacteristic5->notify();
  13. pCharacteristic6->setValue((uint8_t*)&value, 4);
  14. pCharacteristic6->notify();
  15. value++;
  16. digitalWrite(2, HIGH);
  17. 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
  18. } else {
  19. digitalWrite(2, HIGH); // Turn the LED on (HIGH is the voltage level)
  20. delay(2000); // Wait for a second
  21. digitalWrite(2, LOW); // Turn the LED off by making the voltage LOW
  22. delay(1000);
  23. }

现在在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

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

相关问题