Improve the detection of unused tanks.

The begin/end pressure for unused tanks is normally zero. But I noticed
that in some cases both pressure values are stored as 0xFFFF. Since that
corresponds to a pressure of 511.99 bar, this is most likely some
special magic value, and not a valid pressure.

Tanks where either the begin or end pressure is 0xFFFF are now ignored
too.
This commit is contained in:
Jef Driesen 2015-08-26 07:51:53 +02:00
parent 5381714d08
commit 3ff890b3e2

View File

@ -459,7 +459,8 @@ uwatec_smart_parser_cache (uwatec_smart_parser_t *parser)
endpressure = array_uint16_le(data + offset + 2);
}
}
if (beginpressure != 0 || endpressure != 0) {
if ((beginpressure != 0 || endpressure != 0) &&
(beginpressure != 0xFFFF) && (endpressure != 0xFFFF)) {
tank[ntanks].id = id;
tank[ntanks].beginpressure = beginpressure;
tank[ntanks].endpressure = endpressure;
@ -1068,7 +1069,8 @@ uwatec_smart_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t
mixidx = idx;
}
if (beginpressure != 0 || endpressure != 0) {
if ((beginpressure != 0 || endpressure != 0) &&
(beginpressure != 0xFFFF) && (endpressure != 0xFFFF)) {
idx = uwatec_smart_find_tank (parser, mixid);
if (idx >= parser->ntanks) {
if (idx >= NGASMIXES) {