diff --git a/NEWS b/NEWS index df264aed..397868da 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,46 @@ +Version 0.9.0 (2025-06-30) +========================== + +The v0.9.0 release adds support for several new devices. It also introduces some +important parser api changes to be able to add some new features and remove a +few deprecated ones. Some BLE enabled dive computers also required some extra +additions to the BLE I/O layer. Due to all these api changes, this release is +not backwards compatible. + +New features: + + * Add support for new backends: + - i330r: Aqualung i330R, Apeks DSX + - symbios: Halcyon Symbios + * Add support for some new devices: + - Aqualung: i100 + - Cressi: Leonardo 2.0, Nepto, Archimede + - Heinrichs Weikamp: OSTC 5 + - Mares: Puck Air 2, Sirius, Quad Ci, Puck 4, Puck Lite + - Ratio: iDive 2, iX3M 2 GPS + - Scubapro: G3, Luna 2.0, Luna 2.0 AI + - Seac: Tablet + - Shearwater: Tern, Tern TX, Peregrine TX + - Uwatec: Aladin One + * Add the sensor index to the ppO2 sample + * Add a TTS field to the deco sample + * Add a usage field to the tank and gas mix + * Export the filter function in the public api + * Add ioctl's for the bluetooth authentication + * Add ioctl's for reading and writing BLE characteristics + * Add helper functions to convert UUID to/from strings + * Add a new field to report the GPS location + +Removed/changed features: + + * Change the units for the sample time to milliseconds + * Pass the sample struct by reference + * Remove the backend specific calibration functions + * Remove the clock parameters from the constructor + * Remove the dc_parser_set_data function + * Use separate data structures for USB and USB HID + * Replace the dc_descriptor_iterator function + Version 0.8.0 (2023-05-11) ========================== diff --git a/src/divesoft_freedom_parser.c b/src/divesoft_freedom_parser.c index 5f83656e..714cd7fa 100644 --- a/src/divesoft_freedom_parser.c +++ b/src/divesoft_freedom_parser.c @@ -423,7 +423,7 @@ divesoft_freedom_cache (divesoft_freedom_parser_t *parser) seawater = misc & 0x02; vpm = misc & 0x20; } else if (id == CFG_ID_VERSION) { - DEBUG (abstract->context, "Device: model=%u, hw=%u.%u, sw=%u.%u.%u.%u flags=%u", + DEBUG (abstract->context, "Device: type=%u, hw=%u.%u, sw=%u.%u.%u.%u flags=%u", data[offset + 4], data[offset + 5], data[offset + 6], data[offset + 7], data[offset + 8], data[offset + 9], diff --git a/src/halcyon_symbios_parser.c b/src/halcyon_symbios_parser.c index 32dbd4d4..ae5f4202 100644 --- a/src/halcyon_symbios_parser.c +++ b/src/halcyon_symbios_parser.c @@ -182,11 +182,9 @@ halcyon_symbios_parser_get_datetime (dc_parser_t *abstract, dc_datetime_t *datet dc_ticks_t ticks = (dc_ticks_t) parser->datetime + EPOCH; - if (!dc_datetime_gmtime (datetime, ticks)) + if (!dc_datetime_localtime (datetime, ticks)) return DC_STATUS_DATAFORMAT; - datetime->timezone = DC_TIMEZONE_NONE; - return DC_STATUS_SUCCESS; } diff --git a/src/shearwater_common.c b/src/shearwater_common.c index 9f69b8af..0bb2bf99 100644 --- a/src/shearwater_common.c +++ b/src/shearwater_common.c @@ -748,6 +748,7 @@ dc_status_t shearwater_common_get_model(shearwater_common_device_t *device, unsi case 0x8D6C: *model = PERDIXAI; break; + case 0x704C: case 0xC407: case 0xC964: case 0x9C64: diff --git a/src/shearwater_predator_parser.c b/src/shearwater_predator_parser.c index 3998115a..a5524474 100644 --- a/src/shearwater_predator_parser.c +++ b/src/shearwater_predator_parser.c @@ -820,6 +820,10 @@ shearwater_predator_parser_cache (shearwater_predator_parser_t *parser) // Get the correct model number from the final block. if (parser->final != UNDEFINED) { parser->model = data[parser->final + 13]; + DEBUG (abstract->context, "Device: model=%u, serial=%u, firmware=%u", + data[parser->final + 13], + array_uint32_be (data + parser->final + 2), + bcd2dec (data[parser->final + 10])); } // Fix the Teric tank serial number.