Set Tmin and Tmax for inquiry?
Hi
I'm developing an application for bluecasting. So period of periodic inquire is important for me.
AFAIK, inquire process takes 10.24 seconds (Bluetooth 2.0). But if I use StartDiscovery method in python script, then I see this in hcidump:
< HCI Command: Periodic Inquiry Mode (0x01|0x0003) plen 9
max 24 min 16 lap 0x9e8b33 len 8 num 0
and I get "Inquiry Complete" event every ~24-30 second. But if I use 'hcitool spinq', then I see:
< HCI Command: Periodic Inquiry Mode (0x01|0x0003) plen 9
max 24 min 16 lap 0x9e8b33 len 8 num 0
and "Inquiry Complete" event takes place every ~13-15 seconds. And in both cases all remote devices is being founded, so I don't see any reason for longer inquiring. AFAIK HCID internally sets Tmin and Tmax parameters, but is there any way to affect to its 'decision'?
P.S. Excuse me for my English :(
Oops. Mistake. Right is: 'max 24 min 16 lap 0x9e8b33 len 8 num 0' (StartDiscovery) and 'max 16 min 10 lap 0x9e8b33 len 8 num 0' (hcitool)
Ilya Rubtsov пишет:
Quoted 16 lines
Hi
I'm developing an application for bluecasting. So period of periodic inquire is important for me.
AFAIK, inquire process takes 10.24 seconds (Bluetooth 2.0). But if I use StartDiscovery method in python script, then I see this in hcidump:< HCI Command: Periodic Inquiry Mode (0x01|0x0003) plen 9
max 24 min 16 lap0x9e8b33len 8 num 0and I get "Inquiry Complete" event every ~24-30 second. But if I use 'hcitool spinq', then I see:
< HCI Command: Periodic Inquiry Mode (0x01|0x0003) plen 9
max 24 min 16 lap0x9e8b33len 8 num 0and "Inquiry Complete" event takes place every ~13-15 seconds. And in both cases all remote devices is being founded, so I don't see any reason for longer inquiring. AFAIK HCID internally sets Tmin and Tmax parameters, but is there any way to affect to its 'decision'?
P.S. Excuse me for my English :(
Hi Ilya,
The hcitool application uses the HCI library function hci_send_req() to send a periodic inquiry request to the controller. The max and min periods are hardcoded to 16 and 10 respectively, and there is no user option to change those. In the case of your python script I can't tell you for sure because I haven't looked at the code of the python BlueZ bindings, but if the API call it presents to you has no Tmin and Tmax that means it's hardcoded there too. The bluetoothd (formerly called hcid) has absolutely nothing to do with the hcitool since this tool bypasses it completely. For python, you should look at the code for the bindings and find out how the API implementation handles your call.
--
Carles
Quoted 25 lines · Ilya Rubtsov
Oops. Mistake. Right is: 'max 24 min 16 lap
0x9e8b33len 8 num 0' (StartDiscovery) and 'max 16 min 10 lap0x9e8b33len 8 num 0' (hcitool)Ilya Rubtsov пишет:
Quoted 8 lines
Hi
I'm developing an application for bluecasting. So period of periodic inquire is important for me.
AFAIK, inquire process takes 10.24 seconds (Bluetooth 2.0). But if I use StartDiscovery method in python script, then I see this in hcidump:< HCI Command: Periodic Inquiry Mode (0x01|0x0003) plen 9
max 24 min 16 lap0x9e8b33len 8 num 0Quoted 8 lines
and I get "Inquiry Complete" event every ~24-30 second. But if I use 'hcitool spinq', then I see:
< HCI Command: Periodic Inquiry Mode (0x01|0x0003) plen 9
max 24 min 16 lap0x9e8b33len 8 num 0and "Inquiry Complete" event takes place every ~13-15 seconds. And in both cases all remote devices is being founded, so I don't see any reason for longer inquiring. AFAIK HCID internally sets Tmin and Tmax parameters, but is there any way to affect to its 'decision'?
P.S. Excuse me for my English :(--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Thanks for reply. I have talk to Vudentz at #blues and now know that both sets of Tmin and Tmax are hardcoded. He also said me that I can use software scheduler, so I do.
Also he said that API's interval is longer (min 16, max 24) because there is name resolution feature.
So, I wonder - why this feature is not optional? I think not all application need name resolution. Another idea (Vudentz's idea) is to hardcode min 10 to API - if chip is smart it will able to end work earlier.
Carles Cufi пишет:
Quoted 35 lines
Hi Ilya,
The hcitool application uses the HCI library function
hci_send_req()to send a periodic inquiry request to the controller. The max and min periods are hardcoded to 16 and 10 respectively, and there is no user option to change those. In the case of your python script I can't tell you for sure because I haven't looked at the code of the python BlueZ bindings, but if the API call it presents to you has no Tmin and Tmax that means it's hardcoded there too. The bluetoothd (formerly called hcid) has absolutely nothing to do with the hcitool since this tool bypasses it completely. For python, you should look at the code for the bindings and find out how the API implementation handles your call.Signature · 1 line
CarlesQuoted 25 lines · Ilya Rubtsov
Oops. Mistake. Right is: 'max 24 min 16 lap
0x9e8b33len 8 num 0' (StartDiscovery) and 'max 16 min 10 lap0x9e8b33len 8 num 0' (hcitool)Ilya Rubtsov пишет:
Quoted 16 lines
Hi
I'm developing an application for bluecasting. So period of periodic inquire is important for me.
AFAIK, inquire process takes 10.24 seconds (Bluetooth 2.0). But if I use StartDiscovery method in python script, then I see this in hcidump:< HCI Command: Periodic Inquiry Mode (0x01|0x0003) plen 9
max 24 min 16 lap0x9e8b33len 8 num 0and I get "Inquiry Complete" event every ~24-30 second. But if I use 'hcitool spinq', then I see:
< HCI Command: Periodic Inquiry Mode (0x01|0x0003) plen 9
max 24 min 16 lap0x9e8b33len 8 num 0and "Inquiry Complete" event takes place every ~13-15 seconds. And in both cases all remote devices is being founded, so I don't see any reason for longer inquiring. AFAIK HCID internally sets Tmin and Tmax parameters, but is there any way to affect to its 'decision'?
P.S. Excuse me for my English :(Signature · 3 lines
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Ilya,
The fact of name resolution being optional has always been a subject of debate. Recently the D-Bus APIs also removed the call for discovery without name resolving. If you want pure inquiry (or periodic inquiry) without names, you can always use the C APIs, which will allow you to do whatever you want with the radio.
--
Carles
Quoted 46 lines · Ilya Rubtsov
Thanks for reply. I have talk to Vudentz at #blues and now know that both sets of Tmin and Tmax are hardcoded. He also said me that I can use software scheduler, so I do.
Also he said that API's interval is longer (min 16, max 24) because there is name resolution feature.
So, I wonder - why this feature is not optional? I think not all application need name resolution. Another idea (Vudentz's idea) is to hardcode min 10 to API - if chip is smart it will able to end work earlier.Carles Cufi пишет:
Quoted 35 lines
Hi Ilya,
The hcitool application uses the HCI library function
hci_send_req()to send a periodic inquiry request to the controller. The max and min periods are hardcoded to 16 and 10 respectively, and there is no user option to change those. In the case of your python script I can't tell you for sure because I haven't looked at the code of the python BlueZ bindings, but if the API call it presents to you has no Tmin and Tmax that means it's hardcoded there too. The bluetoothd (formerly called hcid) has absolutely nothing to do with the hcitool since this tool bypasses it completely. For python, you should look at the code for the bindings and find out how the API implementation handles your call.Signature · 1 line
CarlesQuoted 25 lines · Ilya Rubtsov
Oops. Mistake. Right is: 'max 24 min 16 lap
0x9e8b33len 8 num 0' (StartDiscovery) and 'max 16 min 10 lap0x9e8b33len 8 num 0' (hcitool)Ilya Rubtsov пишет:
Quoted 16 lines
Hi
I'm developing an application for bluecasting. So period of periodic inquire is important for me.
AFAIK, inquire process takes 10.24 seconds (Bluetooth 2.0). But if I use StartDiscovery method in python script, then I see this in hcidump:< HCI Command: Periodic Inquiry Mode (0x01|0x0003) plen 9 max 24 min 16 lap
0x9e8b33len 8 num 0and I get "Inquiry Complete" event every ~24-30 second. But if I use 'hcitool spinq', then I see:
< HCI Command: Periodic Inquiry Mode (0x01|0x0003) plen 9 max 24 min 16 lap
0x9e8b33len 8 num 0and "Inquiry Complete" event takes place every ~13-15 seconds. And in both cases all remote devices is being founded, so I don't see any reason for longer inquiring. AFAIK HCID internally sets Tmin and Tmax parameters, but is there any way to affect to its 'decision'?
P.S. Excuse me for my English :(Signature · 3 lines
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html