346 Commits

Author SHA1 Message Date
Jef Driesen
a8116a0aec Add datetime support to the parsers. 2010-02-02 15:04:46 +00:00
Jef Driesen
fab15b19a7 Add a clock synchronization event. 2010-02-01 21:20:30 +00:00
Jef Driesen
b392a49045 Update the code to use the new datetime support. 2010-02-01 21:20:11 +00:00
Jef Driesen
54410dab8d Add a datetime module. 2010-02-01 21:19:55 +00:00
Jef Driesen
098b229bc6 Rename the Suunto Spyder parser as the Eon parser.
Both devices have an almost identical data format. Renaming the parser
backend makes it more consistent with the corresponding device backend.
2010-02-01 13:34:52 +00:00
Jef Driesen
ceeee5b2fa Removed the handshake and version functions.
The handshake function is now called internally (even if it doesn't seem
to be required at all), and the version function can be called through
the public api. The format of the version data is changed too.
2010-01-30 21:27:43 +00:00
Jef Driesen
f8b465fba1 Use the common fingerprint function directly. 2010-01-25 19:46:39 +00:00
Jef Driesen
ce84e85bb6 Do not ignore the return value when writing data. 2010-01-25 19:46:24 +00:00
Jef Driesen
87236f505a Remove a number of unnecessary functions. 2010-01-25 19:46:09 +00:00
Jef Driesen
a14b0b7b98 Do not ignore errors during initialization. 2010-01-25 14:08:01 +00:00
Jef Driesen
898f27ad2e Use multipage reads for downloading dives too. 2010-01-22 13:42:16 +00:00
Jef Driesen
61257a8628 Use multipage read commands for faster transfers.
Multipage read commands can reduce the transfer time significantly,
because the overhead of processing each single page read command is
eliminated.
2010-01-22 13:42:03 +00:00
Jef Driesen
5589770f30 Add a small delay before sending the version command.
Trying to send the version command immediately after the initialization
of the data cable doesn't work very well. Adding a small delay before
sending the version commands turns out to be much more reliable.
2010-01-19 14:57:06 +00:00
Jef Driesen
45f51fedfb Store the layout descriptor in the device handle. 2010-01-15 10:16:49 +00:00
Jef Driesen
32fd37df2c Keep only a single PAGESIZE macro. 2010-01-15 09:51:15 +00:00
Jef Driesen
cf009cf18b Use the ACK/NAK error correction for all commands. 2010-01-15 09:32:16 +00:00
Jef Driesen
067a6c630a Add a devinfo event for the Mares backends. 2010-01-08 14:38:04 +00:00
Jef Driesen
f33b298b3a Handle the special case of a full ringbuffer correctly.
When using the ringbuffer pointers to traverse the linked list, a full
ringbuffer appears as an empty one. This is probably a very rare
condition, but a very annoying one if you run into it it. Using byte
counts and the number of dives in the header avoids the problem.
2010-01-07 15:02:27 +00:00
Jef Driesen
a6f9df16ac Make the empty/full ringbuffer interpretation configurable.
In a ringbuffer implementation with only two begin/end pointers, it's
impossible to distinguish between an empty and a full ringbuffer. The
correct interpretation mode needs to be specified by the user.
2010-01-07 15:02:14 +00:00
Jef Driesen
c4931623b6 Add support for the Suunto HelO2. 2010-01-07 14:54:57 +00:00
Jef Driesen
b5bc493e0b Reduce the number of hardcoded offsets. 2010-01-07 14:54:38 +00:00
Jef Driesen
bb08248bd9 Add a parser for the Oceanic VT Pro. 2009-12-28 10:30:53 +00:00
Jef Driesen
778ae70d2e Add a parser for the Oceanic Veo 250. 2009-12-28 10:30:36 +00:00
Jef Driesen
fb947c6906 Fix the serial number for Veo compatible devices. 2009-12-28 10:30:18 +00:00
Jef Driesen
97652c6c62 Make the bcd2dec() function available to all backends. 2009-12-08 14:51:32 +00:00
Jef Driesen
1d69b8c021 Fix the spyder fingerprint offset. 2009-12-08 11:24:52 +00:00
Jef Driesen
0edeed162a Skip dives without a footer marker.
Due to the internal memory buffering scheme of the Sensus Ultra, the
last page might contain a partial dive. Skipping this dive is more
apropriate than returning an error.
2009-12-08 08:43:59 +00:00
Jef Driesen
7f983e29fe Rewrite the incremental parser function. 2009-12-03 12:43:29 +00:00
Jef Driesen
421f4ed1d6 Add functions to search for markers in an array. 2009-12-03 12:43:19 +00:00
Jef Driesen
12d0a73abf Rewrite the code to use buffer objects internally. 2009-12-03 12:43:09 +00:00
Jef Driesen
e4108a3b33 Fixed an off-by-one error. 2009-12-02 13:55:50 +00:00
Jef Driesen
5fa943d685 Added the initial implementation for the Cressi Edy. 2009-11-17 11:02:26 +00:00
Jef Driesen
094b70aa03 Use the memory buffer class for downloading individual dives. 2009-11-16 08:17:30 +00:00
Jef Driesen
e883843fca Use pointers to the layout structure for simplicity. 2009-11-16 08:17:20 +00:00
Jef Driesen
54daa9b580 Remove the debugging code. 2009-11-16 08:17:09 +00:00
Jef Driesen
13768188a8 Reduce the amount of data copying. 2009-11-16 08:14:29 +00:00
Jef Driesen
21832851af Add a function to slice the buffer. 2009-11-16 08:14:19 +00:00
Jef Driesen
12754e05f4 Initialize allocated memory to zero when resizing. 2009-11-16 08:10:53 +00:00
Jef Driesen
8eb3e53b44 Add options to download only the memory dump or the dives. 2009-11-16 08:09:57 +00:00
Jef Driesen
71d8da4f04 Remove some unnecessary functions. 2009-11-12 16:30:13 +00:00
Jef Driesen
7e6a57bd1c Added the initial implementation for the Heinrichs Weikamp OSTC. 2009-11-12 08:18:16 +00:00
Jef Driesen
a87398b7c6 Implement progress events for the device_dump() function.
A helper function is added to simplify implementing the devic_dump()
function on top of the device_read() function, and enable progress
events automatically.
2009-11-12 08:04:34 +00:00
Jef Driesen
e2c6bdf880 Add a single download application for all backends. 2009-11-10 11:38:24 +00:00
Jef Driesen
a49d2c7b36 Changed the device_dump() function to use the new memory buffer class.
Using a resizable memory buffer allows to allocate the right amount of
memory inside the backend, avoiding having to know the required buffer
size in advance.
2009-11-10 11:36:10 +00:00
Jef Driesen
69727bf855 Update the msvc project file. 2009-11-10 11:35:39 +00:00
Jef Driesen
a3264bc471 Implement a more efficient buffer growing strategy. 2009-11-10 11:35:29 +00:00
Jef Driesen
74272f4d77 Avoid undefined behaviour with NULL pointers.
We accept NULL pointers if the size is zero, but the C standard
library functions memcpy and memmove requires valid pointers, even if
the size is zero.
2009-11-10 11:35:19 +00:00
Jef Driesen
d3028dc2d7 Add a new memory buffer class. 2009-11-10 11:35:09 +00:00
Jef Driesen
36f9fd614e Write all messages to stderr.
Messages written to stdout are undesirable when the output of an
application needs to be passed through a pipe.
2009-11-05 12:36:28 +00:00
Jef Driesen
b59532fffb Fixed some compiler warnings related to unused variables. 2009-11-02 13:14:42 +00:00