设为首页收藏本站

Discuz! Board

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 3061|回复: 2
打印 上一主题 下一主题

同一个服务下的多个特征回调

[复制链接]

8

主题

18

帖子

107

积分

注册会员

Rank: 2

积分
107
跳转到指定楼层
楼主
skystaryz 发表于 2017-6-11 20:16:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在串口例程中添加了几个自定义的特征值,目前只能用特征的通知功能,可是自定义添加的这些特征值怎么用呢,现在还没搞明白
static void nus_data_handler(ble_nus_t * p_nus, uint8_t * p_data, uint16_t length)
{

         for (uint32_t i = 0; i < length; i++)
    {
        while(app_uart_put(p_data[i]) != NRF_SUCCESS);
    }
    while(app_uart_put('\n') != NRF_SUCCESS);
}

接收到的数据是在这串口的回调函数中通过判断p_nus的值来区分吗,还有手机APP读取数据是怎么处理呢,怎么使用有哪位大神可以帮忙解答下




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

243

主题

1706

帖子

6151

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6151
沙发
admin 发表于 2017-6-12 09:03:58 | 只看该作者
特征值相当于子服务,你定义特征值是干什么的,这个要想清楚。APP读取数据就和按键通知那个一样,蓝牙空中属性是通知类型
回复 支持 反对

使用道具 举报

8

主题

18

帖子

107

积分

注册会员

Rank: 2

积分
107
板凳
 楼主| skystaryz 发表于 2017-6-12 23:35:11 | 只看该作者
admin 发表于 2017-6-12 09:03
特征值相当于子服务,你定义特征值是干什么的,这个要想清楚。APP读取数据就和按键通知那个一样,蓝牙空中 ...

例如将串口例程中的RX和TX特征修改为同时具有Notify,read和write属性,在回调函数中怎么区分read和write数据,数据分别是来自哪个特征的
static void on_write(ble_nus_t * p_nus, ble_evt_t * p_ble_evt)
{
    ble_gatts_evt_write_t * p_evt_write = &p_ble_evt->evt.gatts_evt.params.write;

    if (
        (p_evt_write->handle == p_nus->rx_handles.cccd_handle)
        &&
        (p_evt_write->len == 2)
       )
    {
        if (ble_srv_is_notification_enabled(p_evt_write->data))
        {
            p_nus->is_notification_enabled = true;
        }
        else
        {
            p_nus->is_notification_enabled = false;
        }
    }
    else if (
             (p_evt_write->handle == p_nus->tx_handles.value_handle)
             &&
             (p_nus->data_handler != NULL)
            )
    {
        p_nus->data_handler(p_nus, p_evt_write->data, p_evt_write->len);
    }
    else
    {
        // Do Nothing. This event is not relevant for this service.
    }
}

感觉app给芯片write数据应该是通过p_evt_write->handle == p_nus->tx_handles.value_handle来判断,不知道对不对,那么read(就是APP主动读取数据不是Notify给APP)是怎么处理呢
回复 支持 反对

使用道具 举报

Archiver|手机版|小黑屋|Comsenz Inc.   

GMT+8, 2024-11-1 17:40 , Processed in 0.133154 second(s), 29 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表