Add support for the OSTC 2 TR
The OSTC 2 TR add supports for one or more tank pressure transmitters, and the active transmitter is linked to the active gas mix.
This commit is contained in:
parent
0ac15dffd3
commit
efd47cd9a1
@ -288,6 +288,7 @@ static const dc_descriptor_t g_descriptors[] = {
|
||||
{"Heinrichs Weikamp", "OSTC cR", DC_FAMILY_HW_OSTC3, 0x07, dc_filter_hw},
|
||||
{"Heinrichs Weikamp", "OSTC Sport", DC_FAMILY_HW_OSTC3, 0x12, dc_filter_hw},
|
||||
{"Heinrichs Weikamp", "OSTC Sport", DC_FAMILY_HW_OSTC3, 0x13, dc_filter_hw},
|
||||
{"Heinrichs Weikamp", "OSTC 2 TR", DC_FAMILY_HW_OSTC3, 0x33, dc_filter_hw},
|
||||
/* Cressi Edy */
|
||||
{"Tusa", "IQ-700", DC_FAMILY_CRESSI_EDY, 0x05, NULL},
|
||||
{"Cressi", "Edy", DC_FAMILY_CRESSI_EDY, 0x08, NULL},
|
||||
|
||||
@ -641,6 +641,7 @@ hw_ostc_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t call
|
||||
switch (info[i].type) {
|
||||
case 0: // Temperature
|
||||
case 1: // Deco / NDL
|
||||
case 6: // Tank pressure
|
||||
if (info[i].size != 2) {
|
||||
ERROR(abstract->context, "Unexpected sample size.");
|
||||
return DC_STATUS_DATAFORMAT;
|
||||
@ -674,6 +675,7 @@ hw_ostc_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t call
|
||||
|
||||
unsigned int time = 0;
|
||||
unsigned int nsamples = 0;
|
||||
unsigned int tank = parser->initial != UNDEFINED ? parser->initial : 0;
|
||||
|
||||
unsigned int offset = header;
|
||||
if (version == 0x23 || version == 0x24)
|
||||
@ -809,6 +811,7 @@ hw_ostc_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t call
|
||||
idx--; /* Convert to a zero based index. */
|
||||
sample.gasmix = idx;
|
||||
if (callback) callback (DC_SAMPLE_GASMIX, sample, userdata);
|
||||
tank = idx;
|
||||
offset++;
|
||||
length--;
|
||||
}
|
||||
@ -909,6 +912,12 @@ hw_ostc_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t call
|
||||
sample.cns = data[offset] / 100.0;
|
||||
if (callback) callback (DC_SAMPLE_CNS, sample, userdata);
|
||||
break;
|
||||
case 6: // Tank pressure
|
||||
value = array_uint16_le (data + offset);
|
||||
sample.pressure.tank = tank;
|
||||
sample.pressure.value = value / 10.0;
|
||||
if (callback) callback (DC_SAMPLE_PRESSURE, sample, userdata);
|
||||
break;
|
||||
default: // Not yet used.
|
||||
break;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user