summaryrefslogtreecommitdiffstats
path: root/libdivecomputer
AgeCommit message (Collapse)Author
2021-01-23Sync libdivecomputer with upstreamGravatar Dirk Hohndel
Merge with Jef's upstream libdivecomputer updates: - support new Ratio iX3M 2021 model IDs - support Mares Horizon, and fix the Mares Genius layout - add support for Shearwood Sage - various warning fixes, other minor details Mark Aqualung i750TC as BLE capable Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-11-08Update to latest libdivecomputerGravatar Dirk Hohndel
Merge git://github.com/libdivecomputer/libdivecomputer into Subsurface-DS9 Merge upstream libdivecomputer from Jef: - support the Scubapro Aladin A2 - improve Cressi Goa support - parse and report Oceanic firmware versions Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-10-31Update libdivecomputerGravatar Dirk Hohndel
Fix two Coverity issues. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-10-30Update to latest libdivecomputerGravatar Dirk Hohndel
- Garmin Descent Mk2i: add initial support for parsing cylinder pressure data Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-10-30add initial support for the Garmin Descent Mk2iGravatar Dirk Hohndel
This brings in the needed libdivecomputer updates and builds Subsurface against libmtp in order to support downloading dive data via MTP (since the Mk2/Mk2i no longer provide a FAT filesystem via USB). In order for this to work you need to have libmtp installed on your system. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-09-30Update libdivecomputer to fix Garmin GPS recordingGravatar Linus Torvalds
The Garmin Descent parser had a bug that would re-use possibly stale GPS locations between dives (and in theory other data fields too, although in practice I think only GPS data was ever leaked between dives). This updates libdivecomputer to a fixed version. Reported-by: @brysconsulting Link: https://github.com/subsurface/subsurface/issues/2980 Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-09-21Update to current libdivecomputerGravatar Dirk Hohndel
Fix memory usage bugs identified by Coverity Fix salt/freshwater parsing for Mares Genius Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-09-20Update translations from TransifexGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-09-19Update to current libdivecomputerGravatar Dirk Hohndel
Merge Shearwater PNF fix. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-09-17Update to current libdivecomputerGravatar Dirk Hohndel
This adds BLE transport as an option for the McLean Extreme. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-09-15Update to current libdivecomputerGravatar Dirk Hohndel
This merges the McLean Extreme sample interval fix. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-09-12Update to current libdivecomputerGravatar Dirk Hohndel
This gets us back in sync with upstream, minor changes to Shearwater Peregrine support, but also fixes an issue in my implementation of Shearwater info events on dive computers using the new format which inadvertantly disabled freedive support. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-09-10restore libdivecomputer to latest versionGravatar Dirk Hohndel
In commit 62d87e9d25763e81757de417640f464e2bf5a2c0 ("Planner: handle zero length segments when replanning") a change to libdivecomputer snuck in that undid the addition of Shearwater Peregrine detection. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-08-24Planner: handle zero length segments when replanningGravatar Robert C. Helling
When setting up a dive for replanning, we ignored zero length segments as those tend to be generated by gas changes. But it is possible to enter those in the planner and the replanning should not ignore those. So be more clever about gas changes. Let's add 10 seconds so we are not at two depths at the same time and help since add_stop also does not like zero length segments (it thinks we are trying to replace a waypoint). Fixes #2901 Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-08-22Update libdivecomputer to recognize Shearwater PeregrineGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-08-21Update to current libdivecomputerGravatar Linus Torvalds
The libdivecomputer internals changed for USB devices, and now we need to scan the USB devices before calling libdivecomputer. That's the same pattern as for USBHID and IRDA, so let's just regularize this all. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-06-25Add support for the Oceans S1 and McLean ExtremeGravatar Linus Torvalds
This updates libdivecomputer to support the Oceans S1 and McLean Extreme divecomputers. It also adds the Oceans S1 to the list of dive computers we reconize by bluetooth name. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-05-07Update to latest libdivecomputerGravatar Dirk Hohndel
This switches us to the DS9 branch. Yeah, that's what came after Next Generation. Anyway, this is a clean rebase on top of current upstream libdivecomputer master, which makes for a much cleaner history. Also merges updatream updates from Jef Driesen: - work around Pelagic BLE oddity (Oceanic Pro Plus X and Aqualung i770R) - OSTC3 firmware update improvements Use a more robust command to write flash memory Read and cache the firmware version information Add an extra delay after writing to the flash memory Add an extra delay after erasing a flash memory page Send the service init command one byte at a time Fix some typos in the comments Ignore excess bytes in the BLE version packet Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-14iostream: fix incorrect rfcomm error case when writingGravatar Linus Torvalds
This is the exact same case as the previous commit, just for the writing side. Once again, it's the subsurface rfcomm iostream code that can return DC_STATUS_SUCCESS with a byte count of zero when something goes wrong with the write. And once again, our libdivecomputer iostream code didn't try to be robust and protect itself from that case. The fix is equivalent, although slightly simpler, since the write side doesn't have the whole timeout issue. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-03-14iostream: fix incorrect rfcomm error case when readingGravatar Linus Torvalds
We had two independent bugs here, both of which needed to fire for this to cause a problem. This fixes both of them. The first bug was that our rfcomm code would return DC_STATUS_SUCCESS with a zero-sized read when a timeout happened, or when the rfcomm socket had disconnected. That makes absolutely no sense. We should return DC_STATUS_TIMEOUT on timeout, and DC_STATUS_IO if the socket has disconnected without any data. The fix to this is to make the whole rfcomm iostream read logic much simpler: there's no need to loop at all for partial results, because the libdivecomputer iostream side will do the loop for us (and handle partial results much better: it knows if the target backend can handle those partial results or not). The second bug was in our libdivecomputer iostream read() function, which reacted very badly to this bad return value. This updates our libdivecomputer branch to one that is more careful about things. Reported-by: linuxcrash <albin@mrty.ch> Debugged-by: Jef Driesen <jef@libdivecomputer.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-02-28Update libdivecomputerGravatar Dirk Hohndel
Pull upstream libdivecomputer updates from Jef Driesen: - fix lack of "end of deco" on DiveSystem iDive computers by reporting long NDL values - clean up handling of Oceanic empty logbugger - fix BLE download for Oceanic Pro Plus X that doesn't like the serial number handshake. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-02-16Add Cressi BLE name filtering for bluetooth discoveryGravatar Linus Torvalds
.. and update the libdivecomputer submodule to have them marked as BLE capable. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-02-13Update libdivecomputerGravatar Dirk Hohndel
- fix Oceanic VT Pro date parsing - add Sherwood Wisdom 4 and Scubapro Aladin A1 IDs from Janice McLaughlin - fix Cressi gasmix index and depth parsing (the gasmix index bit had been misparsed as very deep depth) - Implement the gas mix sample - Limit the depth value to 11 bits - Add support for the Scubapro A1 - Add support for the Sherwood Wisdom 4 - Fix the vtpro datetime parsing Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-01-27Update to new libdivecomputer versionGravatar Linus Torvalds
Jef has changed the libdivecomputer iostream layer and extended it in two different ways: - iostram's now have a 'poll()' method, which does what the name implies: waits for data to be available with a timeout. - iostreams now have a 'ioctl()' method, which can be used to implement miscellaneous operations. Right now the two ones that you can do are "set latency" (this replaces the old 'set_latency()' method) and "get BLE name" (this replaces our 'get_name()' method that was never part of the upstream libdivecomputer interfaces) Neither of these is all that complicated, and the transition is fairly obvious. HOWEVER. I have absolutely no idea how to do 'poll()' on Windows sockets, and I have no intention of figuring it out. We use a direct socket interface to implement the (non-BLE) RFCOMM bluetooth serial protocol, and I'm not sure why Windows is so special here. I suspect - but cannot test - that we should just switch the Windows RFCOMM implementation over to the use the same QtBluetooth code that we use on other platforms. I assume that the Windows Bluetooth support was originally not sufficiently good for that, but these days we depend on Qt doing BLE for us even on Windows, so presumably FRCOMM works too. That would be a nice cleanup, and would make 'poll()' work on RFCOMM under Windows too. However, since I can't test it, I've not done that, but instead just made the Windows RFCOMM 'poll()' method always return success. That may or may not get the thing limping along. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-12-31Update libdivecomputerGravatar Dirk Hohndel
- Several fixes for Mares divecomputer BLE communication - Fix the Aeris Manta memory layout - Add support for the Oceanic Pro Plus 4 - Strip the source directory from file names Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-12-21Update libdivecomputerGravatar Dirk Hohndel
Add initial support for the Oceanic Pro Plus 4 Fix the Oceanic Geo 4.0 memory layout Ignore all empty logbook entries Add a workaround for the hwOS ppO2 firmware bug Use macros to encode the firmware version Use symbolic constants for the sample types Remove the obsolete hwos parameter Limit the tank pressure workaround to hwOS devices Fix the OSTC tank pressure decoding Fix the Scubapro G2 HUD udev rule Add the Mares Genius to the bluetooth filter Add firmware upgrade support for the Ratio computers Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-24Update libdivecomputerGravatar Dirk Hohndel
- Add support for the Oceanic Geo 4.0 - clean up Shearwater tank pressure handling - minor fixlets Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-09-07Update libdivecomputer to latest versionGravatar Linus Torvalds
This just merges with Jef's branch, which should hopefully fix the Mares BLUELINK Pro connection issues. Knock wood - I can no longer test it due to lack of hardware. It also improves on the Ratio iDive cylinder pressure transmitter support. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-08-30Update libdivecomputer with Cosmiq+ fixesGravatar Linus Torvalds
Nothing huge, but this fixes the Deepblu Cosmiq+ gasmix parsing, and properly stops downloading when we've hit a dive we already have. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-08-24Update libdivecomputer to support the Aqualung i200cGravatar Linus Torvalds
I got confirmation from Tiago Thedim Dias that my libdivecomputer patch makes BLE downloading work from the i200c, and already pushed out the libdivecomputer changes earlier. This updates the subproject in subsurface to have those changes. This also adds the bluetooth name patterns for the i300c and a few other Aqualung dive computers we hadn't added yet. That should make them show up in the bleutooth device list even without having to check the "Show all bluetooth devices" check-box. Tiago claims he didn't need that, and I wonder if we have some overly permissive match somewhere, but it's the right thing to do regardless. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-08-19Update to latest libdivecomputerGravatar Linus Torvalds
Add support for Deepblu Cosmiq+ Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-07-15Update libdivecomputerGravatar Dirk Hohndel
- Add support for the Aqualung i550C - Update Ratio iX3M GPS naming and note that they support rfcomm - misc cleanups Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-07-04Update libdivecomputer to most recent versionGravatar Linus Torvalds
Add some Garmin Descent logging for common error cases, and update with Jef's upstream (fixing tank pressure information for several dive computers and adding support for the new Mares Genius). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-06-01Add BLE detection for the new Oceanic Geo 4.0Gravatar Linus Torvalds
Note that we don't really have libdivecomputer support for it yet, only newly added model numbers etc. But the name detection should make it easier for people to at least download a memory dump. In addition to the libdivecomputer model number updates, this also has a merge of Jef's upstram libdivecomputer changes. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-05-17Add support for the new Suunto D5Gravatar Linus Torvalds
This is just a trivial update to recognize the BT name, and a libdivecomputer submodule update to get the updates to libdivecomputer to recognize the new USB IDs etc. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-05-05Update libdivecomputerGravatar Dirk Hohndel
Suunto EON Steel/Core: make sure to properly sort the dive list Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-05-05Update libdivecomputerGravatar Dirk Hohndel
Garmin: be more permissive about the activity type Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-04-24Update libdivecomputerGravatar Dirk Hohndel
This adds ID entries for the Scubapro G2 HUD (but no GPS parsing support yet) and the Aladin H Matrix. Also fix ndl/deco parsing for for Aqualung i450T. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-04-16Update libdivecomputerGravatar Dirk Hohndel
Merge upstream updates from Jef: - better Mares Bluelink Pro downloading - Suunto DX CCR and gas mix fixes Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-04-08Update libdivecomputerGravatar Dirk Hohndel
- Shearwater Teric: add support for the TAG INFO_EVENT Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-03-12Update to our latest libdivecomputerGravatar Dirk Hohndel
- ignore empty pressure samples from OSTC - skip empty Oceanic logbook entries - update Ratio parsing - Shearwater: fix (again) per-cell ppO2 reporting Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-23Update libdivecomputerGravatar Dirk Hohndel
shearwater: properly initialize the string caches Shearwater parser: add new harware model nr for Teric Merge git://github.com/libdivecomputer/libdivecomputer into Subsurface-NG Update with Jef's upstream: - add support for Cressi Goa and Cartesio - update the Shearwater PNF parser to Jef's version - misc minor fixes * git://github.com/libdivecomputer/libdivecomputer: Use the timezone setting of the dive computer Add support for the Cressi Goa and Cartesio Add an extra parameter for the initial CRC value Add support for the Ratio iDive Color series Shearwater Petrel Native Format parsing Shearwater: detect which logbook format is support Shearwater: add Teric to list of supported dive computers Shearwater: skip deleted dives Fix a potential buffer overflow Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-19Update libdivecomputerGravatar Dirk Hohndel
Catch up with Jef's upstream Fix Oceanic pattern matching for BLE versions Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-14Update libdivecomputerGravatar Dirk Hohndel
- Enable BLE support for the Oceanic Pro Plus X - Add support for the Aqualung i300C - Fix the Pro Plus X gas mixes - Add a workaround for invalid ringbuffer begin pointers Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-11-15Update libdivecomputerGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-10-06Update libdivecomputerGravatar Dirk Hohndel
More fixes for the Aqualung i770R. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-10-05Update libdivecomputerGravatar Dirk Hohndel
Fixes for Garmin Descent Mk1 and Aqualung i770R. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-10-01Update to latest libdivecomputerGravatar Dirk Hohndel
Retry packet send for BLE connections for Aqualung i770R. (oops, Linus pushed right when I pushed the previous update) Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-10-01Update to latest libdivecomputerGravatar Dirk Hohndel
Add initial support (BLE only) for Aqualung i770R. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-09-28Update libdivecomputerGravatar Dirk Hohndel
Mares bluetooth support tweaks Signed-off-by: Dirk Hohndel <dirk@hohndel.org>