【发布时间】:2011-01-27 10:17:10
【问题描述】:
我在 WindowsXP 上的 Python 2.6 上使用 pyBluez 模块。我想获取其他蓝牙设备的 RSSI。 我找到了一些代码,但它使用了 _bluetooth,我无法在 Windows 的任何地方找到它。
它是否可用/是否有另一种方法可以绕过该问题,在不使用 _bluetooth 的情况下获取 RSSI?
谢谢大家!
【问题讨论】:
标签: python windows bluetooth rssi
我在 WindowsXP 上的 Python 2.6 上使用 pyBluez 模块。我想获取其他蓝牙设备的 RSSI。 我找到了一些代码,但它使用了 _bluetooth,我无法在 Windows 的任何地方找到它。
它是否可用/是否有另一种方法可以绕过该问题,在不使用 _bluetooth 的情况下获取 RSSI?
谢谢大家!
【问题讨论】:
标签: python windows bluetooth rssi
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 stack 进行检查。
【讨论】:
_bluetooth 模块是 PyBluez 的一部分。如果您安装了 Windows 版本的 PyBluez,它应该可以工作。
我对蓝牙知之甚少,甚至不知道“在不使用它的情况下获取 RSSI”是什么意思,或者为什么它应该是一个问题,所以在这方面无法为您提供帮助。 :)
【讨论】:
在 Windows 上,您无法获取 RSSI,至少如果您使用的是 MS 蓝牙堆栈,我不知道 Widcomm。 PyBluez 是蓝牙 API 的包装器,如果底层堆栈不提供该功能,Python 项目也不能。
所以这可能是您在 Windows 中没有它的原因。你也可以关注this thread你会发现更多的信息,即使是关于Windows 7的,它也适用于Windows XP。
【讨论】: