1

我在 WindowsXP 上的 Python 2.6 上使用 pyBluez 模块。我想获取其他蓝牙设备的 RSSI。我找到了一些代码,但它使用了 _bluetooth,我无法在 Windows 的任何地方找到它。

是否可用/是否有另一种方法来规避问题,在不使用 _bluetooth 的情况下获取 RSSI?

谢谢你们!

4

3 回答 3

1

MS 蓝牙堆栈不支持 API 中的 RSSI 测量。这在 Windows XP SP2 之前得到了证实,而且在 Vista 和 7 中情况似乎没有改变。Windows Mobile 6 具有不同的 BT 管理 API,并提供BthReadRSSI功能。在 Windows XP 中从蓝牙加密狗获取 RSSI 的唯一方法似乎是使用不同的堆栈,例如WIDCOMM。使用后,您可以使用函数GetConnectionStats获取 RSSI 。您可以在 Google 上键入“ GetConnectionStats widcomm ”找到更多信息。在python中,(我希望)您可以直接通过ctypes调用该函数模块,但是我不知道 pybluez 移植是否支持 WIDCOMM,请尝试发布结果。否则,您可以使用不同的BT 堆栈进行检查。

于 2011-01-28T00:43:01.527 回答
0

_bluetooth 模块是 PyBluez 的一部分。如果您安装了 PyBluez 的 Windows 版本,它应该可以工作。

我对蓝牙知之甚少,甚至不知道“在不使用它的情况下获取 RSSI”是什么意思,或者为什么它应该是一个问题,所以无法帮助你。:)

于 2011-01-27T11:03:23.597 回答
0

在 Windows 上,您无法获得 RSSI,至少如果您使用的是 MS 蓝牙堆栈,我不知道 Widcomm。PyBluez 是蓝牙 API 的包装器,如果底层堆栈不提供该功能,Python 项目也不能。

所以这可能是你在 Windows 中没有它的原因。你也可以关注这个帖子,你会发现更多信息,即使是关于 Windows 7,它也适用于 Windows XP。

于 2011-01-27T14:45:46.833 回答