Skip to contentSkip to conversation

DeviceFound and DeviceDisappeared signals

DISCUSSION Ilya Rubtsov 2 participants 4 messages May 1, 2009 – May 2, 2009 Bluetooth drivers

lore
Share & tools
lore
#0 lore raw

Hi! I have some troubles with using DeviceFound and DeviceDisappeared signals. I use simple test script: http://pastebin.com/m45de7894 . There are two cases: if I use software inquire scheduler and if I use hardware one.

Hardware scheduler. Bluetooth module in phone is on and I run script:
---

ilya@ilya-laptop:~/blue$ python fodis.py
Fri May  1 16:36:44 2009 Signal: DeviceFound 00:16:B8:53:5F:17
---
And no more signals. Then I wait 2 mins, turn off Bluetooth in phone and wait 2 more mins, but no one signal is emitted.
I don't know if DeviceFound signal should be emitted on every inquire, maybe not. But I'm sure DeviceDisappeared signal should be emitted at least once :)

Software scheduler ("DiscoverSchedulerInterval = 1" at main.conf). Bluetooth module in phone is on and I run script:
---

ilya@ilya-laptop:~/blue$ python fodis.py
Fri May  1 16:43:52 2009 Signal: DeviceFound 00:16:B8:53:5F:17
Fri May  1 16:44:11 2009 Signal: DeviceDisappeared 00:16:B8:53:5F:17
Fri May  1 16:44:14 2009 Signal: DeviceFound 00:16:B8:53:5F:17
Fri May  1 16:44:34 2009 Signal: DeviceDisappeared 00:16:B8:53:5F:17
Fri May  1 16:44:37 2009 Signal: DeviceFound 00:16:B8:53:5F:17
Fri May  1 16:44:57 2009 Signal: DeviceDisappeared 00:16:B8:53:5F:17
Fri May  1 16:45:00 2009 Signal: DeviceFound 00:16:B8:53:5F:17
Fri May  1 16:45:20 2009 Signal: DeviceDisappeared 00:16:B8:53:5F:17
Fri May  1 16:45:23 2009 Signal: DeviceFound 00:16:B8:53:5F:17
### At this moment I turn off Bluetooth in phone
Fri May  1 16:45:43 2009 Signal: DeviceDisappeared 00:16:B8:53:5F:17
---

So, both signals was emitted on every inquiry. I think this is wrong behavior. Am I right? And DeviceDisappeared was emitted once after remote device was actually turned off. That's good :)

#1 lore raw

I just would add that with hardware scheduler DeviceDisappeared signal works fine if there two remote devices in the field, and doesn't work if there is only one remote device:

---
# Now there only 00:16:B8:53:5F:17 is turned on
Fri May 1 20:36:48 2009 Signal: DeviceFound 00:16:B8:53:5F:17
# Now I turn off 00:16:B8:53:5F:17 and wait, but no signal being emitted...
# So, I turn on 00:02:76:16:F6:8F
Fri May 1 20:38:52 2009 Signal: DeviceFound 00:02:76:16:F6:8F
Fri May 1 20:39:01 2009 Signal: DeviceDisappeared 00:16:B8:53:5F:17
# So new device appearing causes emitting DeviceDisappeared signal for device that was turned off some time ago
---

P.S. I use BlueZ 4.36

Ilya Rubtsov пишет:

Quoted 29 lines

Hi! I have some troubles with using DeviceFound and DeviceDisappeared signals. I use simple test script: http://pastebin.com/m45de7894 . There are two cases: if I use software inquire scheduler and if I use hardware one.

Hardware scheduler. Bluetooth module in phone is on and I run script:
---

ilya@ilya-laptop:~/blue$ python fodis.py
Fri May  1 16:36:44 2009 Signal: DeviceFound 00:16:B8:53:5F:17
---
And no more signals. Then I wait 2 mins, turn off Bluetooth in phone and wait 2 more mins, but no one signal is emitted.
I don't know if DeviceFound signal should be emitted on every inquire, maybe not. But I'm sure DeviceDisappeared signal should be emitted at least once :)

Software scheduler ("DiscoverSchedulerInterval = 1" at main.conf). Bluetooth module in phone is on and I run script:
---

ilya@ilya-laptop:~/blue$ python fodis.py
Fri May  1 16:43:52 2009 Signal: DeviceFound 00:16:B8:53:5F:17
Fri May  1 16:44:11 2009 Signal: DeviceDisappeared 00:16:B8:53:5F:17
Fri May  1 16:44:14 2009 Signal: DeviceFound 00:16:B8:53:5F:17
Fri May  1 16:44:34 2009 Signal: DeviceDisappeared 00:16:B8:53:5F:17
Fri May  1 16:44:37 2009 Signal: DeviceFound 00:16:B8:53:5F:17
Fri May  1 16:44:57 2009 Signal: DeviceDisappeared 00:16:B8:53:5F:17
Fri May  1 16:45:00 2009 Signal: DeviceFound 00:16:B8:53:5F:17
Fri May  1 16:45:20 2009 Signal: DeviceDisappeared 00:16:B8:53:5F:17
Fri May  1 16:45:23 2009 Signal: DeviceFound 00:16:B8:53:5F:17
### At this moment I turn off Bluetooth in phone
Fri May  1 16:45:43 2009 Signal: DeviceDisappeared 00:16:B8:53:5F:17
---

So, both signals was emitted on every inquiry. I think this is wrong behavior. Am I right? And DeviceDisappeared was emitted once after remote device was actually turned off. That's good :)

#2 lore raw

Hi,

Quoted 11 lines · Ilya Rubtsov

I just would add that with hardware scheduler DeviceDisappeared signal works fine if there two remote devices in the field, and doesn't work if there is only one remote device:

---
# Now there only 00:16:B8:53:5F:17 is turned on
Fri May  1 20:36:48 2009 Signal: DeviceFound 00:16:B8:53:5F:17 # Now I turn off 00:16:B8:53:5F:17 and wait, but no signal being emitted... # So, I turn on 00:02:76:16:F6:8F
Fri May  1 20:38:52 2009 Signal: DeviceFound 00:02:76:16:F6:8F Fri May  1 20:39:01 2009 Signal: DeviceDisappeared 00:16:B8:53:5F:17

You may just have to wait longer to get the DeviceDisappeared signal the fact the you turned off the device doesn't mean it will instantly disappear it may happen that bluetoothd is idle waiting for scheduler to start another discovery round (use Discovering property to check that.). I will double check if there is some logic problem while emitting DeviceDisappeared but I remember fixing it myself last time and have no complaining since then.

Signature · 2 lines
Luiz Augusto von Dentz
Engenheiro de Computação
#3 lore raw

Luiz Augusto von Dentz пишет:

Quoted 17 lines

Hi,

Quoted 4 lines · Ilya Rubtsov

I just would add that with hardware scheduler DeviceDisappeared signal works fine if there two remote devices in the field, and doesn't work if there is only one remote device:

Quoted 8 lines

---
# Now there only 00:16:B8:53:5F:17 is turned on
Fri May 1 20:36:48 2009 Signal: DeviceFound 00:16:B8:53:5F:17 # Now I turn off 00:16:B8:53:5F:17 and wait, but no signal being emitted... # So, I turn on 00:02:76:16:F6:8F
Fri May 1 20:38:52 2009 Signal: DeviceFound 00:02:76:16:F6:8F Fri May 1 20:39:01 2009 Signal: DeviceDisappeared 00:16:B8:53:5F:17

Quoted 9 lines

You may just have to wait longer to get the DeviceDisappeared signal the fact the you turned off the device doesn't mean it will instantly disappear it may happen that bluetoothd is idle waiting for scheduler to start another discovery round (use Discovering property to check that.). I will double check if there is some logic problem while emitting DeviceDisappeared but I remember fixing it myself last time and have no complaining since then.

I connected to PropertyChanged signal:

# device (bluetooth module in phone) is turned on. I run script
Sun May 3 02:55:00 2009 Signal: PropertyChanged Discovering 1
Sun May 3 02:55:03 2009 Signal: DeviceFound 00:16:B8:53:5F:17 kkk -45
Sun May 3 02:55:10 2009 Signal: PropertyChanged Discovering 0
Sun May 3 02:55:21 2009 Signal: PropertyChanged Discovering 1
Sun May 3 02:55:31 2009 Signal: PropertyChanged Discovering 0
Sun May 3 02:55:50 2009 Signal: PropertyChanged Discovering 1
Sun May 3 02:56:00 2009 Signal: PropertyChanged Discovering 0
# turn device off
# And then no signal. At all. You even may go and drink cup of coffee or smth :) There won't be any signal. But LED on my dongle indicates mode changing: waiting (blinking), inquiry (permanent light), waiting, inquiry...
# turn device on
Sun May 3 02:59:39 2009 Signal: PropertyChanged Discovering 0
Sun May 3 02:59:55 2009 Signal: PropertyChanged Discovering 1
Sun May 3 03:00:05 2009 Signal: PropertyChanged Discovering 0
Sun May 3 03:00:23 2009 Signal: PropertyChanged Discovering 1
Sun May 3 03:00:30 2009 Signal: PropertyChanged Discovering 0
Sun May 3 03:00:46 2009 Signal: PropertyChanged Discovering 1
Sun May 3 03:00:54 2009 Signal: PropertyChanged Discovering 0
Sun May 3 03:01:08 2009 Signal: PropertyChanged Discovering 1
Sun May 3 03:01:15 2009 Signal: PropertyChanged Discovering 0
Sun May 3 03:01:31 2009 Signal: PropertyChanged Discovering 1
Sun May 3 03:01:38 2009 Signal: PropertyChanged Discovering 0
Sun May 3 03:01:49 2009 Signal: PropertyChanged Discovering 1
Sun May 3 03:01:59 2009 Signal: PropertyChanged Discovering 0
Sun May 3 03:02:22 2009 Signal: PropertyChanged Discovering 1
Sun May 3 03:02:30 2009 Signal: PropertyChanged Discovering 0
Sun May 3 03:02:44 2009 Signal: PropertyChanged Discovering 1
# turn device off
Sun May 3 03:02:51 2009 Signal: PropertyChanged Discovering 0
# and then silent...

BlueZ 4.36
Script source: http://pastebin.com/m26afe2e2
Hardware scheduler