diff --git a/NEWS b/NEWS index 7c03239..3fabd4d 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,43 @@ +Version 0.7.0 (2020-05-07) +========================== + +The main highlight of the v0.7.0 release is the introduction of the new +I/O interface. With this common interface, the dive computer backends +can more easily use different I/O implementations at runtime, including +an application defined one. This is needed to support Bluetooth Low +Energy (BLE), for which there is no built-in implementation available. + +Due to the fundamental changes to the I/O layer, this release is not +backwards compatible. + +New features: + + * A new I/O interface + * Add support for new backends: + - goa: Cressi Goa and Cartesio + - divecomputereu: Tecdiving DiveComputer.eu + - extreme: McLean Extreme + - lynx: Liquivision Xen, Xeo, Lynx and Kaon + - sp2: Sporasub SP2 + * Add support for many new devices: + - Aqualung: i100, i200C, i300C, i470TC, i550C, i770R + - Heinrichs Weikamp: OSTC 2 TR + - Mares: Genius, Horizon, Quad Air, Smart Air + - Oceanic: Geo 4.0, Pro Plus 4, Pro Plus X, Veo 4.0 + - Ratio: iDive Color, iX3M GPS, iX3M 2021 + - Scubapro: A1, A2, Aladin H Matrix, G2 Console, G2 HUD + - Seac: Guru, Jack + - Shearwater: Peregrine, Teric + - Sherwood: Amphos 2.0, Beacon, Sage, Wisdom 4 + - Suunto: D5, EON Steel Black + - Tusa: Talis + * Firmware upgrade support for the Ratio computers + * Support for semi-closed circuit diving + +Removed/changed features: + + * Unify the Uwatec Smart, Meridian and G2 backends + Version 0.6.0 (2017-11-24) ========================== diff --git a/configure.ac b/configure.ac index 9b43b4b..718f95b 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ m4_define([dc_version_major],[0]) m4_define([dc_version_minor],[7]) m4_define([dc_version_micro],[0]) -m4_define([dc_version_suffix],[devel-Subsurface-NG]) +m4_define([dc_version_suffix],[Subsurface-NG]) m4_define([dc_version],dc_version_major.dc_version_minor.dc_version_micro[]m4_ifset([dc_version_suffix],-[dc_version_suffix])) # Libtool versioning. diff --git a/examples/common.c b/examples/common.c index 1972cfa..345dfec 100644 --- a/examples/common.c +++ b/examples/common.c @@ -91,7 +91,7 @@ static const backend_table_t g_backends[] = { {"idive", DC_FAMILY_DIVESYSTEM_IDIVE, 0x03}, {"cochran", DC_FAMILY_COCHRAN_COMMANDER, 0}, {"divecomputereu", DC_FAMILY_TECDIVING_DIVECOMPUTEREU, 0}, - {"mclean", DC_FAMILY_MCLEAN_EXTREME, 0}, + {"extreme", DC_FAMILY_MCLEAN_EXTREME, 0}, {"lynx", DC_FAMILY_LIQUIVISION_LYNX, 0}, {"sp2", DC_FAMILY_SPORASUB_SP2, 0}, diff --git a/src/descriptor.c b/src/descriptor.c index a25ebee..00b9f09 100644 --- a/src/descriptor.c +++ b/src/descriptor.c @@ -270,6 +270,7 @@ static const dc_descriptor_t g_descriptors[] = { {"Oceanic", "Veo 4.0", DC_FAMILY_OCEANIC_ATOM2, 0x4654, DC_TRANSPORT_SERIAL | DC_TRANSPORT_BLE, dc_filter_oceanic}, {"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", "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}, /* Mares Nemo */ diff --git a/src/oceanic_atom2.c b/src/oceanic_atom2.c index 26f5c83..ca0b095 100644 --- a/src/oceanic_atom2.c +++ b/src/oceanic_atom2.c @@ -459,6 +459,7 @@ static const oceanic_common_version_t versions[] = { {"AMPHOAIR \0\0 512K", 0, &tusa_zenair_layout}, {"VOYAGE2G \0\0 512K", 0, &tusa_zenair_layout}, {"TUSTALIS \0\0 512K", 0, &tusa_zenair_layout}, + {"AMPHOS20 \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 64be773..fe7c030 100644 --- a/src/oceanic_atom2_parser.c +++ b/src/oceanic_atom2_parser.c @@ -99,6 +99,7 @@ #define VEO40 0x4654 #define WISDOM4 0x4655 #define PROPLUS4 0x4656 +#define AMPHOS2 0x4657 #define BEACON 0x4742 #define I470TC 0x4743 @@ -316,6 +317,7 @@ oceanic_atom2_parser_get_datetime (dc_parser_t *abstract, dc_datetime_t *datetim case AMPHOSAIR: case VOYAGER2G: case TALIS: + case AMPHOS2: datetime->year = (p[3] & 0x1F) + 2000; datetime->month = (p[7] & 0xF0) >> 4; datetime->day = ((p[3] & 0x80) >> 3) + ((p[5] & 0xF0) >> 4); @@ -949,7 +951,8 @@ oceanic_atom2_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_ parser->model == PROPLUS4 || parser->model == WISDOM4) sign = (~data[offset + 5] & 0x04) >> 2; else if (parser->model == VOYAGER2G || parser->model == AMPHOS || - parser->model == AMPHOSAIR || parser->model == ZENAIR) + parser->model == AMPHOSAIR || parser->model == ZENAIR || + parser->model == AMPHOS2) sign = (data[offset + 5] & 0x04) >> 2; else if (parser->model == ATOM2 || parser->model == PROPLUS21 || parser->model == EPICA || parser->model == EPICB ||