关于iOS蓝牙开发小结

公司项目是做心电监测的,实时采集心电数据.

项目是自己基于CoreBluetooth封装的, 没有采用第三方库.
原来没有做过蓝牙通信, 也是从头学起的, 好在iOS开发相对于简单一些, 接口封装的都比较简单实用, 不过这期间因为设备、高标准的需求, 也的确是遭遇了不少的挑战, 这一路走来也都逐个突破了.

e.g.

  1. 当时设备的Pairing影响到重连
    最终查阅一堆资料, 最终是设备端采取的安全机制问题, 也因此查阅了蓝牙底层协议栈,对蓝牙进一步有所了解和掌握,虽然对于iOS开发上并无太大帮助,但对技术的基类,进一步的研究学习,相信今后还是有很大的帮助的,在学习过程中也发现很多从事蓝牙开发的iOS工程师,对蓝牙技术栈并不了解,或者了解; 也因此了解到, 虽然公司本质是做蓝牙硬件通信这方面的, 但是对蓝牙的技术储备实在是不敢恭维
  1. 通信速度没有达到厂家的最高标准
    这个也是棘手的问题, 从代码层又无从下手, iOS上又无法修改ATT_MTU_Size(获取底层上可以实现,但和很多从事这方面的人交流或者是查询很多资料后并未发现如何去实现),在最终无奈的情况下,邮件将我的疑问反馈给工厂那边, 那边又搪塞说啊啊啊你这个速度就已经很正常了...但是在最高波特率115200下的传输速度不稳这件事还是无法解决, 关于iPhone 7/plus新增的BLE extension功能有何提升,在速度上我也是没有看出明显变化, 总之这件事似乎也不了了之了
  1. 强实时, 保后台
    因为是做心电监测的, 时效性肯定是重中之重, 起初做项目的时候压根不知道要保证那么长的时间, 项目做出来了, 突然说出来这个需求,当时就有点冒冷汗了,自测一次最长时间是48h (原公司只有Android项目, 据说最早是外包的, 由于需要做iOS, Android自学后写出来的, 当时是蓝牙3.0, 因为MFI等一些原因被拒, 然后打算只做BLE 4.0,并专门招一个iOS), 算是达到了最低标准, 也松了口气, 而且项目内原来的一部分数据处理存在内存泄漏, 优化后还是有提升空间的
  1. OTA
    做蓝牙不得不提OTA, 也就是空中升级功能, 一开始并没有这个需求, 不过既然从事了蓝牙开发, 就在不断学习蓝牙中提早的了解了这方面的姿势, 在需求下来后, 因为硬件那边先要适配Android 3.0 , 所以我只能先按照规定下来的逻辑撸代码了, 最终在4.0设备适配好后, 在进行联调和优化, 好在准备充分,这块算是最顺利的, 我们的产品升级文件比较小,大概155KB的一个txt文件,这里要提一下,网上很多资料都说iOS发送文件长度超过20Byte就会丢掉,我分别按照20Byte、50Byte、70Byte和150Byte等调试过, 除了50、70Bye丢包率严重外,150Byte最为稳定, 并不像网上说的那样, 既然单个包的大小我定位了150Byte,这里面还会包含于硬件规定好的协议头、尾等8Byte, 这样数据部分是142Byte, 所以将原始文件每142Byte拆出来加上协议8Bye组成一个个150Byte的包, 一次完整的升级文件大概被分成1093个包左右, 2min中内完成, 而且在我连续几十次的不断测试下,才会出现几个丢包, 这主要与设备频繁的执行OTA过程,设备发热等原因有关, 如果只是一次或者几次的执行OTA过程, 基本上可以保证丢包率为0

随着功能不断的添加, 优化, 适配, 之前最近几天前发现一个重大BUG, 连接设备后, 大概5分钟左右会断开一次, 控制台报错信息:

Error Domain = CBErrorDomain 
               Code = 6 "The connection has timed out unexpectedly." 
    UserInfo =  {
                    NSLocalizedDescription =The connection has timed out unexpectedly.
                }

测试设备:iPhone 6
设备系统:iOS 11.0.X (具体版本号不记得了)

突然冒出来这么个大BUG, 我也是懵逼了, 难道最近一直忙着写其他需求, 忽略了? 最近改代码新增BUG? 还是一直存在没留意没发现?

当时身边没有其他测试手机,就想着用自己的手机先跑下 ,结果Xcode提示不支持该版本iOS系统, 然后我就想着是不是iOS系统自身的BUG,把测试机给升级到了iOS 11.1.1, 可升级完后, Xcode 9.0又不能支持这么高版本的iOS系统了. 检查Xcode更新又没有, 真是蛋疼啊.....

换了设备,依旧, 找了个Android机跑了下, 一切正常, 又找了个iOS 10的测试机跑来一切正常, 稍微淡定了一些, 看样子是新增问题, 等等看, 等收到Xcode更新后升级完跑在iOS 11.1.1上看看.于是先去查询下这方面资料

遇到这个问题的很少, 在Stack Overflow上搜到几个, 系统版本还是iOS 8.0+的,并不是近期的,简单看了下, 应该不是一回事. 在苹果技术论坛中发现了一例相同的BUG 链接, 等了很久都没有更新, 查询资料也没有什么进展, 不得不去苹果网站手动找Xcode更新, 更新后,跑在iOS 11.1.1上,目前一切正常, 希望这个BUG被苹果真正修复了, 否则这样严重的BUG对于蓝牙强实时的产品就是严重的冲击.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,090评论 4 62
  • 水太蓝,所以想念漫出地平线。风都留在树林里,所以叶子喜欢唱歌。阳光打磨鹅卵石,所以记忆越来越沉淀。雨水想看爱人一眼...
    南有乔木8_4阅读 263评论 1 0
  • “@萌萌,不好意思,我删除你了。你给我发了三次广告,前面两次提醒你,第三次直接删除你了!”昵称为大叔的说道,这是大...
    王小嘉1阅读 124评论 0 0
  • 睡觉总爱做梦,一睡着就做梦,整夜整夜做梦的那种。做的梦,各种各样,醒来恍恍惚惚,似醒似梦。梦境里,是我非我。 那些...
    紫云木阅读 476评论 37 3