Add support for the Oceanic VT4.1
This commit is contained in:
parent
2abd5164f4
commit
87397a4ea1
@ -70,6 +70,7 @@ static const unsigned char oceanic_atom1_version[] = "ATOM rev\0\0 256K";
|
|||||||
static const unsigned char oceanic_atom2_version[] = "2M ATOM r\0\0 512K";
|
static const unsigned char oceanic_atom2_version[] = "2M ATOM r\0\0 512K";
|
||||||
static const unsigned char oceanic_atom3_version[] = "OCEATOM3 \0\0 1024";
|
static const unsigned char oceanic_atom3_version[] = "OCEATOM3 \0\0 1024";
|
||||||
static const unsigned char oceanic_vt4_version[] = "OCEANVT4 \0\0 1024";
|
static const unsigned char oceanic_vt4_version[] = "OCEANVT4 \0\0 1024";
|
||||||
|
static const unsigned char oceanic_vt41_version[] = "OCEAVT41 \0\0 1024";
|
||||||
static const unsigned char oceanic_geo2_version[] = "OCEGEO20 \0\0 512K";
|
static const unsigned char oceanic_geo2_version[] = "OCEGEO20 \0\0 512K";
|
||||||
static const unsigned char oceanic_oc1_version[] = "OCWATCH R\0\0 1024";
|
static const unsigned char oceanic_oc1_version[] = "OCWATCH R\0\0 1024";
|
||||||
static const unsigned char oceanic_veo2_version[] = "OCEVEO20 \0\0 512K";
|
static const unsigned char oceanic_veo2_version[] = "OCEVEO20 \0\0 512K";
|
||||||
@ -330,7 +331,8 @@ oceanic_atom2_device_open (device_t **out, const char* name)
|
|||||||
// Override the base class values.
|
// Override the base class values.
|
||||||
if (oceanic_common_match (oceanic_oc1_version, device->version, sizeof (device->version)) ||
|
if (oceanic_common_match (oceanic_oc1_version, device->version, sizeof (device->version)) ||
|
||||||
oceanic_common_match (oceanic_atom3_version, device->version, sizeof (device->version)) ||
|
oceanic_common_match (oceanic_atom3_version, device->version, sizeof (device->version)) ||
|
||||||
oceanic_common_match (oceanic_vt4_version, device->version, sizeof (device->version)))
|
oceanic_common_match (oceanic_vt4_version, device->version, sizeof (device->version)) ||
|
||||||
|
oceanic_common_match (oceanic_vt41_version, device->version, sizeof (device->version)))
|
||||||
device->base.layout = &oceanic_oc1_layout;
|
device->base.layout = &oceanic_oc1_layout;
|
||||||
else if (oceanic_common_match (tusa_zenair_version, device->version, sizeof (device->version)))
|
else if (oceanic_common_match (tusa_zenair_version, device->version, sizeof (device->version)))
|
||||||
device->base.layout = &tusa_zenair_layout;
|
device->base.layout = &tusa_zenair_layout;
|
||||||
|
|||||||
@ -44,6 +44,7 @@
|
|||||||
#define VT4 0x4447
|
#define VT4 0x4447
|
||||||
#define OC1B 0x4449
|
#define OC1B 0x4449
|
||||||
#define ATOM3 0x444C
|
#define ATOM3 0x444C
|
||||||
|
#define VT41 0x4452
|
||||||
|
|
||||||
typedef struct oceanic_atom2_parser_t oceanic_atom2_parser_t;
|
typedef struct oceanic_atom2_parser_t oceanic_atom2_parser_t;
|
||||||
|
|
||||||
@ -155,6 +156,7 @@ oceanic_atom2_parser_get_datetime (parser_t *abstract, dc_datetime_t *datetime)
|
|||||||
case OC1A:
|
case OC1A:
|
||||||
case OC1B:
|
case OC1B:
|
||||||
case VT4:
|
case VT4:
|
||||||
|
case VT41:
|
||||||
case ATOM3:
|
case ATOM3:
|
||||||
datetime->year = ((p[5] & 0xE0) >> 5) + ((p[7] & 0xE0) >> 2) + 2000;
|
datetime->year = ((p[5] & 0xE0) >> 5) + ((p[7] & 0xE0) >> 2) + 2000;
|
||||||
datetime->month = (p[3] & 0x0F);
|
datetime->month = (p[3] & 0x0F);
|
||||||
@ -318,7 +320,7 @@ oceanic_atom2_parser_samples_foreach (parser_t *abstract, sample_callback_t call
|
|||||||
parser->model == GEO || parser->model == GEO20 ||
|
parser->model == GEO || parser->model == GEO20 ||
|
||||||
parser->model == VEO20 || parser->model == VEO30)
|
parser->model == VEO20 || parser->model == VEO30)
|
||||||
header -= PAGESIZE;
|
header -= PAGESIZE;
|
||||||
else if (parser->model == VT4)
|
else if (parser->model == VT4 || parser->model == VT41)
|
||||||
header += PAGESIZE;
|
header += PAGESIZE;
|
||||||
else if (parser->model == ATOM1)
|
else if (parser->model == ATOM1)
|
||||||
header -= 2 * PAGESIZE;
|
header -= 2 * PAGESIZE;
|
||||||
@ -428,7 +430,7 @@ oceanic_atom2_parser_samples_foreach (parser_t *abstract, sample_callback_t call
|
|||||||
parser->model == VEO30 || parser->model == OC1A ||
|
parser->model == VEO30 || parser->model == OC1A ||
|
||||||
parser->model == OC1B) {
|
parser->model == OC1B) {
|
||||||
temperature = data[offset + 3];
|
temperature = data[offset + 3];
|
||||||
} else if (parser->model == VT4 || parser->model == ATOM3) {
|
} else if (parser->model == VT4 || parser->model == VT41 || parser->model == ATOM3) {
|
||||||
temperature = ((data[offset + 7] & 0xF0) >> 4) | ((data[offset + 7] & 0x0C) << 2) | ((data[offset + 5] & 0x0C) << 4);
|
temperature = ((data[offset + 7] & 0xF0) >> 4) | ((data[offset + 7] & 0x0C) << 2) | ((data[offset + 5] & 0x0C) << 4);
|
||||||
} else {
|
} else {
|
||||||
unsigned int sign;
|
unsigned int sign;
|
||||||
@ -447,7 +449,7 @@ oceanic_atom2_parser_samples_foreach (parser_t *abstract, sample_callback_t call
|
|||||||
// Tank Pressure (psi)
|
// Tank Pressure (psi)
|
||||||
if (parser->model == OC1A || parser->model == OC1B)
|
if (parser->model == OC1A || parser->model == OC1B)
|
||||||
pressure = (data[offset + 10] + (data[offset + 11] << 8)) & 0x0FFF;
|
pressure = (data[offset + 10] + (data[offset + 11] << 8)) & 0x0FFF;
|
||||||
else if (parser->model == ZENAIR || parser->model == VT4 || parser->model == ATOM3)
|
else if (parser->model == ZENAIR || parser->model == VT4 || parser->model == VT41|| parser->model == ATOM3)
|
||||||
pressure = (((data[offset + 0] & 0x03) << 8) + data[offset + 1]) * 5;
|
pressure = (((data[offset + 0] & 0x03) << 8) + data[offset + 1]) * 5;
|
||||||
else
|
else
|
||||||
pressure -= data[offset + 1];
|
pressure -= data[offset + 1];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user