490 Commits

Author SHA1 Message Date
Jef Driesen
dcfbcfbb9b Allow building on systems that don't have pkg-config. 2011-03-12 10:37:56 +01:00
Jef Driesen
8fa63eb4a2 Add an option to adjust the depth calibration constants.
When the atmospheric pressure is set to zero (the default value), the
atmosperic pressure stored in the header is used.
2011-03-12 10:37:55 +01:00
Jef Driesen
c15b964b26 Add an option to switch between real and simulated dives. 2011-03-12 10:37:55 +01:00
Jef Driesen
5614aff3ee Add a libusb based implementation. 2011-03-12 10:37:50 +01:00
Jef Driesen
4b887341f3 Add support for the Atomics Cobalt. 2011-03-12 10:31:32 +01:00
Jef Driesen
7fbff73c6b Ignore samples with all 0xFF bytes. 2011-03-08 23:13:22 +01:00
Jef Driesen
c1d05cd8ba Fix the pressure decoding for the Aeris Epic. 2011-03-08 23:01:01 +01:00
Jef Driesen
63f3f6de06 Add support for the Sherwood Insight. 2011-02-24 20:59:52 +01:00
Jef Driesen
95835659dd Improve the progress events by reading the data in smaller blocks. 2011-02-03 21:23:56 +01:00
Jef Driesen
de1f7511ac Do not return an error when no dives are present. 2011-01-19 08:30:00 +01:00
Jef Driesen
104c4d956a Validate the ringbuffer pointers before using them. 2011-01-19 08:30:00 +01:00
Jef Driesen
fbe203993c Ignore timeouts during initialization.
Some Veo devices never respond to the initialization command, but have
no problem to continue the communication. Therefore a timeout with no
data received is ignored. If there happens to be a real problem, it will
be catched when sending one of the other commands afterwards.
2011-01-18 12:01:50 +01:00
Jef Driesen
8425a22dbc Ignore samples below the depth threshold for calculating statistics. 2011-01-13 23:41:55 +01:00
Jef Driesen
0d0c654b27 Use the new field api in the example application. 2011-01-13 23:41:55 +01:00
Jef Driesen
4ea3964c3c Implement the new field api for the Seiko devices. 2011-01-13 23:41:47 +01:00
Jef Driesen
4bce24e5fa Implement the new field api for the Mares devices. 2011-01-13 22:14:53 +01:00
Jef Driesen
04481198e7 Implement the new field api for the Heinrichs Weikamp devices. 2011-01-13 22:14:53 +01:00
Jef Driesen
061e647ecf Implement the new field api for the Oceanic devices. 2011-01-13 22:14:53 +01:00
Jef Driesen
643c04eca3 Implement the new field api for the Uwatec devices. 2011-01-13 22:14:53 +01:00
Jef Driesen
014f7aa420 Implement the new field api for the Suunto devices. 2011-01-13 22:14:53 +01:00
Jef Driesen
7c00b1d74e Implement the new field api for the Reefnet devices. 2011-01-13 22:14:53 +01:00
Jef Driesen
90e60fecee Add a new function to the public api to retrieve the dive metadata. 2011-01-13 22:14:53 +01:00
Jef Driesen
e320791e86 Fix a buffer overflow. 2011-01-13 22:13:33 +01:00
Jef Driesen
1ea4879066 Choose the samplerate based on the model number. 2011-01-13 22:12:45 +01:00
Jef Driesen
a2b9d887a8 Add a devinfo event for the Cressi Edy. 2011-01-13 22:12:44 +01:00
Jef Driesen
154f767a9c Convert assertions into error codes. 2011-01-08 23:40:15 +01:00
Jef Driesen
ec774d3426 Shorten the type detection code with bit manipulations. 2011-01-08 23:40:15 +01:00
Jef Driesen
910521fe80 Add support for the Oceanic Atom 1.0. 2011-01-06 21:04:55 +01:00
Jef Driesen
4fd295b4ac Always prefix the port name with "\\.\" before opening the port.
The "\\.\" prefix allows to access the Win32 device namespace directly,
without going through the file system. This is required to support
non-standard port names, and COMx ports with a number greater than 9.
2011-01-01 23:32:19 +01:00
Jef Driesen
93cc4c8d0b Add a warning for uninitialized logbook entries. 2010-12-29 22:23:52 +01:00
Jef Driesen
23836fe625 Silenty ignore ringbuffer overflow errors. 2010-12-29 22:23:52 +01:00
Jef Driesen
08a57ce724 Validate the logbook pointers immediately after downloading.
The Aeris Elite T3 appears to update the global logbook pointer
incorrectly when overwriting old dives. As a result there can be logbook
entries pointing to profile data that has already been overwritten with
newer dives, and those cause problems when calculating the total amount
of bytes in the profile ringbuffer.

As a workaround we validate the logbook pointers immediately after
downloading. At this early stage we can check manually for ringbuffer
overflows without having to rely on the values stored in the data.
2010-12-29 22:23:52 +01:00
Jef Driesen
9588f7db01 Send the version command at startup. 2010-12-26 23:39:51 +01:00
Jef Driesen
96a93c26db Improve the detection of the last dive. 2010-12-25 20:36:48 +01:00
Jef Driesen
bb8255a116 Search for the end of te profile ringbuffer.
Because some devices appear to store the end-of-profile pointer at
different locations, we search all know positions for a valid value.
2010-12-25 20:36:48 +01:00
Jef Driesen
3afc32b499 Change the sample timestamps to the end of the interval. 2010-12-25 20:36:38 +01:00
Stefan Riemer
76a0864702 Fix the parsing of the temperature for the Aeris Epic. 2010-12-22 09:03:54 +01:00
Jef Driesen
f3b8d9da21 Return the error code instead of success. 2010-12-17 21:42:09 +01:00
Jef Driesen
55a0a3fe0f Fix the header size for the Oceanic Veo 3. 2010-11-26 22:32:17 +01:00
Jef Driesen
c4172ecdf6 Use symbolic constants for the model numbers. 2010-11-23 21:25:16 +01:00
Jef Driesen
642996bfe6 Poll the serial line to avoid the use of an infinite timeout.
Because the user needs to initiate the transfer on the device itself, we
have to wait for an unknown amount of time. The infinite timeout works,
but causes problems if the data never arrives. By polling the serial
line, an application can at least cancel the operation.
2010-11-14 22:43:30 +01:00
Jef Driesen
685660e42a Add fingerprint support for the Mares Icon HD. 2010-11-14 10:17:40 +01:00
Jef Driesen
3023a208e8 Add a parser for the Oceanic OC1. 2010-11-11 20:41:54 +01:00
Jef Driesen
c462e75c8c Improve the foreach function for the Mares Icon HD.
With the knowledge of the end of profile pointer and the number of
samples, the ringbuffer can be traversed backwards and the start of the
ringbuffer doesn't have to be fixed anymore.
2010-11-09 22:49:08 +01:00
Jef Driesen
c1602ef506 Simplify the timeout calculation. 2010-11-07 23:22:11 +01:00
Jef Driesen
d7f5813f57 Delay the resending of a command after an error.
Especially the version commands seems to be sensitive to errors. Once
the initialization phase is over, a delay is usually not necessary, but
it should cause a noticable slowdown either because errors are supposed
to be rare.
2010-11-04 21:52:32 +01:00
Jef Driesen
f8e8bd3b54 Discard the additional bytes inside the init function. 2010-11-04 21:52:14 +01:00
Jef Driesen
57ae6b2c13 Eliminate some duplicated code. 2010-11-04 20:49:14 +01:00
Jef Driesen
608df2c4c1 Fixed a typo in the autodetection of the Oceanic OC1. 2010-11-01 20:21:11 +01:00
Jef Driesen
e0860923e0 Check the ringbuffer pointers for invalid values.
If a logbook entry contains an invalid ringbuffer pointer, the error is
not returned immediately, but delayed until the end of the download.
With this approach we can download at least the dives before the
problematic logbook entry.
2010-10-30 23:10:28 +02:00