Skip to contentSkip to conversation

DiscoverDevices with apitest?

Bluez-users Stefan Seyfried 3 participants 7 messages Oct 19, 2006 Bluetooth drivers

lore
Share & tools
lore
#0 lore raw

Hi,

i tried today to discover devices with apitest (instead of "hcitool scan"), but it did not work:

seife@strolchi:~> apitest DiscoverDevices
None

and it returns immediately. So i tried my luck with direct "dbus-send":
seife@strolchi:~> dbus-send --system --dest=3Dorg.bluez --print-reply /org/= bluez/hci0 org.bluez.Adapter.DiscoverDevices
method return sender=3D:1.541 -> dest=3D:1.867

No luck either.
I always get this in my syslog from hcid:

Oct 19 13:52:39 strolchi hcid[17330]: Introspect path:/org/bluez
Oct 19 13:52:39 strolchi hcid[17330]: Introspect path:/org/bluez/hci0
Oct 19 13:52:39 strolchi hcid[17330]: name_listener_add(:1.869)
Oct 19 13:52:39 strolchi hcid[17330]: DiscoverDevices requestor at :1.869 e=
xited before the operation finished
Oct 19 13:52:39 strolchi hcid[17330]: name_listener_remove(:1.869)
Oct 19 13:52:39 strolchi hcid[17330]: remove_name_listener: no listener for=
 :1.869

So why doesn't the dbus call block? I also tried with a "apitest -l" running in parallel, to see if this would get something discovered, but it didn't:
seife@strolchi:~> apitest -l
Listening for events...
DiscoveryStarted - /org/bluez/hci0:
DiscoveryCompleted - /org/bluez/hci0:
DiscoveryStarted - /org/bluez/hci0:
DiscoveryCompleted - /org/bluez/hci0:
Caught signal, exiting

So am i doing something wrong?

I'm running bluez-{libs,utils} version 3.7 on 2.6.18. -- =

Stefan Seyfried
QA / R&D Team Mobile Devices | "Any ideas, John?"
SUSE LINUX Products GmbH, N=FCrnberg | "Well, surrounding them's out." =

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easi= er
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D120709&bid=3D263057&dat=3D1=
21642
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

maintainer
#1 lore raw

Hi Stefan,

Quoted 19 lines

i tried today to discover devices with apitest (instead of "hcitool scan"), but it did not work:

seife@strolchi:~> apitest DiscoverDevices
None

and it returns immediately. So i tried my luck with direct "dbus-send":
seife@strolchi:~> dbus-send --system --dest=org.bluez --print-reply /org/bluez/hci0 org.bluez.Adapter.DiscoverDevices method return sender=:1.541 -> dest=:1.867

No luck either.
I always get this in my syslog from hcid:

Oct 19 13:52:39 strolchi hcid[17330]: Introspect path:/org/bluez
Oct 19 13:52:39 strolchi hcid[17330]: Introspect path:/org/bluez/hci0
Oct 19 13:52:39 strolchi hcid[17330]: name_listener_add(:1.869)
Oct 19 13:52:39 strolchi hcid[17330]: DiscoverDevices requestor at :1.869 exited before the operation finished
Oct 19 13:52:39 strolchi hcid[17330]: name_listener_remove(:1.869)
Oct 19 13:52:39 strolchi hcid[17330]: remove_name_listener: no listener for :1.869
Quoted 10 lines

So why doesn't the dbus call block? I also tried with a "apitest -l" running in parallel, to see if this would get something discovered, but it didn't:
seife@strolchi:~> apitest -l
Listening for events...
DiscoveryStarted - /org/bluez/hci0:
DiscoveryCompleted - /org/bluez/hci0:
DiscoveryStarted - /org/bluez/hci0:
DiscoveryCompleted - /org/bluez/hci0:
Caught signal, exiting

You need to keep the calling application running, because otherwise hcid will stop the discovery. That is actually what you see in syslog.

It is not blocking, because this is simply not a blocking task. You might wanna have a look at this blog on how to do it with Python:

http://blogs.gnome.org/view/jamesh/2006/10/19/0

Regards

Marcel

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

#2 lore raw
Quoted 2 lines · Marcel Holtmann

You need to keep the calling application running, because otherwise hcid will stop the discovery. That is actually what you see in syslog.

You could also try the attached patch. After that the following command should do the trick:
./apitest -l DiscoverDevices

I think we may want to apply this to CVS. Marcel, what do you think?

Johan

Index: apitest
===================================================================
RCS file: /cvsroot/bluez/utils/test/apitest,v
retrieving revision 1.1

apitest +3 -2
diff -u -r1.1 apitest
@@ -399,7 +399,8 @@
             self.dbus_mgr_sig_setup()
             self.dbus_dev_sig_setup()
             print 'Listening for events...'
-        elif self.cmd in mgr_cmds:
+
+        if self.cmd in mgr_cmds:
             try:
                 self.dbus_mgr_setup()
             except dbus.DBusException, e:
@@ -413,7 +414,7 @@
                 print 'Failed to setup device interface: %s' % e
                 sys.exit(1)
             self.call_dev_dbus_func()
-        else:
+        else if not self.listen:
             print 'Unknown command: %s' % self.cmd
             self.usage()
             sys.exit(1)

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

#3 lore raw

Should have actually tested the patch first...

Quoted 1 line · Johan Hedberg

+ else if not self.listen:

This should of course be "elif not self.listen:"

Johan

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

maintainer
#4 lore raw

Hi Johan,

Quoted 6 lines

Should have actually tested the patch first...

Quoted 1 line · Johan Hedberg

+ else if not self.listen:

This should of course be "elif not self.listen:"

commit the fixed version.

Regards

Marcel

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

#5 lore raw
Quoted 1 line · Marcel Holtmann

commit the fixed version.

Done.

Johan

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

#6 lore raw
In reply to Johan Hedberg
Quoted 9 lines · Johan Hedberg
Quoted 2 lines · Marcel Holtmann

You need to keep the calling application running, because otherwise hcid will stop the discovery. That is actually what you see in syslog.

=

You could also try the attached patch. After that the following command =

should do the trick:
./apitest -l DiscoverDevices

almost, see below
=

Quoted 1 line

I think we may want to apply this to CVS. Marcel, what do you think?

I like it :-) I already had tried apitest -l DiscoverDevices, but it did not work.

Quoted 2 lines

Index: apitest =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Quoted 16 lines

RCS file: /cvsroot/bluez/utils/test/apitest,v
retrieving revision 1.1
diff -u -r1.1 apitest

apitest +2 -1
@@ -399,7 +399,8 @@
             self.dbus_mgr_sig_setup()
             self.dbus_dev_sig_setup()
             print 'Listening for events...'
-        elif self.cmd in mgr_cmds:
+
+        if self.cmd in mgr_cmds:
             try:
                 self.dbus_mgr_setup()
             except dbus.DBusException, e:

apitest line 417

Quoted 5 lines
apitest +1 -1
@@ -413,7 +414,7 @@
                 print 'Failed to setup device interface: %s' % e
                 sys.exit(1)
             self.call_dev_dbus_func()
-        else:
+        else if not self.listen:

elif not self.listen

apitest line 420

Quoted 3 lines
apitest +0 -0
             print 'Unknown command: %s' % self.cmd
             self.usage()
             sys.exit(1)

-- =

Stefan Seyfried \ "I didn't want to write for pay. I
QA / R&D Team Mobile Devices \ wanted to be paid for what I write."
SUSE LINUX Products GmbH, N=FCrnberg \ -- Leonard Cohen

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easi= er
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D120709&bid=3D263057&dat=3D1=
21642
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users