At the moment, trying to download an old dive for which the profile data has already been overwritten with newer data fails. This used to work fine, but around hwOS firmware v3.10, the behaviour described in commit 76187c550a806fe422920eb8795fa687244513f1 changed. When downloading the compact/full headers, the firmware always sends the headers without inspecting their content. Next, libdivecomputer uses the length field in these headers to determine how many bytes to expect when downloading the dive. However, when downloading the entire dive, the hwOS firmware now checks whether the profile data of the dive is still available. If that's no longer the case, the firmware sends a modified dive header (with the begin/end pointer fields reset to zero, and the length field reduced to 8 bytes), along with an empty dive profile. Since libdivecomputer expects to receive the full profile as indicated in the original header, the download fails with a timeout. To workaround this problem, download the dive data in two steps. First, download the 256 byte header and check whether it has been modified. If that's the case, reduce the length to that of the 5 byte empty profile. The header check is also updated to exclude the modified fields. For the progress events, just pretend the full profile has been downloaded.
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.libdivecomputer.org/ 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: http://libdivecomputer.org/cgi-bin/mailman/listinfo/devel or contact me directly: jef@libdivecomputer.org 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%