Tag: bluetooth

Linux中的蓝牙编程 – 交叉编译问题

我安装了 sudo apt-get install libbluetooth-dev 在我的环境中拥有蓝牙套件。 因此,使用以下命令可以使用gcc成功编译蓝牙代码。 gcc -o bt bt.c -lbluetooth 但是,当我尝试使用交叉编译器来编译源代码时 $CC -o bt2 bt.c -lbluetooth 我得到了致命的错误: fatal error: bluetooth/bluetooth.h: No such file or directory compilation terminated 有什么我做错了或者我需要将这个库链接到这个交叉编译器吗? 谢谢

使用Bluez的C / C ++ BLE读/写示例

我开始建立一个简单的BLE网络,带有微控制器和覆盆子pi(tardis BLE加密狗)。 作为一个起点,我正在寻找一个简单的C或C ++示例来读/写一个BLE设备,类似于我能够在命令行上做的事情。 到目前为止,我发现的例子非常复杂。 作为一名BLE初学者,我需要一些非常简单的例子来构建,然后再采用更复杂的设计。 我可以像在下面的gatttool示例中那样对BLE设备名称进行硬编码。 以下是我目前使用Bluez命令行选项的方法。 从命令行我可以使用: $ sudo hcitool lescan LE Scan … BB:A0:50:02:18:07 MyDevice 接下来,我可以使用gatttool在命令行上连接到设备: $ sudo gatttol -b BB:A0:50:02:18:07 -I [BB:A0:50:02:18:07][LE]> connect Attempting to connect to BB:A0:50:02:18:07 Connection successful 最后,我能够使用适当的句柄进行读写 [BB:A0:50:02:18:07][LE]> char-write-req 000f 0100 Characteristic value was written successfully [BB:A0:50:02:18:07][LE]> char-write-cmd 0011 4C467A 我用于初步研究并开始使用的一些网站: http://people.csail.mit.edu/albert/bluez-intro/c404.html https://github.com/carsonmcdonald/bluez-experiments/blob/master/experiments/scantest.c

BlueZ蓝牙API和距离校准精度

我正在使用BlueZ C API来编程我的蓝牙鼠标来读取距离。 我已经设置了一个蓝牙加密狗。 目前,我必须将鼠标从笔记本电脑(蓝牙加密狗)移动至少5-10英尺才能获得一些RSSI读数。 低于这个距离,我得到的大部分读数为0。 有没有办法使用这个API来获得更准确的RSSI值,以便我们可以跟踪这个范围内的距离? int8_t Bluetooth::read_rssi(int to) { int dd = hciSocket; struct hci_conn_info_req *cr; bdaddr_t bdaddr; int8_t rssi; str2ba(bt_addr, &bdaddr); if (dd bdaddr, &bdaddr); cr->type = ACL_LINK; if (ioctl(dd, HCIGETCONNINFO, (unsigned long) cr) conn_info->handle), &rssi, 1000) < 0) { perror("Read RSSI failed"); exit(1); } return rssi; }

Bluez编程

我正在使用USB蓝牙适配器在我的Raspberry Pi上使用BlueZ进行编程。 我需要能够以编程方式连接到Arduino BT,问题是Arduino的蓝牙模块仍在使用传统配对,因此每当我尝试打开设备的套接字时,我都会获得Permission Denied 。 如何通过BlueZ发送PIN码来完成配对请求?