mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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:
parent
1268e0d225
commit
c486a9ee81
1 changed files with 11 additions and 1 deletions
12
dive.c
12
dive.c
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue