Remove redundant duplicate pressure samples

At least the Suunto pressure transmitter seems to be pretty
"quantisized", and it will send identical samples for a while until the
pressure changes enough.  Then subsurface gives this silly flat line
with a sudden jump downwards, which *could* be you suddenly taking a
deep breath after holding it for a while, but almost certainly it's a
sensor issue.

So just remove successive identical pressure readings.  They aren't
interesting, and subsurface will actually do a good job of interpolating
it according to SAC rate instead.  And they just make the XML look
worse.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Linus Torvalds 2011-11-17 12:03:11 -02:00
parent 1268e0d225
commit c486a9ee81

12
dive.c
View file

@ -239,16 +239,26 @@ struct dive *fixup_dive(struct dive *dive)
int i;
double depthtime = 0;
int lasttime = 0;
int lastindex = -1;
int start = -1, end = -1;
int maxdepth = 0, mintemp = 0;
int lastdepth = 0;
int lasttemp = 0;
int lasttemp = 0, lastpressure = 0;
for (i = 0; i < dive->samples; i++) {
struct sample *sample = dive->sample + i;
int time = sample->time.seconds;
int depth = sample->depth.mm;
int temp = sample->temperature.mkelvin;
int pressure = sample->cylinderpressure.mbar;
int index = sample->cylinderindex;
/* Remove duplicate redundant pressure information */
if (pressure == lastpressure && index == lastindex)
sample->cylinderpressure.mbar = 0;
lastindex = index;
lastpressure = pressure;
if (lastdepth)
end = time;