]> git.tdb.fi Git - ext/subsurface.git/commit
Plot tank pressures for multiple tanks
authorDirk Hohndel <dirk@hohndel.org>
Sat, 22 Oct 2011 02:04:44 +0000 (19:04 -0700)
committerDirk Hohndel <dirk@hohndel.org>
Sun, 23 Oct 2011 12:30:33 +0000 (05:30 -0700)
commit473fb14b5612f4ff48503ca5e8a07ae42aecd1de
treee064c6557fd6ac05565a0318d591b99e3eabfbad
parentbf1dc48dfe6af65de5cd3f7b474130fcbc26bcc9
Plot tank pressures for multiple tanks

The code keeps track of the segments of time when a specific tank was used
and interpolates the pressure values for that tank based on a simulated
average SAC rate for the times in which no pressure readings are
available.

This changes the way we used to plot the pressure when only beginning and
end pressure of a tank are known; it used to be a straight line, now it is
a sloped line where the steepness of the slope is proportional to the
depth at that point - which is much more realistic.

We also plot the pressures in two colors now. The old green for pressure
data that came from the input file (that is not the same thing as saying
it came from the computer - divelog for example appear to create pressure
readings in the samples even if it only has beginning and end pressure).
Interpolated values are plotted in yellow. If you have a sub-standard dive
computer which has a frequently failing pressure sensor, you can now tell
the parts of the plot where data was missing and we are filling in.

The function that prints the pressure text labels had to be completely
redone as it previously assumed one tank for the whole dive and
simplisticly printed that tank's start and end pressure at the beginning
and end of the profile plot with the y-values being the maximum and
minimum pressure...

This commit introduces a custom simplistic single linked list data
structure to keep track of the pressure information per segment - Linus
hated the idea of using GList for this purpose, and I have to admit that
in the end this was very straight forward to implement and made the code
easier to read and debug.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
profile.c