Commit graph

12653 commits

Author SHA1 Message Date
Linus Torvalds
41bbae31f5 xml: save the right sensor pressure when we have multiple sensor readings
The XML saving code got the multi-sensor case completely wrong, because
it still had one place where it would always save the first pressure,
rather than the pressure from the right sensor.

This was hidden by the fact that old data would be saved using the
legacy model that only ever used the first sensor slot.  Only if you
actually had multiple sensor slots used would the bug trigger.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-09-15 16:28:07 +02:00
Miika Turkia
a8ce78bf77 Refine cylinder usage tests
Consider cylinder used also if the first and last sample pressure differ
enough

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-09-14 07:33:55 +02:00
Dirk Hohndel
96ed09bf14 Update the tankbar code to work with the new gas handling
When Linus modified the gas handling code six weeks ago he pointed out
that that had broken the tankbar; with this patch we now simply walk the
gas changes of the displayed dive directly and create the tankbar
rectangles from that information.

See #562

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-09-14 05:36:52 +02:00
Linus Torvalds
6769e21441 Make the info window show all the pressures we have
We used to only show the first pressure we had, from back when we only
supported a single sensor.

Reported-by: Stefan Fuchs <sfuchs@gmx.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-09-13 14:05:26 -07:00
Miika Turkia
baa60e1077 Support for 2 cylinders on Shearwater XML import
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2017-09-13 14:04:31 -07:00
Miika Turkia
5afa5ed9f1 Detect dive mode on Shearwater DB import
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2017-09-13 14:04:31 -07:00
Tomaz Canabrava
19db825240 Facebook support: fix export dialog layout
Dialog layout was broken, now we can actually resize.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2017-09-13 09:36:22 -07:00
Tomaz Canabrava
e43a116457 Facebook support: use the new Graph Api
This is basically a one liner.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2017-09-13 09:36:09 -07:00
Seppo Takalo
850917d41d Don't assume CCR mode when importing from Shearwater
Logic was assuming CCR mode if field "averagePPO2" was present.

Signed-off-by: Seppo Takalo <seppo.takalo@iki.fi>
2017-09-13 07:57:45 -07:00
Seppo Takalo
ba854a8cc5 Fix cylinder changes when importing from Shearwater database
Re-do the logic to use add_gas_switch_event() instead of creating event
manually.

Fix the SQL query to find the proper dive id from dive log number.

Signed-off-by: Seppo Takalo <seppo.takalo@iki.fi>
2017-09-13 07:57:45 -07:00
Seppo Takalo
83c9ad35a6 Fix Shearwater cylinder detection logic
Fix the SQL query to find proper dive id instead of assuming log number to
be the same as id.

Signed-off-by: Seppo Takalo <seppo.takalo@iki.fi>
2017-09-13 07:57:45 -07:00
Seppo Takalo
6509f2ed9f Ignore missing pressure values when importing from Shearwater
Shearwater seems to report missing AI sensors as a pressure reading
4092 (raw) which is 564 bar.

Signed-off-by: Seppo Takalo <seppo.takalo@iki.fi>
2017-09-13 07:57:45 -07:00
Miika Turkia
e25cecf37c Inform user if there was no dive profile in DL7/ZXU file
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2017-09-11 07:21:43 -07:00
Miika Turkia
f3ab2ee674 Fix crash on manually added ZXU/DL7 file
The CSV import crashed if the input file had no samples in it.

Fixes #566

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2017-09-11 07:21:43 -07:00
Miika Turkia
40cc0b0e4b Import dive number from DL7 log
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2017-09-11 07:21:43 -07:00
Miika Turkia
5b5cab2905 Do not merge dives with zero duration
As these are probably manually entered dives with incomplete data, it is
better not to merge them.

See #561

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2017-09-11 07:19:57 -07:00
Miika Turkia
25fc72e22f Do not save non-existent time
Note that git storage still encodes the time into file name.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2017-09-11 07:19:57 -07:00
Miika Turkia
d7c89a79f8 Do not save duration if it is zero
See #561
2017-09-11 07:19:57 -07:00
Miika Turkia
15ef53fb80 Do not save heartbeat to XML if it has not changed
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2017-09-11 07:19:57 -07:00
Miika Turkia
643085f992 Do not save bearing to XML if it has not changed
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2017-09-11 07:19:57 -07:00
Dirk Hohndel
9576a9ba8a Add Cochran dive computers to FTDI list
Based on information from John Van Ostrand <john@vanostrand.com>.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-09-06 08:35:39 -07:00
John Van Ostrand
866a25f90e Implemented serial_set_break for FTDI
Setting break is required to wake up Cochran DCs (it doesn't make
sense to me, but it's needed).

Signed-off-by: John Van Ostrand <john@vanostrand.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-09-06 08:30:48 -07:00
John Van Ostrand
166eb17ac2 Changed serial_ftdi flush to a reset if DC_DIRECTION_ALL
The USB reset flushes both buffers, but it also solves a problem
waking up a Cochran DCs.

Signed-off-by: John Van Ostrand <john@vanostrand.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-09-06 08:30:40 -07:00
John Van Ostrand
928621357c Changed backoff strategy for short reads.
Back off was exponential starting at 10ms, which for high baud
rate and no flow-control connections might cause buffer overrun.
This was causing problems when reading Cochran DCs, the hearbeat
byte was being missed.

Signed-off-by: John Van Ostrand <john@vanostrand.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-09-06 08:30:21 -07:00
Lubomir I. Ivanov
024b61ca04 update INSTALL and Readme.ubuntu to exclude Marble
Remove Marble mentions from said files.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-09-04 07:46:35 -07:00
Lubomir I. Ivanov
2334a542cf remove the marbledata assets folder
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-09-04 07:46:35 -07:00
Lubomir I. Ivanov
da3288590e remove Marble cmake modules
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-09-04 07:46:35 -07:00
Lubomir I. Ivanov
2b40e15713 remove Marble from packaging and build scripts
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>

---
please note, that i have no way to test most of the scripts ATM.
2017-09-04 07:46:35 -07:00
Lubomir I. Ivanov
4bb180b117 remove Marble from the source tree
In desktop-widgets, remove globe.cpp, globe.h and also remove
the NO_MARBLE macro usage.

At this point the MapWidget will always be created and there will
always be a map in the application.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-09-04 07:46:35 -07:00
Lubomir I. Ivanov
a7d8e0d187 googlemaps: clear the cache folder on language change
Open the cache folder via QDir and call removeRecursively().
At that point the user needs to restart Subsurface to be able to
use the map in another language properly.

This change is triggered by the fact that the user might want to see
the street map in his preferred language after he/she picks another
language from Settings. But one problem here is that the cached files
do not carry a language flag - e.g. they are in the lines of:
    googlemaps_100-1-9-445-245.png

Which means that the only way to not mix tiles in different languages
is to clear the cache and start downloading the new tiles in the newly
picked language after Subsurface has restarted.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-09-04 07:41:21 -07:00
Jan Mulder
9a2d503d3b Unify credential states
Having two different enums around with more or less the same
definition has lead to unclear code. After removing two not needed
states on the mobile end, the remaining step to one enum for the
credential state becomes almost is simple rename operation.

Unfortunately, I do not know a way to embed a plain C enum
from pref.h into the QMLManager object. So after this, there
are still 2 enums around, but now identical.

This commit is not changing any functionality.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-09-04 07:38:30 -07:00
Jan Mulder
7e2803d6dd mobile: remove superfluous state INCOMPLETE
And here, the removal of a second superfluous state from QMLManager.
This is true no-brainer. While this state was set once troughout the
entire mobile code, it was never tested for this state. Testing shows
that it is safe to change to the UNKNOWN state.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-09-04 07:38:30 -07:00
Jan Mulder
190d80e509 mobile: remove superfluous state VALID_EMAIL
This is a no-brainer removal of the VALID_EMAIL state used in QMLManager.
All current usage of this state is "if state is VALID or VALID_EMAIL",
so there is no distinction between the two states.

It is even a little different. The comment suggests "when we can open
a local cloud storage, tied to a cloud account (so explicitly not
the no-cloud status), we have at least a valid email". While this
is formally true, this implies that there is also a cloud account
on the cloud server (ie. the cloud account is in a VERIFIED state).
In other words: currently, there can't exist a valid local storage
that is tied to a valid email adress, without valid cloud account
on the server.

Notice that this touches the discussion on GitHub for commit
e76f527fe5 (pull request #520). Can we implement the creation
of a valid cloud account without data link to the cloud server?
Currently, we need the server to confirm the email address (for
example for uniqueness reasons on server side). Obviously, we could
hack our way out of this, but we have a perfect solution already
in place. Create a no-cloud account, and transfer that later to
a true and valid cloud account.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-09-04 07:38:30 -07:00
Jan Mulder
b9404b0905 mobile: go to the correct credential state
When we want to go the NOCLOUD credential state, do not go the
incorrect INCOMPLETE state.

This is the first in a series of unraveling the preference parameter
prefs.cloud_verification_status and the data that is carried around
in the QMLManager::credentialStatus_t.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-09-04 07:38:30 -07:00
Jan Mulder
50891c838e QML UI: set the title of the right object
Intended was here to set the title of the Dive list with id: page,
instead of the startpage object.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-09-04 07:38:30 -07:00
Marc Arndt
48ff047086 adding comments as advised 2017-08-29 06:50:18 -07:00
Marc Arndt
90b9b61ba3 fixing indentation 2017-08-29 06:50:18 -07:00
Marc Arndt
ac7e60b456 Ignore Divesoft Button Press Events
Prevent button press events from showing on the profile
graph when we import divesoft DLF files.

Reported-by: Marc Arndt
Signed-off-by: Marc Arndt <marc@marcarndt.com>
2017-08-29 06:50:18 -07:00
Robert C. Helling
aed5b7d267 Show variations in Runtime string
Signed-off-by: Robert C. Helling <helling@atdotde.de>
2017-08-29 06:49:44 -07:00
Robert C. Helling
2832141d2c Compute variations of plans
Print out partial derivatives of stop times with respect to
variation of depth and duratin of last manual segment.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
2017-08-29 06:49:44 -07:00
Robert C. Helling
e6545a7b0f Store a table of deco stops in planner
... in addition to struct diveplan which combines all kinds
of information

Signed-off-by: Robert C. Helling <helling@atdotde.de>
2017-08-29 06:49:44 -07:00
Robert C. Helling
456e2cec89 Cache all Buehlmann factors
not just the last one.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
2017-08-29 06:49:44 -07:00
Robert C. Helling
515b7b5fea Allow for o2 breaks in binary search stop time finder
Signed-off-by: Robert C. Helling <helling@atdotde.de>
2017-08-29 06:49:44 -07:00
Robert C. Helling
33fa336be6 Find deco stop time by binary search instead of iteration
This allows to go to much smaller granularity without severe
performance penalty. It should also increase performance for
long decompression times.

Currently this leads to missing cached tissue factors, the caching
has to be adopted to this.

Also, for the time being this breaks the bottom gas breaks feature.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
2017-08-29 06:49:44 -07:00
Robert C. Helling
82aac4efff Make plan take dive and decotimestep as arguments
...rather than use a global variable and a macro.

This should be a no-op in preparation to allow planning
several versions of a dive.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
2017-08-29 06:49:44 -07:00
Robert C. Helling
58d7948871 Change color to red if minimum gas is violated.
Signed-off-by: Robert C. Helling <helling@atdotde.de>
2017-08-29 06:49:44 -07:00
Dirk Hohndel
c465ec586c On Fedora, qmake is qmake-qt5
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-08-26 15:12:43 -07:00
Dirk Hohndel
2d405a1ebb Another signed/unsigned warning
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-08-26 14:53:59 -07:00
Dirk Hohndel
548c062aa5 Another unused variable
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-08-26 14:48:05 -07:00
Dirk Hohndel
0c410aaf5d Adjust signature to match data we need
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-08-26 12:27:12 -07:00