QCC300x学习笔记:自定义一个GATT client

本文详细介绍了如何在QCC300x上创建一个自定义的GATT客户端,以便连接并控制BLE PTT遥控器。通过自定义GATT client,实现了当PTT遥控器按键按下时,QCC300x能迅速响应,用于蓝牙对讲设备的无线控制。关键步骤包括自定义库、修改VM工程属性、连接和使用PTT遥控器等。
摘要由CSDN通过智能技术生成

为了方便大家学习,现与我爱蓝牙网联合推出【QCC300x/CSR867x/QCC30xx/QCC51xx开发板】

技术交流QQ群号:743434463
开发板会员QQ群号:725398389(凭订单号入群,赠独家学习资料)
——————————正文分割线———————————–

1. 引言

这篇文章是【CSR8675学习笔记:新建一个GATT server】的兄弟篇。在前述文章中讲述了如何在CSR8675上运行一个可由手机访问的自定义GATT服务器。

本文讲述了如何在QCC3003上运行一个自定义的GATT客户端,使其能如手机一样去访问运行在其他设备上的自定义的GATT服务器。

常见的自定义GATT client的应用场景是使得QCC3003能够连接一个BLE PTT遥控器,遥控器的按键可打开或关闭蓝牙对讲。
蓝牙PTT按键

本文介绍的方法与【QCC3003项目实战:BlueMotor6 AGHFP CVC 蓝牙对讲耳机】一起实施,可以组建一个短距无线控制的对讲设备。

2. 什么是GATT client

GATT client是一个软件概念,用于指代蓝牙BLE GATT协议中的客户端,通常作为访问者登入一个GATT server,获取服务内容,简单的模型如下:
在这里插入图片描述
上图中,手机端运行GATT client,嵌入式设备端运行GATT server。client向server发送请求或命令,读写server中的特征值,达到获取设备状态和操控设备的目的。

类似地,当QCC300x与PTT建立BLE连接后,QCC300x上运行的ptt GATT client即可从PTT遥控器上运行的ptt GATT server获取按键的状态。

3. 我需要怎样的GATT client

首先明确我们需要通过GATT client获取怎样的服务。在本文中以一个PTT遥控器为例,我们需要获取遥控器上的按键状态。当按键数量不超过8个,单个uint8型的特征值即足够使用。

再考虑按键事件是用户的重要输入,应以最快的速度响应,同时以尽可能低的功耗维持对用户事件的关切,因此notify机制是较合适的。即当有按键事件触发时,GATT server主动向GATT client发送通知,而非由GATT client轮询。

4. 自定义GATT client的关键步骤

ADK原生支持的GATT client有很多,battery client是必不可少的,其功能是读取目标设备的当前电量或接收目标设备电量变化的通知。本文提到的GATT PTT client的原型即是GATT Battery client。

GATT Battery client的源码在ADK的src/lib/gatt_battery_client路径中。为了创建GATT PTT client,需要按如下步骤操作:

  • 生成GATT client库
    • 在lib路径下创建gatt_ptt_client文件夹,将gatt_battery_client文件夹中所有代码复制到此文件夹
    • 文件和代码全部
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值