All fixed, now.
Turns out that WATCH_NEWSTYLE isn't the default, and isn't described on the relevant page, but you need it if you want it the whole thing to work on the current gpsd releases.
Anyways. SVN update, see if it's working for you now. Should be good!
Thanks! I'll try this when I get more free time, I've been busy lately doing other things.
Hi, I'm back!
I seem to have narrowed down my current problem of not being able to run the logger on bootup. I've set up the udev and expected it to work.
gpsd works properly on bootup, and having my obdgpslogger udev based on that, I hoped that would be the end of it. Turns out I was wrong, the logger doesn't start at all.
I've narrowed down the problem to running the logger as a daemon (-m). Right after running /usr/local/bin/obdgpslogger -m (or with -s /dev/obd) , I am thrown back at bash, as expected, but running ps aux | grep obd doesn't show anything other than the grep obd.
Log file doesn't exist either. in /etc/obdgpslogger I have set the baudrate, obddevice, optimisations, logfile, etc. (I'll have to check the exact parameters in the morning) I copied the names from src/conf/obdconfigfile.c and also run testobdconfig, It showed the correct parameters.
forgot to mention, the thing works perfectly if I run it without -m and I set all the parameters at run time, I'll have to test out running it without parameters though.
One specific problem I had with udev was guaranteeing that things were being run in the right order. Off the top of my head, I'll guess that when your gps udev entry causes obdgpslogger to start, the OBDII dongle isn't available yet. udev deliberately doesn't make guarantees like this, and that's a Good Thing (TM) - but it's something we have to work around.
What I do is launch obdgpslogger from udev via the OBDII dongle, not the gps one. In my car, to guarantee that all the stuff necessary happens in the right order, I actually have a shell script that's used when you hotplug the OBDII device, that forks and then waits a few seconds before launching. It's in doc/udev_delay.sh. This way, I have reasonable trust that the other USB devices have been found before things actually start executing.
Note that that script does a couple things you may not need. It has a MEDIA_MOUNTPOINT variable; the script tries to mount that, and exits if it fails. Then it prepends the PATH to run obdgpslogger from that mount first, and points to a config file on there too. I have a sheevaplug in my car that I can't interact with; to update obdgpslogger or to reconfigure it, I just grab my external drive, plug it in to a different computer inside, and rebuild obdgpslogger there.
For config stuff, there's a dot-obdgpslogger(5) manpage [online here] that might be useful [to save you having to read the source :-)].
I'll try that out, but I do remember running it manually
and still not getting anything
Try specifying the OBDII device at the command-line - sounds like you might just not be connecting to the right thing?
Olivia carputer # /usr/local/bin/obdgpslogger -s /dev/obd -b 38400 -d /tmp/obdgpslogger.db
Opening serial port /dev/obd, this can take a while
Successfully connected to serial port. Will log obd data
Successfully connected to gpsd. Will log gps data
Creating a new trip
GPS acquisition complete
Olivia carputer # /usr/local/bin/obdgpslogger -m -s /dev/obd -b 38400 -d /tmp/obdgpslogger.db
first one works, 2nd one doesn't even blink an LED on the obdlink device
... huh, that's really weird. udev_delay will avoid that because it avoids -m, but that's hardly a proper fix.
I'll have to think about it, I really don't get why that's happening
It seems OBD_POSIX isn't set. I'll update you if I find a solution for my setup