Add support for the Tusa Zen Air.
This commit is contained in:
parent
4b374f2632
commit
55c4212dae
@ -69,6 +69,7 @@ static const unsigned char oceanic_atom2_version[] = "2M ATOM r\0\0 512K";
|
||||
static const unsigned char oceanic_epic_version[] = "2M EPIC r\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 tusa_zenair_version[] = "TUZENAIR \0\0 512K";
|
||||
|
||||
static const oceanic_common_layout_t oceanic_default_layout = {
|
||||
0x10000, /* memsize */
|
||||
@ -94,6 +95,18 @@ static const oceanic_common_layout_t oceanic_atom2_layout = {
|
||||
0 /* pt_mode_logbook */
|
||||
};
|
||||
|
||||
static const oceanic_common_layout_t tusa_zenair_layout = {
|
||||
0xFFF0, /* memsize */
|
||||
0x0000, /* cf_devinfo */
|
||||
0x0040, /* cf_pointers */
|
||||
0x0240, /* rb_logbook_begin */
|
||||
0x0A40, /* rb_logbook_end */
|
||||
0x0A40, /* rb_profile_begin */
|
||||
0xFFF0, /* rb_profile_end */
|
||||
0, /* pt_mode_global */
|
||||
1 /* pt_mode_logbook */
|
||||
};
|
||||
|
||||
static const oceanic_common_layout_t oceanic_oc1_layout = {
|
||||
0x20000, /* memsize */
|
||||
0x0000, /* cf_devinfo */
|
||||
@ -324,6 +337,8 @@ oceanic_atom2_device_open (device_t **out, const char* name)
|
||||
// Override the base class values.
|
||||
if (oceanic_common_match (oceanic_oc1_version, device->version, sizeof (device->version)))
|
||||
device->base.layout = &oceanic_oc1_layout;
|
||||
if (oceanic_common_match (tusa_zenair_version, device->version, sizeof (device->version)))
|
||||
device->base.layout = &tusa_zenair_layout;
|
||||
else if (oceanic_common_match (oceanic_atom2_version, device->version, sizeof (device->version)) ||
|
||||
oceanic_common_match (oceanic_epic_version, device->version, sizeof (device->version)) ||
|
||||
oceanic_common_match (oceanic_geo2_version, device->version, sizeof (device->version)) ||
|
||||
|
||||
@ -136,6 +136,13 @@ oceanic_atom2_parser_get_datetime (parser_t *abstract, dc_datetime_t *datetime)
|
||||
datetime->hour = bcd2dec (p[1] & 0x7F);
|
||||
datetime->minute = bcd2dec (p[0]);
|
||||
break;
|
||||
case 0x4442: // Tusa Zen Air
|
||||
datetime->year = (p[3] & 0x0F) + 2000;
|
||||
datetime->month = (p[7] & 0xF0) >> 4;
|
||||
datetime->day = ((p[3] & 0x80) >> 3) + ((p[5] & 0xF0) >> 4);
|
||||
datetime->hour = bcd2dec (p[1] & 0x1F);
|
||||
datetime->minute = bcd2dec (p[0]);
|
||||
break;
|
||||
default: // Atom 2
|
||||
datetime->year = bcd2dec (((p[3] & 0xC0) >> 2) + (p[4] & 0x0F)) + 2000;
|
||||
datetime->month = (p[4] & 0xF0) >> 4;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user