From: EXT-McGhehey, M. J <Mar...@bo...> - 2008-05-19 21:01:14
|
Brad, Thank you for your response. Just as you have prescibed, I have been using (lm) MASTER for the piconet master device and (lp) RSWITCH for all devices in each respective hcid.conf file. The intent being to: a.) explicitly configure for a single device to assume the role of Master b.) permit a role switch to occur after the slave initiated connection has been established I have used hcidump and I observe that sometimes the Role Change hci event is present and at other times it simply is not. For example, here's a hcidump snippet from a slave device where the ACL connection and the role switch were both successful: root@gumstix_3> hcidump -X -V HCI sniffer - Bluetooth packet analyzer ver 1.40 device: hci0 snap_len: 1028 filter: 0xffffffff < HCI Command: Create Connection (0x01|0x0005) plen 13 bdaddr 00:80:37:2E:44:CC ptype 0xcc18 rswitch 0x01 clkoffset 0x0000 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 > HCI Event: Command Status (0x0f) plen 4 Create Connection (0x01|0x0005) status 0x00 ncmd 1 > HCI Event: Role Change (0x12) plen 8 status 0x00 bdaddr 00:80:37:2E:44:CC role 0x01 Role: Slave > HCI Event: Connect Complete (0x03) plen 11 status 0x00 handle 256 bdaddr 00:80:37:2E:44:CC type ACL encrypt 0x00 > HCI Event: Max Slots Change (0x1b) plen 3 handle 256 slots 5 < ACL data: handle 256 flags 0x02 dlen 12 L2CAP(s): Connect req: psm 15 scid 0x0040 After cycling power on the piconet devices, here's a hcidump snippet from the same device where, although the ACL connection was successful, NO role change occurred: root@gumstix_3> hcidump -X -V HCI sniffer - Bluetooth packet analyzer ver 1.40 device: hci0 snap_len: 1028 filter: 0xffffffff < HCI Command: Create Connection (0x01|0x0005) plen 13 bdaddr 00:80:37:2E:44:CC ptype 0xcc18 rswitch 0x01 clkoffset 0x0000 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 > HCI Event: Command Status (0x0f) plen 4 Create Connection (0x01|0x0005) status 0x00 ncmd 1 > HCI Event: Connect Complete (0x03) plen 11 status 0x00 handle 256 bdaddr 00:80:37:2E:44:CC type ACL encrypt 0x00 < ACL data: handle 256 flags 0x02 dlen 12 L2CAP(s): Connect req: psm 15 scid 0x0040 Given this unpredicatble behavior I have resorted to using hcitool from with a dev-up script to force a role change, whenever necessary. Mark -----Original Message----- From: Brad Midgley [mailto:bmi...@gm...] Sent: Monday, May 19, 2008 10:28 AM To: General mailing list for gumstix users. Subject: Re: [Gumstix-users] Connecting three basix-bt-400m to onelaptopmaster Mark > Thank you again, Brad, for helping out with this. Can you please > provide me with greater details for "role switch" procedure? hcidump -X -V will show you what is happening with roles. It can reveal a lot. it does sound like bugs somewhere. You can programatically change roles. This is useful if you write the code that makes bluez calls or if you want to hack the bluez services. The other alternative is to change it with hcitool. using hcid.conf is considered the sledgehammer approach since it affects all traffic. adding master to the link mode (lm) master is supposed to make the device deny an immediate switch on outbound connections and try to switch to master on new incoming connections. the remote side can always deny the request. removing rswitch from the link policy (lp) is supposed to make the device deny requests from the remote side for us to switch roles during the lifetime of the connection. is this enough info to figure out where things go wrong? maybe 'rswitch' should be left in. for me I think I had a headset that would later try to switch to master so I needed rswitch out. -- Brad ------------------------------------------------------------------------ - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ gumstix-users mailing list gum...@li... https://lists.sourceforge.net/lists/listinfo/gumstix-users |