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 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, 0x12, dc_filter_hw},
|
||||||
{"Heinrichs Weikamp", "OSTC Sport", DC_FAMILY_HW_OSTC3, 0x13, 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 */
|
/* Cressi Edy */
|
||||||
{"Tusa", "IQ-700", DC_FAMILY_CRESSI_EDY, 0x05, NULL},
|
{"Tusa", "IQ-700", DC_FAMILY_CRESSI_EDY, 0x05, NULL},
|
||||||
{"Cressi", "Edy", DC_FAMILY_CRESSI_EDY, 0x08, 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) {
|
switch (info[i].type) {
|
||||||
case 0: // Temperature
|
case 0: // Temperature
|
||||||
case 1: // Deco / NDL
|
case 1: // Deco / NDL
|
||||||
|
case 6: // Tank pressure
|
||||||
if (info[i].size != 2) {
|
if (info[i].size != 2) {
|
||||||
ERROR(abstract->context, "Unexpected sample size.");
|
ERROR(abstract->context, "Unexpected sample size.");
|
||||||
return DC_STATUS_DATAFORMAT;
|
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 time = 0;
|
||||||
unsigned int nsamples = 0;
|
unsigned int nsamples = 0;
|
||||||
|
unsigned int tank = parser->initial != UNDEFINED ? parser->initial : 0;
|
||||||
|
|
||||||
unsigned int offset = header;
|
unsigned int offset = header;
|
||||||
if (version == 0x23 || version == 0x24)
|
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. */
|
idx--; /* Convert to a zero based index. */
|
||||||
sample.gasmix = idx;
|
sample.gasmix = idx;
|
||||||
if (callback) callback (DC_SAMPLE_GASMIX, sample, userdata);
|
if (callback) callback (DC_SAMPLE_GASMIX, sample, userdata);
|
||||||
|
tank = idx;
|
||||||
offset++;
|
offset++;
|
||||||
length--;
|
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;
|
sample.cns = data[offset] / 100.0;
|
||||||
if (callback) callback (DC_SAMPLE_CNS, sample, userdata);
|
if (callback) callback (DC_SAMPLE_CNS, sample, userdata);
|
||||||
break;
|
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.
|
default: // Not yet used.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user