Greetings...
I've been trying to get viking to work with my bluetooth
gps on Fedora. It seems many things have to align for it
to work. This is what I think is going on:
- rfcomm pairs with bluetooth gps device and binds to /dev/rfcomm0
- gps-share notices /dev/rfcomm0 and streams NMEA data to port 10110
- avahi-daemon notices that there's a local tcp NMEA source
avahi-browse -a
- geoclue can tell that the local network has an NMEA provider via avahi.
- client (viking, where-am-i, etc) communicates with geoclue via dbus
triggering geoclue to connect to gps-share on port 10110.
Run "dbus-monitor --system" in one terminal when you
run client in another terminal to see the dbus
communication. Run gps-share in the foreground to
see when connections get made to the nmea port.
I started with gpsd, moved on to gypsy and then to gps-share and
talked to Rob Norris in email along the way, he suggested I
follow up here, and also suggested the ultimate solution to my
(first) problem .
I have changed gclue_simple_new in libgeoclue.c from city-level
accuracy to exact-level (that's one thing Rob suggested).
Now viking either crashes (back trace below), works at
exact-level (I can see geoclue connecting to gps-share when
this happens), or I get the city-level location (and no
connection to gps-share). I guess that since geoclue has more
than one provider, the city-level location is coming from
another provider?
Getting viking to turn on and have the pointer show my true
location in the middle of the viewport has been my proof
of concept task. What I'm really after is to be able to
drive down the road and always have my true location be
under the pointer in the middle of the viewport as the map
moves beneath the pointer. I'm not sure how to go about doing
that or if it can be done... any advice?
Thanks!
-Mike
$ git diff
diff --git a/src/libgeoclue.c b/src/libgeoclue.c
index 2a09c8bd..3d48b8a7 100644
--- a/src/libgeoclue.c
+++ b/src/libgeoclue.c
@@ -93,7 +93,7 @@ void libgeoclue_where_am_i ( VikWindow *vw, callback func )
clue->func = func;
gclue_simple_new (PACKAGE,
-
GCLUE_ACCURACY_LEVEL_CITY,
-
GCLUE_ACCURACY_LEVEL_EXACT,
NULL,
on_simple_ready,
clue);
Process 5785 (viking) of user 1000 dumped core.
Stack trace of thread 5785:
#0 0x00007f8cac9b87a0 g_type_check_instance_cast (libgobject-2.0.so.0)
#1 0x00007f8cab8a33f2 n/a (libgeoclue-2.so.0)
#2 0x00007f8caca68f74 n/a (libgio-2.0.so.0)
#3 0x00007f8caca698d6 n/a (libgio-2.0.so.0)
#4 0x00007f8cacaa7fac n/a (libgio-2.0.so.0)
#5 0x00007f8caca68f74 n/a (libgio-2.0.so.0)
#6 0x00007f8caca698d6 n/a (libgio-2.0.so.0)
#7 0x00007f8cacaa7853 n/a (libgio-2.0.so.0)
#8 0x00007f8caca68f74 n/a (libgio-2.0.so.0)
#9 0x00007f8caca698d6 n/a (libgio-2.0.so.0)
#10 0x00007f8caca9c441 n/a (libgio-2.0.so.0)
#11 0x00007f8caca68f74 n/a (libgio-2.0.so.0)
#12 0x00007f8caca68fad n/a (libgio-2.0.so.0)
#13 0x00007f8cad418b7b n/a (libglib-2.0.so.0)
#14 0x00007f8cad41c26d g_main_context_dispatch (libglib-2.0.so.0)
#15 0x00007f8cad41c638 n/a (libglib-2.0.so.0)
#16 0x00007f8cad41c962 g_main_loop_run (libglib-2.0.so.0)
#17 0x00007f8cad084e4f gtk_main (libgtk-x11-2.0.so.0)
#18 0x0000000000418909 main (viking)
#19 0x00007f8cab3cf413 __libc_start_main (libc.so.6)
#20 0x0000000000418bbe _start (viking)
Stack trace of thread 5793:
#0 0x00007f8cab49d421 __poll (libc.so.6)
#1 0x00007f8cad41c5a6 n/a (libglib-2.0.so.0)
#2 0x00007f8cad41c6d0 g_main_context_iteration (libglib-2.0.so.0)
#3 0x00007f8cad41c721 n/a (libglib-2.0.so.0)
#4 0x00007f8cad44548a n/a (libglib-2.0.so.0)
#5 0x00007f8cab57958e start_thread (libpthread.so.0)
#6 0x00007f8cab4a86a3 __clone (libc.so.6)
Stack trace of thread 5801:
#0 0x00007f8cab4a2efd syscall (libc.so.6)
#1 0x00007f8cad46411e g_cond_wait_until (libglib-2.0.so.0)
#2 0x00007f8cad3ee231 n/a (libglib-2.0.so.0)
#3 0x00007f8cad445fd2 n/a (libglib-2.0.so.0)
#4 0x00007f8cad44548a n/a (libglib-2.0.so.0)
#5 0x00007f8cab57958e start_thread (libpthread.so.0)
#6 0x00007f8cab4a86a3 __clone (libc.so.6)
Stack trace of thread 5803:
#0 0x00007f8cab4a2efd syscall (libc.so.6)
#1 0x00007f8cad46411e g_cond_wait_until (libglib-2.0.so.0)
#2 0x00007f8cad3ee231 n/a (libglib-2.0.so.0)
#3 0x00007f8cad445fd2 n/a (libglib-2.0.so.0)
#4 0x00007f8cad44548a n/a (libglib-2.0.so.0)
#5 0x00007f8cab57958e start_thread (libpthread.so.0)
#6 0x00007f8cab4a86a3 __clone (libc.so.6)
Stack trace of thread 5795:
#0 0x00007f8cab4a2efd syscall (libc.so.6)
#1 0x00007f8cad46411e g_cond_wait_until (libglib-2.0.so.0)
#2 0x00007f8cad3ee231 n/a (libglib-2.0.so.0)
#3 0x00007f8cad445fd2 n/a (libglib-2.0.so.0)
#4 0x00007f8cad44548a n/a (libglib-2.0.so.0)
#5 0x00007f8cab57958e start_thread (libpthread.so.0)
#6 0x00007f8cab4a86a3 __clone (libc.so.6)
Stack trace of thread 5802:
#0 0x00007f8cab4a2efd syscall (libc.so.6)
#1 0x00007f8cad46411e g_cond_wait_until (libglib-2.0.so.0)
#2 0x00007f8cad3ee231 n/a (libglib-2.0.so.0)
#3 0x00007f8cad445fd2 n/a (libglib-2.0.so.0)
#4 0x00007f8cad44548a n/a (libglib-2.0.so.0)
#5 0x00007f8cab57958e start_thread (libpthread.so.0)
#6 0x00007f8cab4a86a3 __clone (libc.so.6)
Stack trace of thread 5804:
#0 0x00007f8cab4a2efd syscall (libc.so.6)
#1 0x00007f8cad46411e g_cond_wait_until (libglib-2.0.so.0)
#2 0x00007f8cad3ee231 n/a (libglib-2.0.so.0)
#3 0x00007f8cad445fd2 n/a (libglib-2.0.so.0)
#4 0x00007f8cad44548a n/a (libglib-2.0.so.0)
#5 0x00007f8cab57958e start_thread (libpthread.so.0)
#6 0x00007f8cab4a86a3 __clone (libc.so.6)
Stack trace of thread 5794:
#0 0x00007f8cad463a8d g_private_get (libglib-2.0.so.0)
#1 0x00007f8cad4459b4 g_thread_self (libglib-2.0.so.0)
#2 0x00007f8cad419055 n/a (libglib-2.0.so.0)
#3 0x00007f8cad41aa51 g_source_attach (libglib-2.0.so.0)
#4 0x00007f8caca698aa n/a (libgio-2.0.so.0)
#5 0x00007f8caca98425 n/a (libgio-2.0.so.0)
#6 0x00007f8cacaacba4 n/a (libgio-2.0.so.0)
#7 0x00007f8caca68f74 n/a (libgio-2.0.so.0)
#8 0x00007f8caca68fad n/a (libgio-2.0.so.0)
#9 0x00007f8cad418b7b n/a (libglib-2.0.so.0)
#10 0x00007f8cad41c26d g_main_context_dispatch (libglib-2.0.so.0)
#11 0x00007f8cad41c638 n/a (libglib-2.0.so.0)
#12 0x00007f8cad41c962 g_main_loop_run (libglib-2.0.so.0)
#13 0x00007f8cacaaa79a n/a (libgio-2.0.so.0)
#14 0x00007f8cad44548a n/a (libglib-2.0.so.0)
#15 0x00007f8cab57958e start_thread (libpthread.so.0)
#16 0x00007f8cab4a86a3 __clone (libc.so.6)
Stack trace of thread 5796:
#0 0x00007f8cab4a2efd syscall (libc.so.6)
#1 0x00007f8cad46411e g_cond_wait_until (libglib-2.0.so.0)
#2 0x00007f8cad3ee231 n/a (libglib-2.0.so.0)
#3 0x00007f8cad445fd2 n/a (libglib-2.0.so.0)
#4 0x00007f8cad44548a n/a (libglib-2.0.so.0)
#5 0x00007f8cab57958e start_thread (libpthread.so.0)
#6 0x00007f8cab4a86a3 __clone (libc.so.6)