On 2018-05-23 16:47, Anton Lundin wrote:
On 23 May, 2018 - Anton Lundin wrote:
The simple solution is to just emit the average/voted ppO2 when we
can't
find the calibration values.
Its a graceful degradation of functionality, and way better than not
showing any ppO2 at all.
It should be simple to write.
Something simple like:
diff --git i/src/shearwater_predator_parser.c
w/src/shearwater_predator_parser.c
index dda042c..e5194e8 100644
--- i/src/shearwater_predator_parser.c
+++ w/src/shearwater_predator_parser.c
@@ -669,19 +669,19 @@ shearwater_predator_parser_samples_foreach
(dc_parser_t *abstract, dc_sample_cal
if ((status & OC) == 0) {
// PPO2
if ((status & PPO2_EXTERNAL) == 0) {
-#ifdef SENSOR_AVERAGE
- sample.ppo2 = data[offset + 6] / 100.0;
- if (callback) callback
(DC_SAMPLE_PPO2, sample, userdata);
-#else
- sample.ppo2 = data[offset + 12] *
parser->calibration[0];
- if (callback && (parser->calibrated &
0x01)) callback (DC_SAMPLE_PPO2, sample, userdata);
-
- sample.ppo2 = data[offset + 14] *
parser->calibration[1];
- if (callback && (parser->calibrated &
0x02)) callback (DC_SAMPLE_PPO2, sample, userdata);
-
- sample.ppo2 = data[offset + 15] *
parser->calibration[2];
- if (callback && (parser->calibrated &
0x04)) callback (DC_SAMPLE_PPO2, sample, userdata);
-#endif
+ if (!parser->calibrated & 0x07) {
+ sample.ppo2 = data[offset + 6]
/ 100.0;
+ if (callback) callback
(DC_SAMPLE_PPO2, sample, userdata);
+ } else {
+ sample.ppo2 = data[offset +
12] * parser->calibration[0];
+ if (callback &&
(parser->calibrated & 0x01)) callback (DC_SAMPLE_PPO2, sample,
userdata);
+
+ sample.ppo2 = data[offset +
14] * parser->calibration[1];
+ if (callback &&
(parser->calibrated & 0x02)) callback (DC_SAMPLE_PPO2, sample,
userdata);
+
+ sample.ppo2 = data[offset +
15] * parser->calibration[2];
+ if (callback &&
(parser->calibrated & 0x04)) callback (DC_SAMPLE_PPO2, sample,
userdata);
+ }
}
// Setpoint
Should be enough.
The main disadvantage is that you'll no longer know which type of ppO2
(sensor or voted/average) you are getting. Especially if you only have
one sensor.
Jef
_______________________________________________
subsurface mailing list
subsurface@subsurface-divelog.org
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface