V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dy416394356y78
V2EX  ›  C++

用 c++实现 bluez 对于 31 个字节蓝牙广播限制的问题

  •  
  •   dy416394356y78 · 3 天前 · 455 次点击
    各位大佬好,现遇到一个问题,恳请大家指一条明路

    我的需求:我的板子开机后会蓝牙广播,app 接收广播后可以直接识别该板子的型号,目前已经广播的数据有标志位,UUID 和蓝牙广播名字,已经占用了 29 字节,我查到蓝牙广播限制 31 个字节,我直接拼接在数据后面广播,nRF 会直接报 none ,即能扫描到但是没有数据

    目前我的蓝牙模块是 4.1 的 hci ,不支持拓展数据
    查到网上可以使用分包,或者加入扫描数据中,但是这样都无法在广播的时候,接收方就立刻收到数据进行识别,分包需要收到两个包,而加入扫描数据需要收到广播建立连接后才可以

    还有没有什么别的办法?

    感谢。
    yolee599
        1
    yolee599  
       3 天前 via Android
    没有办法,协议栈标准就是这么定的,你一个设备改了,其他设备也无法用啊。
    你除了可以使用 adv 还可以使用 scan_resp ,这样就有 31*2 个字节可以用了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1154 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 17:06 · PVG 01:06 · LAX 09:06 · JFK 12:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.