15 April 2012

A Fork in the Road for Packetlogger

As I'm going to be busy at my day job for the foreseeable future, I won't be commercializing my packetlogger code. For that reason I've decided to fork the current packetlogger code and publish almost all of it under the GPL as well.

Update 17/04/2012: This now includes the necessary program to interface with the Actisense NGT-1. It does not yet contain the CANusb interface program until I find my CANusb again and have the capability to test it again!

This is now available over at http://github.com/canboat/canboat. The open source version will use the CANBoat moniker that I came up with a few years ago.

I look forward to cooperating with the people that have asked me for an open source version the last couple of years.

Packetlogger update: Microsoft Windows issues resolved

Last November I changed the compiler used for packetlogger on Microsoft Windows from MSVC to Cygwin and gcc. This resolved a whole heap of problems with the redistributable libraries; you needed the right MSVCRT.DLL on your system or it wouldn't work. It also made the building process for me a lot easier.

Unfortunately, it also broke the actisense-reader.exe program that reads the data off the Actisense NGT-1, as that still used the ActisenseComms.DLL which in turn was still compiled using MSVC. This week I was informed by two readers of this, so this morning out came the soldering iron. Errr, I mean the compiler suite!

To be frank I wasn't very happy with the existing status quo anyway -- there were two distinct programs accessing the Actisense device; one on Windows, using the ActisenseComms.DLL, and one on the other UNIX (Linux/OS X) platforms using my own access code, bypassing the DLL. I'm personally using the Linux version for real, so the UNIX version was extended over time to be able to write to the NGT-1 as well as read from it. As you can imagine I didn't much fancy extending the Windows code with the 'write' capabilities when I wasn't going to use it.

I also didn't fancy having to extend the source code with #ifdef Windows and putting Windows specific serial port access in.

Luckily there was an easy solution to this problem. Cygwin's UNIX emulation is so perfect that I was able to port the UNIX source code within 10 minutes!

So from now on there is only one program used to talk to a NGT-1 and that is actisense-serial[.exe].

This does mean that you Windows folks will have to adjust a little. Unlike actisense-reader which showed you a list of COM ports when called with zero arguments you will need to know where your NGT-1 is connected to by some other means. You can do this by going into the Device Manager and hunting down the COM ports there, or you can start Actisense's NMEA reader and note which COM port you need from that.

Once you have the COM port, for instance COM7, deduct one (Cygwin, like Linux, numbers its serial ports from 0, not 1 like DOS and Microsoft Windows) and use that as follows:

actisense-serial -r /dev/ttyS<N>

For instance:

actisense-serial -r /dev/ttyS6

I recommend using the -d debug option so you can see whether opening the port is succeeding if you have any issues.

The new packetlogger binaries can be downloaded from the usual spot: