例:
>具有1个服务的外设,其中包含3个特性.
>服务uuid = 0xFFFF
> Char 1 uuid = 0xAAAA,properties =可读
> Char 2 uuid = 0xBBBB,properties = readable&写
> Char 3 uuid = 0xCCCC,properties =通知
从中央设备,我应该看到外围设备,连接到它并发现一个具有三个特征(0xAAAA,0xBBBB,0xCCCC)的服务(0xFFFF).然后我可以读取0xAAAA的值,读取和写入0xBBBB的值,并启用0xCCCC上的通知.
请注意,我知道similar question存在,但它只解释了如何使用外设作为广告客户. Another solved question解释了如何创建GATT服务器,但不解释如何使用特性的属性(例如可读,可通知等),或者也许我缺少某些东西.
先谢谢你.
解决方法
gatt_service_add(adapter,GATT_PRIM_SVC_UUID,0xFFFF,/* Char 1 */ GATT_OPT_CHR_UUID16,0xAAAA,GATT_OPT_CHR_PROPS,ATT_CHAR_PROPER_READ,GATT_OPT_CHR_VALUE_CB,ATTRIB_READ,read_func_callback,/* Char 2 Define here */ ... /* Char 3 Define here */ ... GATT_OPT_INVALID); }
另外,我忘记了细节,但为了使服务器正常工作,您需要在配置过程中启用实验(和维护者模式?),添加“–enable-maintainer-mode”和“–enable-experimental”
要运行,使用-n和-d选项运行编译的“bluetoothd”进行调试(也可以使用-E启用实验服务).运行蓝牙后,您可能需要重新设置适配器.然后,您可以使用gatttool(也可以在远程设备上运行的bluetoothd)从远程设备连接.
原文地址:https://www.jb51.cc/linux/393806.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。