首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置蓝牙传输功率?

如何设置蓝牙传输功率?
EN

Unix & Linux用户
提问于 2012-12-14 17:11:13
回答 3查看 19.8K关注 0票数 13

我正试图使用hciconfig与Broadcom和CSR芯片组一起设置蓝牙软盘的(查询)传输功率,例如:

代码语言:javascript
复制
hciconfig hci0 inqtpl 3

但是,无论我传递什么有效的参数,之后读取该值都会产生0,如下所示:

代码语言:javascript
复制
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

当我传递无效值时,会收到一条错误消息:

代码语言:javascript
复制
Can't set inquiry transmit power level on hci0: Input/output error (5)

因此,很明显,该参数是有效的。我很确定这是由芯片组检查的,因为我在手动发送适当的HCI命令时得到了相同的结果。

两个芯片组都表示支持这一特性:

代码语言:javascript
复制
# 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>
                [...]

我是不是搞错了,还是我使用的两个芯片组都不支持这个特性?

EN

回答 3

Unix & Linux用户

发布于 2012-12-18 11:47:40

只想再查一遍:

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

代码语言:javascript
复制
bccmd psget 0x0017

一旦接收到这些值,您是否可以通过设置0x1来在此范围内进行一些尝试?

此外,iirc,1是最大的硬件和0.5是50%的传输功率,这可以是驱动器的具体情况,这可能是垃圾信息在您的情况。

我几乎可以肯定,在设置了传输电源之后,您需要调用一个存储过程,以便设备开始使用它,防止设备立即尝试设置错误的传输电源。

这有什么用吗?

http://www.spinics.net/lists/linux-bluetooth/msg16546.html

票数 2
EN

Unix & Linux用户

发布于 2014-12-27 00:07:27

尝试:

代码语言:javascript
复制
sudo bccmd psget -s 0x0000 0x0017
票数 0
EN

Unix & Linux用户

发布于 2020-04-25 18:09:50

代码语言:javascript
复制
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的硬件一起工作。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/58510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档