The main difference with the serial communication is that the BLE communication uses data packets (with a maximum size of 20 bytes) instead of a continuous data stream. Occasionally, the device responds with an empty packet (with just the ACK and EOF byte) or with a short packet where one or more payload bytes are missing. The empty packet is most likely caused because the device didn't receive the second part of the command (with the parameters) in time. The missing bytes might be caused by a buffer overflow on the Bluelink Pro, when the data from the dive computer arrives faster over the serial link than the device can forward it over the slower bluetooth link to the host system. One way to address this problem is to lower the packet size from 256 bytes to only 128 bytes. The main disadvantage is that this also impacts the download speed considerably. In one particular example, the total download time increased from about 135 to 210 seconds (which is already slow compared to the 62 seconds the same download takes over usb)! An alternative solution is to simply retry the failed command. That way there is only a performance penalty for the few bad packets, and not for every single packet. In the above example, only two packets needed a retransmission. Note that the iconhd communication protocol uses no checksums. Hence it's not possible to detect corrupt data packets. Only short packets can be detected, because they result in a timeout.
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%