From 1953d7a5a1e34c110bb75285864753f5494a7914 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Tue, 12 Mar 2019 16:55:25 -0700 Subject: [PATCH] Shearwater: fix (again) per-cell ppO2 reporting This re-applied commit 902dbf4d6d24 ("shearwater: Fallback to average/voted ppo2") which got lost in the last merge with upstream when I synced with Jef's rewrite of the PNF parser. Reported-by: Martin Long Signed-off-by: Linus Torvalds --- src/shearwater_predator_parser.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/shearwater_predator_parser.c b/src/shearwater_predator_parser.c index 19abbec..7f2e66f 100644 --- a/src/shearwater_predator_parser.c +++ b/src/shearwater_predator_parser.c @@ -808,19 +808,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 + pnf + 6] / 100.0; - if (callback) callback (DC_SAMPLE_PPO2, sample, userdata); -#else - sample.ppo2 = data[offset + pnf + 12] * parser->calibration[0]; - if (callback && (parser->calibrated & 0x01)) callback (DC_SAMPLE_PPO2, sample, userdata); + if (!parser->calibrated) { + sample.ppo2 = data[offset + pnf + 6] / 100.0; + if (callback) callback (DC_SAMPLE_PPO2, sample, userdata); + } else { + sample.ppo2 = data[offset + pnf + 12] * parser->calibration[0]; + if (callback && (parser->calibrated & 0x01)) callback (DC_SAMPLE_PPO2, sample, userdata); - sample.ppo2 = data[offset + pnf + 14] * parser->calibration[1]; - if (callback && (parser->calibrated & 0x02)) callback (DC_SAMPLE_PPO2, sample, userdata); + sample.ppo2 = data[offset + pnf + 14] * parser->calibration[1]; + if (callback && (parser->calibrated & 0x02)) callback (DC_SAMPLE_PPO2, sample, userdata); - sample.ppo2 = data[offset + pnf + 15] * parser->calibration[2]; - if (callback && (parser->calibrated & 0x04)) callback (DC_SAMPLE_PPO2, sample, userdata); -#endif + sample.ppo2 = data[offset + pnf + 15] * parser->calibration[2]; + if (callback && (parser->calibrated & 0x04)) callback (DC_SAMPLE_PPO2, sample, userdata); + } } // Setpoint