Як встановити потужність передачі Bluetooth?


9

Я намагаюся встановити (запит) потужність передачі Bluetooth-ключів як з чіпсетами 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

Відповіді:


2

Просто для подвійної перевірки:

Ви можете отримати максимальне і за замовчуванням значення через pscc bdmd? колишній:

bccmd psget 0x0017

І як тільки ці значення будуть отримані, чи можете ви спробувати щось середнє між цим діапазоном, встановивши, наприклад, 0x1?

Крім того, iirc, 1 - це максимум обладнання, а 0,5 - 50% транзитної потужності, що може бути специфічним для водія, щоб у вашому випадку була інформація про сміття.

Я був майже впевнений, що вам потрібно буде зателефонувати після встановлення транзитного живлення для того, щоб пристрій почав його використовувати, щоб запобігти спробі встановити помилкову потужність транзиту відразу.

Чи допомагає це щось:
http://www.spinics.net/lists/linux-bluetooth/msg16546.html


Дякую за вашу відповідь, я просто провів деякий час bccmd. bccmd 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

Я також виправляв, bccmdщоб підтримувати читання / встановлення за замовчуванням та max tx повноважень (глави 3.9 та 3.10 в eestud.kku.ac.th/~moo/datasheet/Bluetooth/BlueCore/… ). Я зміг встановити ці значення на 0 або 4, нічого іншого. Встановлення цих значень, мабуть, не має жодного практичного впливу на діапазон ключів. Цікаво, хоча hciconfig inqtplзараз повідомляє, 4якщо я встановив значення 4хоч ...
domsom

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.