搜索
bottom↓
回复: 1

SYD8801生成蓝牙profile的方法【生成128BIT的UUID】【 复制profile...

[复制链接]

出0入0汤圆

发表于 2018-5-10 17:54:25 | 显示全部楼层 |阅读模式
本帖最后由 piaoran1314 于 2018-5-10 17:56 编辑

SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机、32位ARM Cortex-M0处理器、128kB Flash存储器、以及丰富的数字接口。SYD8801片上集成了Balun无需阻抗匹配网络、高效率DCDC降压转换器,适合用于可穿戴、物联网设备等。具体可咨询:http://www.syd-tek.com/
SYD8801生成蓝牙profile的方法

    注意:使用本博客的工具生成profile配置的前提条件是手中有配置原文件,也就是xml格式的原文件。如果手中只有txt文件,只能通过修改txt文件的办法达到修改profile文件的目的,相关说明请看:SYD8801 service.txt文档说明:[url]http://blog.csdn.net/chengdong1314/article/details/60870526[/url]

    注意:配置profile的过程中有一些要注意的问题,如果最后配置不成功请看:SYD8801配置UUID方法:[url]http://blog.csdn.net/chengdong1314/article/details/54135946[/url]


    解压原厂提供的《SYDService Utility》文件,其中的内容如下图1所示:

图1:工具文件目录
双击打开“BtGatt.exe”看到进入配置工具软件,该软件界面各个元素解释如下图2:
图2:配置工具界面元素
这里点击按钮,也就是上图中的“打开profile文件”按钮,打开一个xml文件,当然也可以选择添加profile按钮(“Add”按钮),因为原厂都有提供基本的profile配置文件,所以这里只介绍怎么在原厂提供的profile文件添加、删除以及修改元素,点击打开profile按钮后弹出选择profile文件的窗口,这里以选择《SYD8801EVB.xml》为例,注意:这里只能够选择xml文件,选择后弹出窗口如下图3:
图3:打开文件
         打开文件后可以看到该profile文件的所有元素的内容,界面解释如下图4:
图4:profile界面
       在相应的输入栏中修改掉之前的内容,填上自己项目中需要的内容即可,不如这里把上图中的“GATT.SERVICE_CHANGED”特性的UUID从0X2A05改成0X2A06,操作后结果如下图5:
图5:修改UUID
         下面解说怎么添加主要服务,比如在UART后面添加Wechat的服务,这里先选择UART服务,因为原厂提供的服务中并没有wechat服务,所以这里我们任意添加一个服务,然后再修改这个服务即可,比如这里选择添加电池服务,步骤如下图6:
图6:添加服务的步骤
         这里修改掉电池服务的UUID得到如下图7的效果:

图7:添加电池服务并修改服务UUID和名称
         因为wechat的特性和电池服务的特性不一样,所以这里删除掉电池服务的特性,具体步骤是选中电池服务并点击按钮,删掉特性后效果如下图8:
图8:删除掉服务特性
         接下来就要添加wechat的第一个特性,写特性了,因为原厂没有提供wechat写特性这个元素,所以这里要和上面添加电池服务一样,先添加一个默认的特性,然后再修改该特性,这里选择添加“[url=]VENDER_DEFINE_CHARACTERISTIC[/url]”特性,添加特性的步骤如下图9:
图9:添加特性的步骤
         然后修改特性的名称、UUID、权限和默认值,修改结果如下图10(注意:如果这里发现有些数字不能够修改,请使用Delete键回删然后修改):
图10:修改特性后
         接下来用上面的方法添加剩下的特性,这里要注意:添加第二个特性要先选中第一个特性,因为第二个特性在第一个特性的后面,结果如下图11:
图11:添加完所有的特性后的效果
         在上图中注意到WECHAT_INDICATE特性是有指示功能的,也就是说改特性拥有[url=]“[/url][url=]CLIENT_CHARACTERISTIC_CONFIGURATION[/url]”描述符,添加该描述符的步骤如下图12:

图12:添加描述符的步骤
         接下来给“CLIENT_CHARACTERISTIC_CONFIGURATION”描述符(注意:这里必须填上初值,请看:[url]http://blog.csdn.net/chengdong1314/article/details/54135946[/url]),填上初始值,效果如下图13:

图13:填上默认值的效果
         修改完毕后下来可以点击保存profile或者另存为profile按钮保存,如点击按钮保存。
最后点击按钮生成代码使用到的profile配置,生成的文件在code下,效果如下图14:
图14:生成的profile配置目录
         在经历了上面的生成步骤后,配置工具软件会再次为各个元素安排handle,最终的配置如下长图15:

长图15:最终效果

这里上传本博客使用到的工具,xml例子和测试代码http://download.csdn.net/detail/chengdong1314/9812037

参考:
SYD8801 service.txt文档说明http://blog.csdn.net/chengdong1314/article/details/60870526
配置相关的注意事项http://blog.csdn.net/chengdong1314/article/details/54135946
SYD8801代码解析http://blog.csdn.net/chengdong1314/article/details/60871037

生成128BIT的UUID
       上面的软件知识能够生成16bit的UUID的服务以及特性,要生成128BIT 的UUID的服务以及特性请用行的工具来生成,操作方法和上面提到的步骤一样,唯一的差异就是这个新的工具能够填入128bit也就是16字节的UUID了!如下图:


这里上传本节博客支持128BIT的profile配置工具:[url]http://download.csdn.net/detail/chengdong1314/9891830[/url]

复制profile的特性等元素

   

    上面的博客提及到的添加服务等元素的方法使用工具上面的添加按钮来实现,这对于想得到一样的服务的情况就不方便了,毕竟添加服务等元素要操作好几步,而且还要改名称的,现在有如下UART服务:


   

     这时候手机看到的特性配置是16bit的,如下:


      

    这里的想法是在UART服务下面再增加一个和UART NOTIFY一样的特性叫做UART NOTIFY1,常规办法就是去使用添加按钮进行添加,这个操作有些笨,所以这里最快的方式是直接在xml中进行复制操作,然后再回到工具中进行修改!

     打开SYD 128bit Service Utility\Setting\SYD8801EVB.xml找到UART相关的项如下:

     

    这里直接复制粘贴一项,粘贴后结果如下:

     

     这时候再用工具打开如下图:


     

    这里再修改UART NOTIFY1特性的UUID即可!修改之后再保存,手机看到的profile如下:

  

        到这里该功能实现!

这里上传本博客使用到的工具与例程:[url]http://download.csdn.net/detail/chengdong1314/9891920[/url]

快速修改UUID
在上面的博客中介绍了怎么快速复制profile元素,那么这里的快速修改UUID的方法就很简单了,直接在xml文件中就该即可,比如这里我这样的服务:
UART                         0X0001
UART Read Write   0X0002
UART Notify              0X0003
UART Notify1            0X0004
这里我想修改如下:
UART                         0x0000e890c8c545549906db51703c63a8

UART Read Write    0X0000e891c8c545549906db51703c63a8
UART Notify              0X0000e892c8c545549906db51703c63a8
UART Notify1            0X0000e893c8c545549906db51703c63a8

操作方法如下:
1.打开xml文件,找到UART服务:

2.这里直接在文件中修改,修改后如下:

3.用工具打开显示如下:


    这时候保存profile下载在手机上看到的现象如下:


   到这里功能实现
这里上传上本节的相关资料:[url]http://download.csdn.net/detail/chengdong1314/9891978[/url]


阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出70入0汤圆

发表于 2018-5-10 18:04:26 | 显示全部楼层
要是PDF文档就好了,这么长。。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 04:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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