377 Commits

Author SHA1 Message Date
Jef Driesen
0faf2bf815 Use the correct printf format for 64 bit integers. 2010-04-02 13:04:53 +00:00
Jef Driesen
33051dd294 Use different layouts for the Mares Puck and Nemo Wide. 2010-03-25 09:51:00 +00:00
Jef Driesen
54695f1022 Fix the freedive mode detection for the Mares Nemo Wide. 2010-03-24 08:08:42 +00:00
Jef Driesen
39b78aa2eb Allow the first page to be empty.
When the Sensus Ultra reaches the end of a memory page while recording
data, the next page is erased to all 0xFF, and the current page cursor
is advanced. With this memory usage scheme, the last page will be empty
if the previous one was just filled.
2010-03-23 14:44:02 +00:00
Jef Driesen
fe511a774c Recalculate the timeout using the correct variable. 2010-03-23 13:41:13 +00:00
Jef Driesen
b9f7d4e425 Improve the ACK/NAK error recovery to fix more errors. 2010-03-18 09:40:29 +00:00
Jef Driesen
3d1a29e912 Fix the decoding of negative temperatures. 2010-03-15 15:43:11 +00:00
Jef Driesen
419d5a55d5 Autodetect the correct layout at runtime. 2010-03-15 11:08:40 +00:00
Jef Driesen
322577ab8c Fix the divisor for the compass headings. 2010-03-15 11:07:54 +00:00
Jef Driesen
f14b40e99e Fix the freedive mode detection. 2010-03-10 12:12:46 +00:00
Jef Driesen
de1bdd456c Add a version resource on Windows. 2010-03-09 15:18:45 +00:00
Jef Driesen
f265c04161 Prepare for a more flexible versioning system. 2010-03-09 15:18:25 +00:00
Jef Driesen
33dbf8034f Modernize the autotools build system. 2010-03-09 15:18:05 +00:00
Jef Driesen
f8ff2852bf Fix the init sequence for Geo 2 devices.
The Geo 2 appears to respond with a single NAK byte instead of three.
The issue is fixed by expecting only a single byte, and flushing the
serial line to discard all other bytes (if there are any).
2010-03-06 11:48:22 +00:00
Jef Driesen
1e7a1b8194 Use the correct freedive mode for each model. 2010-02-26 14:41:25 +00:00
Jef Driesen
9b1a89582c Add support for the Mares Nemo Air data format.
The Nemo Air contains an extra header which can be detected due to the
presence of a three byte marker sequence. The sample size is larger too.
2010-02-26 14:41:10 +00:00
Jef Driesen
6b09bdb7ef Autodetect the Mares Nemo Air. 2010-02-26 14:40:58 +00:00
Jef Driesen
cb0a9c6c81 Store the layout descriptor in the device handle. 2010-02-26 14:40:36 +00:00
Jef Driesen
293b45b77c Use the common fingerprint function directly. 2010-02-26 14:40:16 +00:00
Jef Driesen
6f622030eb Add some more HelO2 events. 2010-02-26 14:38:54 +00:00
Jef Driesen
10edb943ff Fix the HelO2 fingerprint, datetime and sample interval offsets. 2010-02-23 13:43:57 +00:00
Jef Driesen
b295f71536 Add a dummy backend for systems without IrDA support. 2010-02-18 09:26:32 +00:00
Jef Driesen
1983e2c008 Parse the dive data and output an xml file. 2010-02-16 14:57:52 +00:00
Jef Driesen
ba1bd5d688 Use the userdata parameter to pass the device data back to the caller. 2010-02-16 14:57:37 +00:00
Jef Driesen
ff55a4a82d Use the userdata parameter to pass the dive data to the callback. 2010-02-16 14:57:26 +00:00
Jef Driesen
f6d35fa2c2 Add cancellation support.
To be able to cancel an operation, an application should register a
callback function that returns a non-zero value whenever the active
operaton should be cancelled. A backend can invoke this callback function
to query the application for a pending cancellation request.
2010-02-15 13:16:26 +00:00
Jef Driesen
de889f9d46 Return the right type of error code. 2010-02-11 08:26:35 +00:00
Jef Driesen
82a315ddc5 Add an option to provide fingerprint data. 2010-02-04 10:47:13 +00:00
Jef Driesen
4b590ba5e2 Pass the fingerprint data to the callback function. 2010-02-04 10:46:42 +00:00
Jef Driesen
80352feee8 Add a workaround for the year 2010 problem. 2010-02-03 08:42:53 +00:00
Jef Driesen
f5759d11c9 Use the year stored in the dive header. 2010-02-03 08:42:28 +00:00
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