我正试图使用hciconfig与Broadcom和CSR芯片组一起设置蓝牙软盘的(查询)传输功率,例如:
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>
[...]我是不是搞错了,还是我使用的两个芯片组都不支持这个特性?
发布于 2012-12-18 11:47:40
只想再查一遍:
您能通过bccmd psget获得最大值和默认值吗?例:
bccmd psget 0x0017一旦接收到这些值,您是否可以通过设置0x1来在此范围内进行一些尝试?
此外,iirc,1是最大的硬件和0.5是50%的传输功率,这可以是驱动器的具体情况,这可能是垃圾信息在您的情况。
我几乎可以肯定,在设置了传输电源之后,您需要调用一个存储过程,以便设备开始使用它,防止设备立即尝试设置错误的传输电源。
这有什么用吗?
http://www.spinics.net/lists/linux-bluetooth/msg16546.html
发布于 2014-12-27 00:07:27
尝试:
sudo bccmd psget -s 0x0000 0x0017发布于 2020-04-25 18:09:50
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的硬件一起工作。
https://unix.stackexchange.com/questions/58510
复制相似问题