使用C ++在Linux环境BLE服务器端实现

问题描述 投票:0回答:1

有没有用C在Linux环境中实现++一个BLE服务器的任何样品?对于方面,我有一个NVIDIA杰特森TX2板运行Ubuntu,我想在它BLE服务器,我可以配对Android和iOS设备。该装置将被广播到移动应用程序可以订阅的特性,并且它们还可以发送/接收消息优选地在JSON格式。目前有一些蓝牙代码,但我认为,在经典模式下这仅适用于:

...
int s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);

loc_addr.rc_family = AF_BLUETOOTH;
loc_addr.rc_bdaddr = *BDADDR_ANY_INITIALIZER;
loc_addr.rc_channel = (uint8_t) 22;

int b = bind(s, (struct sockaddr *)&loc_addr, sizeof(loc_addr));
...

我还是很新的C ++,Linux和一般BLE发展,所以我想获得指向正确的方向。

c++ linux ubuntu bluetooth-lowenergy bluez
1个回答
1
投票

我的建议是,你采取以下方向: -

  1. 实现通过命令行应用程序。
  2. 通过实施自动化shell脚本您的应用程序。
  3. (可选)实施使用C / C ++应用程序。

如果有C语言编写的应用程序/ C ++是不是必需的,那么我建议跳过这一步,你可以实现与shell脚本同样的结果。

作为实现通过命令行应用程序,我建议使用bluetoothctl工具,可以在下面的回答中可以看出: -

一旦开始为你工作,你可以从远程设备连接并浏览GATT表,转换命令列表到一个shell脚本,并启动它看到了相同的结果。

最后,如果这对你的作品了这一点,那么下一步就是那个shell脚本转换成C / C ++应用程序。您可以通过浏览源代码,这是以前使用的bluetoothctl命令这样做。你可以找到的堆栈的BlueZ的here来源,并为bluetoothctl命令的代码可以发现here

我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.