Age | Commit message (Collapse) | Author |
|
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>
|
|
Fix two Coverity issues.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
- Garmin Descent Mk2i: add initial support for parsing cylinder pressure data
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
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>
|
|
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>
|
|
Fix memory usage bugs identified by Coverity
Fix salt/freshwater parsing for Mares Genius
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Merge Shearwater PNF fix.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
This adds BLE transport as an option for the McLean Extreme.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
This merges the McLean Extreme sample interval fix.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
.. and update the libdivecomputer submodule to have them marked as BLE
capable.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|
- 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>
|
|
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>
|
|
- 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>
|
|
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>
|
|
- Add support for the Oceanic Geo 4.0
- clean up Shearwater tank pressure handling
- minor fixlets
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
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>
|
|
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>
|
|
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>
|
|
Add support for Deepblu Cosmiq+
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|
- 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>
|
|
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>
|
|
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>
|
|
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>
|
|
Suunto EON Steel/Core: make sure to properly sort the dive list
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Garmin: be more permissive about the activity type
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
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>
|
|
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>
|
|
- Shearwater Teric: add support for the TAG INFO_EVENT
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
- 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>
|
|
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>
|
|
Catch up with Jef's upstream
Fix Oceanic pattern matching for BLE versions
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
- 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>
|
|
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
More fixes for the Aqualung i770R.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Fixes for Garmin Descent Mk1 and Aqualung i770R.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
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>
|
|
Add initial support (BLE only) for Aqualung i770R.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Mares bluetooth support tweaks
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Fix dc_iostream_{read,write} debugging implementation
Mares Icon HD family: send the command as one single write buffer
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|