Add support for the Darwin Air tank pressure.

This commit is contained in:
Jef Driesen 2012-03-10 10:18:35 +01:00
parent d4b94cb77c
commit dea1fe358d

View File

@ -185,6 +185,8 @@ mares_darwin_parser_samples_foreach (parser_t *abstract, sample_callback_t callb
unsigned int time = 0;
unsigned int pressure = array_uint16_be (abstract->data + 0x17);
unsigned int offset = parser->headersize;
while (offset + parser->samplesize <= abstract->size) {
parser_sample_value_t sample = {0};
@ -199,6 +201,17 @@ mares_darwin_parser_samples_foreach (parser_t *abstract, sample_callback_t callb
sample.depth = depth / 10.0;
if (callback) callback (SAMPLE_TYPE_DEPTH, sample, userdata);
if (parser->samplesize == 3) {
unsigned int type = (time / 20 + 2) % 3;
if (type == 0) {
// Tank Pressure (bar)
pressure -= abstract->data[offset + 2];
sample.pressure.tank = 0;
sample.pressure.value = pressure;
if (callback) callback (SAMPLE_TYPE_PRESSURE, sample, userdata);
}
}
offset += parser->samplesize;
}