Articles of 蓝牙

Linux的蓝牙l2ping信号强度(不连接?)

对于这里的任何Linux的BlueZ / BT专家: 我正在寻找一种方式来“知道”已知的BT设备(已知的BDADDR),如果他们在范围内,我想知道近似的信号强度。 我知道我可以先运行l2ping,然后build立到设备的连接,最后检查rssi或链接质量,如果连接没有先配对。 然而,我正在寻找的是一种获得信号强度的方式,而无需先连接到设备。 完美的是来自l2ping回复数据包的信号强度测量,但我不知道这个信息是否可用,并沿着堆栈传递。

通过蓝牙连续传输数据

我想生成0到100之间的随机数,并通过蓝牙连续地从Raspberry Pi(运行Linux)传输到embedded式(x86)PC(也运行Linux)。 我的C代码基于以下内容: 客户端: – #include <stdio.h> #include <unistd.h> #include <sys/socket.h> #include <bluetooth/bluetooth.h> #include <bluetooth/rfcomm.h> int main(int argc, char **argv) { struct sockaddr_rc addr = { 0 }; int s, status; char dest[18] = "01:23:45:67:89:AB"; // allocate a socket s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM); // set the connection parameters (who to connect to) addr.rc_family = […]

在Linux上直接控制HCI设备(绕过蓝牙驱动程序)

我需要直接控制一个HCI设备,而不需要Linux驱动程序/内核干扰。 例如,当创build到外设的LE连接时,驱动程序正在独立地发送“LE连接更新”命令,我想避免这种情况。 我虽然有两种方法来解决这个问题: configuration蓝牙驱动程序以某种方式禁用对HCI设备的干扰(类似于hciattach上的-r标志),然后使用常规的AF_BLUEOOTH套接字来控制HCI设备。 禁用这个特定的HCI设备,但保留父字符设备并直接连接到它。 到目前为止,我还没有成功find如何实施这些方法的方法。 我还应该提到,我仍然需要一个不同的HCI设备来“正常”地使用系统,所以完全禁用蓝牙驱动程序不是一个select。

PAN与Linux,iOS,蓝牙,Bonjour,GameKit – 可能吗?

所以我就这件事读了不同的看法(我想我读了所有相关的问题)。 我可以连接在PAN – 我可以写一个应用程序,将连接 – 我的Linux机器和我的iOS设备通过蓝牙? 使用或不使用Bonjour或GameKit。 less数先决条件: iOS设备没有越狱。 iOS设备可能会启用或不启用热点/共享function(据我所知,这是由宽带提供商规定的 – 即,如果您付费,则可以限制连接)。 iOS可以运行使用logging的API的定制应用程序。 蓝牙可以由iOS设备用户手动激活。 非常感谢你!

Android和Linux(RPi)之间的蓝牙连接在首次写入操作时丢失

所以我一直在做一个项目,其中运行Android(API级别= 14)的设备必须通过蓝牙连接到运行Linux的服务器(具体来说:Raspberry Pi)。 build立连接时,应用程序将encryption的XMLstring发送到RPi。 RPi必须解密此string,parsingXML并执行相应的操作。 操作的结果将发送回Android设备。 到目前为止,我已经设法在应用程序和RPi(运行最新版本的Bluez软件包 )之间build立连接。 RPi有一个Targus的蓝牙4.0encryption狗。 当我试图从应用程序发送一个string到RPi的时候, 蓝牙sockets似乎已经closures。 Logcat给出消息Connection reset by peer 。 用于创build套接字的代码如下所示: Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class}); tmp = (BluetoothSocket) m.invoke(device, 1); Logcat输出如下: 06-20 14:29:42.224: DEBUG/RPiService(24273): ———- [ CONNECTION ESTABLISHED ] ———- 06-20 14:29:42.224: DEBUG/RPiService(24273): connected, Socket Type:Secure 06-20 14:29:42.229: DEBUG/RPiService(24273): create ConnectedThread: Secure 06-20 14:29:43.734: DEBUG/RPiService(24273): setState() […]

Linux中的bluetooth / bluetooth.h在哪里?

我想build立基于BlueZ的交stream文件,但在我的系统似乎没有bluetooth.h文件。 fatal error: bluetooth/bluetooth.h: No such file or directory 我相信蓝牙适配器运行正常,我已经成功地build立了蓝牙。 更新 对于我的情况,我在/ user / include / bluetooth文件夹中find了bluetooth.h

使用BlueZ堆栈作为外设时错误的负载

我试图在这个问题上遵循davidgyoung提供的步骤。 这里是我使用的命令: hciconfig hci0 up hciconfig hci0 noleadv hcitool -i hci0 cmd 0x08 0x0008 48 45 4c 4c 4f 57 4f 52 4c 44 hciconfig hci0 leadv 这给了我这个输出: LE set advertise enable on hci0 returned status 12 < HCI Command: ogf 0x08, ocf 0x0008, plen 10 48 45 4C 4C 4F 57 4F 52 4C […]

蓝牙LE信号强度Linux

有没有什么办法可以通过蓝牙在linux上devise得到近信号强度? 或者任何好的库的nodejs,PHP或单声道(我知道一些C + +或Python,但宁愿说远离他们),如果一个工具不存在,但会很容易写 谢谢

蓝牙低功耗:使用BlueZ堆栈作为外设(具有自定义服务和特性)

我试图在Linux机器上使用BlueZ堆栈来创build一个具有自定义服务和特性的GATT服务器。 最终目标是使用任何中央设备(例如iOS或Android设备)连接到GATT服务器,发现服务和特征,并处理特征中的数据。 例: 包含3个特征的1个服务的外围设备。 服务uuid​​ = 0xFFFF 字符1 uuid = 0xAAAA,属性=可读 字符2 uuid = 0xBBBB,属性=可读写 字符3 uuid = 0xCCCC,属性=通知 从中央设备,我应该看到外围设备,连接到它并发现一个具有三个特征(0xAAAA,0xBBBB,0xCCCC)的服务(0xFFFF)。 然后我应该可以读取0xAAAA的值,读取和写入0xBBBB的值,并在0xCCCC上启用通知。 请注意,我知道存在类似的问题 ,但仅解释如何将外设用作广告客户。 另一个解决的问题解释了如何创build一个GATT服务器,但没有解释如何使用特性的属性(例如可读,通知等),或者我错过了一些东西。 先谢谢你。

用hcidump获取RSSI

为了读取原始的RSSI值,我们使用一个名为Hcidump的实用程序来监视蓝牙HCI数据。 使用hcidump命令,当收到查询响应消息时,我们可以读取原始的RSSI值。 为了获得每个响应分组的RSSI值,我们首先将查询模式设置为使用RSSI进行查询。为了读取原始RSSI值,我们运行hcidump工具,然后使用适当的HCI函数开始周期性查询。 我不知道如何使用hcidump只包含RSSI原始数据或者如何启动定期查询。 我看到所有的观点,但我不能。 我让hcidump –raw获取原始数据,并试图parsing这个数据来获取rssi,但是我不知道这个是什么hex是rssi的信息。 这是我所获得的 04 2F FF 01 AC A2 65 92 88 EC 01 00 0C 02 5A 2D 1F D2 08 09 4E 65 78 75 73 20 36 17 03 05 11 0A 11 0C 11 0E 11 12 11 15 11 16 11 1F 11 2F 11 […]