如何设置蓝牙发射功率?


9

我正在尝试使用来设置Broadcom和CSR芯片组的蓝牙加密狗的(查询)传输功率hciconfig,例如:

hciconfig hci0 inqtpl 3

但是无论我传递的是什么有效参数,事后读取值始终为0,如下所示:

hci0:   Type: BR/EDR  Bus: USB
        BD Address: 00:02:72:D6:6B:25  ACL MTU: 1021:8  SCO MTU: 64:1
        Inquiry transmit power level: 0

传递无效值时,会出现错误消息:

Can't set inquiry transmit power level on hci0: Input/output error (5)

因此很明显,要检查参数的有效性。我非常确定它会被芯片组检查,因为当手动发送适当的HCI命令时,我会得到相同的结果。

两种芯片组都声明它们支持此功能:

# hciconfig hci0 features
hci0:   Type: BR/EDR  Bus: USB
        BD Address: 00:02:72:D6:6B:25  ACL MTU: 1021:8  SCO MTU: 64:1
        Features page 0: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
                [...]
                <err. data report> <non-flush flag> <LSTO> <inquiry TX power>
                [...]

我是不是出了问题,还是只是偶尔我正在使用的两个芯片组都不支持此功能?


1
更新:我刚从加密狗制造商处收到一条说明,指出此功能已被欧洲CE标志所限制而被阻止。
domsom

Answers:


2

只是仔细检查一下:

您可以通过bccmd psget获得最大值和默认值吗?例如:

bccmd psget 0x0017

一旦收到这些值,您是否可以通过设置0x1为例尝试在该范围内进行操作?

同样,iirc,硬件的最大值为1,而50%的过渡功率为0.5,这可能是特定于驱动程序的,因此在您的情况下可能是垃圾信息。

我几乎可以肯定,在设置了过渡功率后,您需要致电商店以使设备开始使用,以防止设备立即尝试设置错误的过渡功率。

这对您有帮助吗?http :
//www.spinics.net/lists/linux-bluetooth/msg16546.html


感谢您的回答,我只是花了一些时间bccmdbccmd psget 0x0017产量Can't execute command: No such device or address (6)与我的CSR模块,而0x0001作品。bccmd pslist返回包含7个不包含0x0017的命令的简短列表。此外,bccmd buildname各州odj_4hci_rom_vm_bt2.1_23e_0806121029_encr128。也许固件太旧了?我可以更新吗?
domsom 2012年

我还打了补丁,bccmd以支持读取/设置默认和最大TX功率(eestud.kku.ac.th/~moo/datasheet/Bluetooth/BlueCore/…的 3.9和3.10章)。我已经能够将这些值设置为0或4。但是,设置这些值似乎对加密狗的范围没有任何实际影响。有趣的是,虽然hciconfig inqtpl现在报告4是否将值设置为4...
domsom 2012年

0

尝试:

sudo bccmd psget -s 0x0000 0x0017

当遇到domsom对Torxed答案的评论中解释的相同问题时,此方法有效。无需修补。
Hydranix

0
bccmd psget -s 0x0000 0x0021
Default transmit power: 0x0004 (4)
localhost ~ # bccmd psset -r -s 0x0000 0x0021 0x0006
localhost ~ # bccmd psget -s 0x0000 0x0021
Default transmit power: 0x0006 (6)

它可以与我基于CSR8510 A10的硬件一起使用

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.