I just fixed another bug in my cycling logging application, the one I wrote in Java in 2012, and which I've been extending ever since. It's not so much a bug this time as a consequence of the data that's in the .FIT files produced by my Garmin Edge 800. I found that when my application loaded .FIT files, the total climbing/descending just didn't add up to what I expected, and other applications produced different results that were closer to what I expected (e.g. SportTracks for Windows, and TurtleSport or GoldenCheetah for Linux).
So I turned on the detailed debugging, which I'd written into the application some time ago, and which is easy enough to activate. I found that there were gaps in the recording of the trip. I normally use per-second recording for the Garmin Edge 800 (and had used it also on the Garmin Edge 705 years ago), instead of the so-called 'smart' recording, which tries to minimise the size of the trip files by only recording significant changes in the trip, instead of recording a track point every single second.
As for the gaps I just mentioned: well, for some odd reason, the track points (which are basically GPS position, time, and altitude readings, supplemented with elapsed-distance readings added by the Edge unit) would be written every second only for about 4-5 seconds, then a gap of at least 3 seconds would appear, then the per-second recording resumed, and so on. This caused my application to give incorrect trip summary data, because I had assumed that the track points were recorded every second, but this clearly isn't the case. Thanks for nothing, Garmin!
Anyway, with some config file parameter tweaks, and some relatively minor code changes, my application now handles these .FIT idiosyncrasies properly. Before the changes, my total distance and climbing for this year, according to the summary pane on my application's main window, was 10,057km and 125,312m, and now it's showing 10,307km and 132,694m.
Even better, one of the worst-affected trips, my Bormio - Passo dello Stelvio - Santa Maria - Prato - Passo dello Stelvio - Bormio epic, now shows the correct amount of climbing: it was showing only about 200m climbing, which of course is totally wrong for that route, and now it shows 3252m (and that I can believe, because it was a very tough day on the saddle).
One more interesting side-effect of the fix is that the trip summary file produced by my application, which contains just the main summary data for all the trips, rather than all the data from the .TCX and .FIT files I've imported into the application, is now about 9.7MB in size, where before it was about 13.5MB. I won't explain why, because it's a bit technical, but it's nice to see it shrink a bit.
Regards,
--- Victor.