Peripheral例程问题

我想通过修改peripheral例程实现通过蓝牙发送一个数据,然后再返一个数据回来,几个疑问

1、static gattAttribute_t simpleProfileAttrTbl[]列表

     基本搞清了GATT的特征值在这个列表中初始化 simpleProfileAttrTbl,特征4中多定义了一个服务,这个服务是否与例子中的notify有关系?从调试助手上,点击特征4的接收数据后界面会与其他几个不同,这个差异是要在哪里定义或申明吗?我在simpleProfileAttrTbl里把特征1改成了和4一样的结构,就不会有4的效果

    static gattCharCfg_t simpleProfileChar4Config[4];这个数组是的作用是不是用来存储连接的信息的?

2、发送数据

   从特征1上写入数据能不能从特征1上自动返回来,我看例程上是bStatus_t simpleProfile_Notify( uint16 connHandle, attHandleValueNoti_t *pNoti )这个函数通过特征4发的数据,我改成指向1发不出东西(SIMPLEPROFILE_CHAR4_VALUE_POS这个改成2)

3、发送函数

    bStatus_t GATT_Notification( uint16 connHandle, attHandleValueNoti_t *pNoti, uint8 authenticated );发送数据是不是都可以通过这个函数实现


  1. 配置文件包含服务,服务包含特征,而不是在特征中定义服务。关于显示界面不一样可以发个截图看看,猜测是因为特征声明中的特征性质字段定义不同,GATT_PROP_READ | GATT_PROP_WRITE | GATT_PROP_NOTIFY

    你所说的连接信息是指哪些信息?那个数组是用来存储连接配置信息,比如说通知是否打开

  2. 能不能从特征1发送通知要看特征1的特性声明字段中是否标记有GATT_PROP_NOTIFY这个

  3. 要理解BLE是主从拓扑,从底层理解从设备不存在发送数据这个动作,他只能把数据放到一个位置等主设备来取,通知和指示是在这个结构上实现的一个类似于主动发送的效果,能不能使用GATT_Notification发送通知要看该特征具不具有GATT_PROP_NOTIFY权限

       我大概是这样理解的


非常感谢    static uint8 simpleProfileChar1Props = GATT_PROP_READ | GATT_PROP_WRITE;这个属性改成GATT_PROP_READ | GATT_PROP_WRITE | GATT_PROP_NOTIFY就可以了,我试了一下通过notify来做转发可以行的通j_0058.gif


只有登录才能回复,可以选择微信账号登录