使用C++;在Linux环境中 在Linux环境中有没有任何一个在C++中实现的强> BLE服务器的示例? 在上下文中,我有一个运行着Ubuntu的NVIDIA Jetson TX2板,我希望里面有一个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开发的研究还很新,所以我想得到正确的指针。 < P>我建议你采取以下的方向:-< /P> 通过命令行实现应用程序 通过自动shell脚本实现应用程序 (可选)使用C/C++实现应用程序

使用C++;在Linux环境中 在Linux环境中有没有任何一个在C++中实现的强> BLE服务器的示例? 在上下文中,我有一个运行着Ubuntu的NVIDIA Jetson TX2板,我希望里面有一个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开发的研究还很新,所以我想得到正确的指针。 < P>我建议你采取以下的方向:-< /P> 通过命令行实现应用程序 通过自动shell脚本实现应用程序 (可选)使用C/C++实现应用程序,c++,linux,ubuntu,bluetooth-lowenergy,bluez,C++,Linux,Ubuntu,Bluetooth Lowenergy,Bluez,如果不需要使用C/C++编写应用程序,那么我建议跳过此步骤,因为使用shell脚本可以获得相同的结果 至于通过命令行实现应用程序,我建议使用bluetoothctl工具,如以下答案所示:- 一旦这对您开始起作用,并且您能够从远程设备连接并浏览GATT表,请将命令列表转换为shell脚本并启动它以查看相同的结果 最后,如果到目前为止这对您有效,那么下一步是将该shell脚本转换为C/C++应用程序。您可以通过浏览前面使用的bluetoothctl命令的源代码来实现这一点。您可以找到BlueZ

如果不需要使用C/C++编写应用程序,那么我建议跳过此步骤,因为使用shell脚本可以获得相同的结果

至于通过命令行实现应用程序,我建议使用bluetoothctl工具,如以下答案所示:-

一旦这对您开始起作用,并且您能够从远程设备连接并浏览GATT表,请将命令列表转换为shell脚本并启动它以查看相同的结果

最后,如果到目前为止这对您有效,那么下一步是将该shell脚本转换为C/C++应用程序。您可以通过浏览前面使用的bluetoothctl命令的源代码来实现这一点。您可以找到BlueZ堆栈的源代码,也可以找到bluetoothctl命令的代码

我希望这有帮助。

请退房。您将需要一个dbus客户端来使用API。