diff --git a/src/descriptor.c b/src/descriptor.c index 4ea801a..8f28981 100644 --- a/src/descriptor.c +++ b/src/descriptor.c @@ -267,6 +267,7 @@ static const dc_descriptor_t g_descriptors[] = { {"Sherwood", "Wisdom 4", DC_FAMILY_OCEANIC_ATOM2, 0x4655, DC_TRANSPORT_SERIAL | DC_TRANSPORT_BLE, dc_filter_oceanic}, {"Oceanic", "Pro Plus 4", DC_FAMILY_OCEANIC_ATOM2, 0x4656, DC_TRANSPORT_SERIAL | DC_TRANSPORT_BLE, dc_filter_oceanic}, {"Sherwood", "Amphos 2.0", DC_FAMILY_OCEANIC_ATOM2, 0x4657, DC_TRANSPORT_SERIAL, NULL}, + {"Sherwood", "Amphos Air 2.0", DC_FAMILY_OCEANIC_ATOM2, 0x4658, DC_TRANSPORT_SERIAL, NULL}, {"Sherwood", "Beacon", DC_FAMILY_OCEANIC_ATOM2, 0x4742, DC_TRANSPORT_SERIAL | DC_TRANSPORT_BLE, dc_filter_oceanic}, {"Aqualung", "i470TC", DC_FAMILY_OCEANIC_ATOM2, 0x4743, DC_TRANSPORT_SERIAL | DC_TRANSPORT_BLE, dc_filter_oceanic}, {"Aqualung", "i200C", DC_FAMILY_OCEANIC_ATOM2, 0x4749, DC_TRANSPORT_SERIAL | DC_TRANSPORT_BLE, dc_filter_oceanic}, diff --git a/src/oceanic_atom2.c b/src/oceanic_atom2.c index 5ad286d..88efbc3 100644 --- a/src/oceanic_atom2.c +++ b/src/oceanic_atom2.c @@ -460,6 +460,7 @@ static const oceanic_common_version_t versions[] = { {"VOYAGE2G \0\0 512K", 0, &tusa_zenair_layout}, {"TUSTALIS \0\0 512K", 0, &tusa_zenair_layout}, {"AMPHOS20 \0\0 512K", 0, &tusa_zenair_layout}, + {"AMPAIR20 \0\0 512K", 0, &tusa_zenair_layout}, {"REACPRO2 \0\0 512K", 0, &oceanic_reactpro_layout}, diff --git a/src/oceanic_atom2_parser.c b/src/oceanic_atom2_parser.c index a8febee..bd89f9c 100644 --- a/src/oceanic_atom2_parser.c +++ b/src/oceanic_atom2_parser.c @@ -98,6 +98,7 @@ #define WISDOM4 0x4655 #define PROPLUS4 0x4656 #define AMPHOS2 0x4657 +#define AMPHOSAIR2 0x4658 #define BEACON 0x4742 #define I470TC 0x4743 #define I200CV2 0x4749 @@ -317,6 +318,7 @@ oceanic_atom2_parser_get_datetime (dc_parser_t *abstract, dc_datetime_t *datetim case VOYAGER2G: case TALIS: case AMPHOS2: + case AMPHOSAIR2: datetime->year = (p[3] & 0x1F) + 2000; datetime->month = (p[7] & 0xF0) >> 4; datetime->day = ((p[3] & 0x80) >> 3) + ((p[5] & 0xF0) >> 4); @@ -913,7 +915,7 @@ oceanic_atom2_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_ sign = (~data[offset + 5] & 0x04) >> 2; else if (parser->model == VOYAGER2G || parser->model == AMPHOS || parser->model == AMPHOSAIR || parser->model == ZENAIR || - parser->model == AMPHOS2) + parser->model == AMPHOS2 || parser->model == AMPHOSAIR2) sign = (data[offset + 5] & 0x04) >> 2; else if (parser->model == ATOM2 || parser->model == PROPLUS21 || parser->model == EPICA || parser->model == EPICB || @@ -944,7 +946,7 @@ oceanic_atom2_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_ parser->model == AMPHOSAIR || parser->model == I550 || parser->model == VISION || parser->model == XPAIR || parser->model == I550C || parser->model == PROPLUS4 || - parser->model == WISDOM4) + parser->model == WISDOM4 || parser->model == AMPHOSAIR2) pressure = (((data[offset + 0] & 0x03) << 8) + data[offset + 1]) * 5; else if (parser->model == TX1 || parser->model == A300CS || parser->model == VTX || parser->model == I750TC ||