After the new firmware upgrade, up to three gas mixes are available instead of only two. This causes the parsing to fail because there is now an extra 6 byte gasmix block in the header. Unfortunately, we can't rely on the firmware version to detect whether this extra gasmix is present or not. In theory the dive computer can contain dives in both the old and the new format. Because the firmware version is a property of the device, and not stored inside each dive, using the firmware version would either cause the old or the new dives to fail parsing. This appears to be the approach DM4 is using. According to some sources on the internet, the logbook gets erased during the firmware update. However, according to the memory dumps I received, that appears to be incorrect. The old dives are still present, and it seems it's only DM4 that fails to download them. So we need an alternative solution. After a detailed analysis of all the Suunto dives at my disposal, I noticed something interesting. The first 5 bytes of each dive are almost static. There are only 5 different variations: 0061906216 0061A06216 0062909118 0062C07118 0063C07118 The interpretation of these bytes is currently unknown, but the second byte might be some kind of data format version. Each model always has the same value here, and for the D6i it changes after the firmware update: 0x61: D4, D6, D9, Cobra 2, Cobra3, Vyper 2, Vyper Air 0x62: D4i, D6i (old firmware), D9tx, HelO2 0x63: D6i (new firmware) This can't be coincidence, so we use this byte to detect the presence of the extra gasmix.
Overview ======== Libdivecomputer is a cross-platform and open source library for communication with dive computers from various manufacturers. The official web site is: http://www.divesoftware.org/libdc/ The sourceforge project page is: http://sourceforge.net/projects/libdivecomputer/ Installation ============ On UNIX-like systems (including Linux, Mac OS X, MinGW), use the autotools based build system. Run the following commands from the top directory (containing this file) to configure, build and install the library and utilities: $ ./configure $ make $ make install If you downloaded the libdivecomputer source code directly from the git source code repository, then you need to create the configure script as the first step: $ autoreconf --install To uninstall libdivecomputer again, run: $ make uninstall Support ======= Please send bug reports, feedback or questions to the mailing list: https://lists.sourceforge.net/lists/listinfo/libdivecomputer-devel or contact me directly: jefdriesen@hotmail.com License ======= Libdivecomputer is free software, released under the terms of the GNU Lesser General Public License (LGPL). You can find a copy of the license in the file COPYING.
Description
Languages
C
98.3%
M4
1.2%
Makefile
0.5%