Fix the parser for the Hollis DG03.
The date/time value and the sign bit of the sample temperature were parsed incorrectly.
This commit is contained in:
parent
5f13759b6f
commit
b3df32da9d
@ -47,6 +47,7 @@
|
|||||||
#define VT4 0x4447
|
#define VT4 0x4447
|
||||||
#define OC1B 0x4449
|
#define OC1B 0x4449
|
||||||
#define ATOM3 0x444C
|
#define ATOM3 0x444C
|
||||||
|
#define DG03 0x444D
|
||||||
#define OCS 0x4450
|
#define OCS 0x4450
|
||||||
#define VT41 0x4452
|
#define VT41 0x4452
|
||||||
#define ATOM31 0x4456
|
#define ATOM31 0x4456
|
||||||
@ -182,6 +183,7 @@ oceanic_atom2_parser_get_datetime (dc_parser_t *abstract, dc_datetime_t *datetim
|
|||||||
case VEO20:
|
case VEO20:
|
||||||
case VEO30:
|
case VEO30:
|
||||||
case GEO20:
|
case GEO20:
|
||||||
|
case DG03:
|
||||||
datetime->year = ((p[3] & 0xE0) >> 1) + (p[4] & 0x0F) + 2000;
|
datetime->year = ((p[3] & 0xE0) >> 1) + (p[4] & 0x0F) + 2000;
|
||||||
datetime->month = (p[4] & 0xF0) >> 4;
|
datetime->month = (p[4] & 0xF0) >> 4;
|
||||||
datetime->day = p[3] & 0x1F;
|
datetime->day = p[3] & 0x1F;
|
||||||
@ -518,7 +520,9 @@ oceanic_atom2_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_
|
|||||||
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;
|
||||||
if (parser->model == ATOM2 || parser->model == EPIC || parser->model == PROPLUS21)
|
if (parser->model == DG03)
|
||||||
|
sign = (~data[offset + 5] & 0x04) >> 2;
|
||||||
|
else if (parser->model == ATOM2 || parser->model == EPIC || parser->model == PROPLUS21)
|
||||||
sign = (data[offset + 0] & 0x80) >> 7;
|
sign = (data[offset + 0] & 0x80) >> 7;
|
||||||
else
|
else
|
||||||
sign = (~data[offset + 0] & 0x80) >> 7;
|
sign = (~data[offset + 0] & 0x80) >> 7;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user