diff --git a/src/uwatec_smart_parser.c b/src/uwatec_smart_parser.c index 98efcc8..71c9732 100644 --- a/src/uwatec_smart_parser.c +++ b/src/uwatec_smart_parser.c @@ -316,7 +316,7 @@ uwatec_smart_parser_samples_foreach (parser_t *abstract, sample_callback_t callb offset += table[id].extrabytes + 1; // Fix the sign bit. - value = uwatec_smart_fixsignbit (value, nbits); + signed int svalue = uwatec_smart_fixsignbit (value, nbits); if (complete && table[id].type != TIME) { complete = 0; @@ -327,8 +327,8 @@ uwatec_smart_parser_samples_foreach (parser_t *abstract, sample_callback_t callb // Parse the value. switch (table[id].type) { case DELTA_TANK_PRESSURE_DEPTH: - pressure += ((signed char) ((value >> NBITS) & 0xFF)) / 4.0; - depth += ((signed char) (value & 0xFF)) / 50.0; + pressure += ((signed char) ((svalue >> NBITS) & 0xFF)) / 4.0; + depth += ((signed char) (svalue & 0xFF)) / 50.0; sample.pressure.tank = tank; sample.pressure.value = pressure; if (callback) callback (SAMPLE_TYPE_PRESSURE, sample, userdata); @@ -338,23 +338,23 @@ uwatec_smart_parser_samples_foreach (parser_t *abstract, sample_callback_t callb time += 4; break; case DELTA_RBT: - rbt += (signed int) value; + rbt += svalue; sample.rbt = rbt; if (callback) callback (SAMPLE_TYPE_RBT, sample, userdata); break; case DELTA_TEMPERATURE: - temperature += ((signed int)value) / 2.5; + temperature += svalue / 2.5; sample.temperature = temperature; if (callback) callback (SAMPLE_TYPE_TEMPERATURE, sample, userdata); break; case DELTA_TANK_PRESSURE: - pressure += ((signed int)value) / 4.0; + pressure += svalue / 4.0; sample.pressure.tank = tank; sample.pressure.value = pressure; if (callback) callback (SAMPLE_TYPE_PRESSURE, sample, userdata); break; case DELTA_DEPTH: - depth += ((signed int)value) / 50.0; + depth += svalue / 50.0; sample.depth = depth - depth_calibration; if (callback) callback (SAMPLE_TYPE_DEPTH, sample, userdata); complete = 1;