วิธีการตั้งค่าพลังงานในการส่งผ่านบลูทู ธ ?


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

เพียงเพื่อตรวจสอบอีกครั้ง:

คุณสามารถรับค่าสูงสุดและค่าเริ่มต้นผ่าน bccmd psget ได้หรือไม่ อดีต:

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

ฉันยัง patched bccmdเพื่อสนับสนุนการอ่าน / การตั้งค่าเริ่มต้นและอำนาจ TX max (บทที่ 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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.