gpt4 book ai didi

c - 是否可以使用 BLE 广播模式发送数据?

转载 作者:行者123 更新时间:2023-12-03 17:59:44 26 4
gpt4 key购买 nike

我想问您是否可以以广播模式将数据(字符串)从 BLE 设备(例如带有蓝牙加密狗的 Raspberry Pi、Onion 或 Arduino)发送到另一台设备(例如电话或另一个 Raspberry Pi) ,这将在屏幕上显示数据。

老实说,没有必要在屏幕上显示数据,但其他设备必须能够用我将创建的 C 程序详细说明接收到的数据。

我对这个主题进行了大量研究,但我只能找到有关信标的答案,这些对象无法为我的项目发送有用的数据(如字符串),或者必须相互连接才能发送/接收数据的 BLE 设备。

我想用 C 创建一个程序,以实现这个结果。
我在 BlueZ 库中搜索了一些有用的东西,但我找不到任何东西,因为它们没有解释其函数的含义。
如果可能的话,我不想创建一个 android/iOS 应用程序。

最佳答案

是的,这是可能的。您可能已经知道,低功耗蓝牙 (BLE) 中有四个角色:-

  • 广播器 - 只发布数据的设备。
  • 外围设备 - 一种设备,用于通告数据但也可以通过远程设备连接。
  • Observer - 只扫描数据的设备。
  • Central - 可以扫描数据并连接到数据的设备。

  • 当首次引入 BLE 时,信标/传感器(例如心率、温度计)占据了前两个类别,而手机/计算机则占据了另外两个类别。然而,BLE 已经发展,现在很多设备都支持所有四种角色,并且一个设备可以同时以一种或多种角色运行。

    关于你的问题,正如 Lee Daniel Crocker 所提到的,数据就是数据,你在广告中放置的只是另一端必须理解的字节。您只能在广告报告*中放入 31 个字节的数据,这就是面向连接的数据传输效率更高的原因。

    关于可编程性,我建议从用于广播的设备和读取数据的设备上的 BlueZ 命令开始。您可以使用 Bluetoothctl 命令执行此操作,如下所示:-

    在广播公司/外围设备上
    #bluetoothctl
    [bluetooth]menu advertise
    [bluetooth]advertise data 00 00 00 00
    [bluetooth]back
    [bluetooth]advertise on

    在观察员/中央
    #bluetoothctl
    [bluetooth]scan on

    我正在使用 BlueZ version 5.50我建议你也这样做。

    一旦您可以公布数据并正确地从另一端读取数据,您就可以浏览源代码,看看您可以利用哪些 C 应用程序。对于 bluetoothctl 函数,您希望从以下两个文件开始:-
  • bluez-5.50/client/main.c
  • bluez-5.50/client/advertising.c

  • 我希望这有帮助。

    (*) 从蓝牙 5 开始,您可以向广告报告添加更多数据,但这是一项非常新的功能,在撰写本文时,很少有堆栈支持它。

    关于c - 是否可以使用 BLE 广播模式发送数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53342122/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com