一、简述
一直从事应用层互联网软件开发,突然公司转型要做物联网,意味着一个新领域,一大堆坑即将来袭,花了几天时间,看了官方给的蓝牙代码,开始尝试首次与其握手。
准备开发工具,我用的是Studio2.3.3、gradle3.3,下载谷歌官方蓝牙代码,这边有硬件厂家提供的板子一块,也就是蓝牙芯片,都准备就绪了,下面开始进行联调。
二、前期遇坑
1、先找到相关的服务UUID与特征UUID,我这边是硬件方找到告诉我的。如果厂家没有告诉你,那么你只能挨个找,如何找,先运行谷歌官方代码,连上芯片的mac,他会出来一堆服务,每个服务下面有一堆特征,你给特征一个个给他发消息,哪个有回应,哪条服务就是你写数据用的。
2、两条UUID都已找到,开始进行数据读写,真是顺风顺水,突然之间让你发送一条40个字节,纳尼,板子无应答。。于是开始找问题,终于找到了。因为我们的蓝牙芯片,不支持大数据写入,超过25个字节,就要分包发送。。知道这一条,就信心满满,进行分包发送,觉得问题终于解决了。。下午测试部又提了2个bug,蓝牙连不上,app发指令后收到乱码。。。当时第一想法,肯定是板子的问题。。。后来进行调试,发现又是一个大坑。。蓝牙连不上是兼容问题,发指令收到混乱应答是因为推帧没推好,一下子点多下,板子给你发多个,指令都是一帧,多帧乱拼接。。