请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC2650MODA 使用 BDS Studio、我 创建了一个具有单个服务和单个特征的定制 BLE 配置文件。 生成的代码具有以下属性表:
静态 gattAttribute_t new_serviceAttrTbl[]= { // new_service 服务声明 { {ATT_BT_UUID_SIZE、primServiceUUID}、 GATT_permit_read、 0、 (uint8_t *) NewServiceDecl }、 //新特征声明 { {ATT_BT_UUUART_SIZE、characterUUID}、 GATT_permit_read、 0、 &ns_New_characteristic 项目 }、 //新特性值 { {ATT_UUUUUUI_SIZE、ns_New_characterististic UUID}、 GATT_permit_read、 0、 ns_New_characteristististVal }, };
在编译和上传之后、我在 BLE Monitor 中执行了以下操作、这是可以的
然后、我已手动将"用户描述属性"添加到我的属性 表中
静态 uint8_t ns_New_characteristorationValueDesc[18]="新特性"; 静态 gattAttribute_t new_serviceAttrTbl[]= { // new_service 服务声明 { {ATT_BT_UUID_SIZE、primServiceUUID}、 GATT_permit_read、 0、 (uint8_t *) NewServiceDecl }、 //新特征声明 { {ATT_BT_UUUART_SIZE、characterUUID}、 GATT_permit_read、 0、 &ns_New_characteristic 项目 }、 //新特性值 { {ATT_UUUUUUI_SIZE、ns_New_characterististic UUID}、 GATT_permit_read、 0、 ns_New_characteristististVal }、 //新特性描述 { {ATT_BT_UUUART_SIZE、charUserDescUUID}、 GATT_permit_read、 0、 ns_New_characterististic ValueDesc }, };
在编译和上传之后、一切看起来 都很好
但是、我添加了有效范围属性(特征值长度为一个字节):
静态 uint8_t ns_New_characteristoreValueRange[2]={0x00、0x0F}; 静态 gattAttribute_t new_serviceAttrTbl[]= { // new_service 服务声明 { {ATT_BT_UUID_SIZE、primServiceUUID}、 GATT_permit_read、 0、 (uint8_t *) NewServiceDecl }、 //新特征声明 { {ATT_BT_UUUART_SIZE、characterUUID}、 GATT_permit_read、 0、 &ns_New_characteristic 项目 }、 //新特性值 { {ATT_UUUUUUI_SIZE、ns_New_characterististic UUID}、 GATT_permit_read、 0、 ns_New_characteristististVal }、 //新特性描述 { {ATT_BT_UUUART_SIZE、charUserDescUUID}、 GATT_permit_read、 0、 ns_New_characterististic ValueDesc }、 //新特性范围 { {ATT_BT_UUUART_SIZE、validRangeUUID}、 GATT_permit_read、 0、 ns_New_characterististicsValueRange }, };
结果如下:
有效范围属性似乎不可读。 Android BLE Scanner 显示以下内容:
那么、哪里出了问题、在 BLE 2.2.1堆栈中使用有效范围描述符的正确方法是什么?



