This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

为什么添加新的特征之后,需要配对后才能读写

Other Parts Discussed in Thread: CC2541

cc2541,使用的是 SimpleBLEPeripheral 工程改写的,本来服务里有5个特征值,前面4个都是可以直接读或者写的,为什么第五个特征值需要配对后才能读?而且我自己新添加了一个特征值6,也是需要输入配对密码后才能读写,在新添加特征值时候,我把特征值5和6的一些设置和其他的几个比较,,没有发现什么不同的;为什么5和6就需要配对才可以??是有其它地方有特别设置吗?  ?求解

  • 我是按照附件中的步骤添加的,以下是附件

    在Profile中添加特征值.pdf
  • 配对跟读写profile应该没有直接的关系。

  • admsadm 
    你可以说的详细点吗?
    我使用的是SimpleBLEPeripheral 这个示例工程,然后用手机app连接,手机使用的是iphone4s,装的app是appstore中下的 LightBlue。前面3个特征值都可以直接多或者写,第4个属性是通知,第5个读的时候app会弹出对话框要求输入密码配对。
    你的意思是说这是手机app的问题?但是我用安卓的相关app试了也是同样的需要配对 

  • 检查下是否是特征值的访问属性被你修改了。

    特征值的访问属性有:可读、可写、认证可访问。。。

  • tim yuan,

    第五个profile的属性能贴出来看看吗

  • // Simple Profile Characteristic 5 Properties
    static uint8 simpleProfileChar5Props = GATT_PROP_READ;

    下面这个数组里面:

    static gattAttribute_t simpleProfileAttrTbl[SERVAPP_NUM_ATTR_SUPPORTED] 

     // Characteristic 5 Declaration
     {
        { ATT_BT_UUID_SIZE, characterUUID },
        GATT_PERMIT_READ,
        0,
        &simpleProfileChar5Props
     },

     // Characteristic Value 5
    {
       { ATT_BT_UUID_SIZE, simpleProfilechar5UUID },
       GATT_PERMIT_AUTHEN_READ,
       0,
        simpleProfileChar5
     },

     // Characteristic 5 User Description
     {
      { ATT_BT_UUID_SIZE, charUserDescUUID },
      GATT_PERMIT_READ,
      0,
      simpleProfileChar5UserDesp
    },

    这些都是 SimpleBLEPeripheral  工程里面的,没有改过,只知道第一行里表示特征值时只读的属性

    数组表里面的三项中,第一项表示特征值可见,后面两个就不知道是什么意思了

  • 这不明显了吗?

     GATT_PERMIT_AUTHEN_READ  就是认证可读(就是说,你要想访问它,必须先通过配对)

    GATT_PERMIT_READ 才是可读~

  • 谢谢 shaokai Lin ,我粗心了,

    还有一个问题,使用ios的light blue去连接没有问题,但是使用安卓的BLE Scanner app去连接,会连上一下然后立即就断开了,手机这边不退出,2541再次开启广播才能够连接上。

    推测是手机这边扫描请求和连接请求连续发送,会导致连接上就马上断开(可能是因为时间间隔还是什么?);而第二次连接,只是发送了连接请求,所以连接上了。

    不知道这个推测是不是正确的,如果是,应该到哪一部分去找问题?

    2541这边还是SimpleBLEPeripheral  这个工程改的

  • 《BLE Scanner app》是你自己写的应用程序吗?

    可以尝试再Peripheral端打印出实际的连接间隔