X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=libdivecomputer.c;h=bf912f00875fa79fe8a2d204a285e0cc33356a95;hb=9470f713d05b489fec32457a4d2eba759bc64d7a;hp=9d4c1065a3817ce046798448b7c7a39a2a10be2a;hpb=addfe79024abf29740b3d6b6b88d27469289c2e2;p=ext%2Fsubsurface.git diff --git a/libdivecomputer.c b/libdivecomputer.c index 9d4c106..bf912f0 100644 --- a/libdivecomputer.c +++ b/libdivecomputer.c @@ -67,6 +67,9 @@ static parser_status_t create_parser(device_data_t *devdata, parser_t **parser) case DEVICE_TYPE_OCEANIC_ATOM2: return oceanic_atom2_parser_create(parser, devdata->devinfo.model); + case DEVICE_TYPE_MARES_DARWIN: + return mares_darwin_parser_create(parser, devdata->devinfo.model); + case DEVICE_TYPE_MARES_NEMO: case DEVICE_TYPE_MARES_PUCK: return mares_nemo_parser_create(parser, devdata->devinfo.model); @@ -109,7 +112,7 @@ static int parse_gasmixes(struct dive *dive, parser_t *parser, int ngases) he = gasmix.helium * 1000 + 0.5; /* Ignore bogus data - libdivecomputer does some crazy stuff */ - if (o2 < 210 || o2 >= 1000) + if (o2 <= AIR_PERMILLE || o2 >= 1000) o2 = 0; if (he < 0 || he >= 800 || o2+he >= 1000) he = 0; @@ -175,7 +178,7 @@ sample_cb(parser_sample_type_t type, parser_sample_value_t value, void *userdata case SAMPLE_TYPE_TIME: sample = prepare_sample(divep); sample->time.seconds = value.time; - finish_sample(*divep, sample); + finish_sample(*divep); break; case SAMPLE_TYPE_DEPTH: sample->depth.mm = value.depth * 1000 + 0.5; @@ -385,6 +388,9 @@ static device_status_t device_open(const char *devname, case DEVICE_TYPE_OCEANIC_ATOM2: return oceanic_atom2_device_open(device, devname); + case DEVICE_TYPE_MARES_DARWIN: + return mares_darwin_device_open(device, devname, 0); /// last parameter is model type (taken from example), 0 seems to be standard, 1 is DARWIN_AIR => Darwin Air wont work if this is fixed here? + case DEVICE_TYPE_MARES_NEMO: return mares_nemo_device_open(device, devname); @@ -533,8 +539,9 @@ struct device_list device_list[] = { { "Oceanic VT Pro", DEVICE_TYPE_OCEANIC_VTPRO }, { "Oceanic Veo250", DEVICE_TYPE_OCEANIC_VEO250 }, { "Oceanic Atom 2", DEVICE_TYPE_OCEANIC_ATOM2 }, - { "Mares Nemo", DEVICE_TYPE_MARES_NEMO }, - { "Mares Puck", DEVICE_TYPE_MARES_PUCK }, + { "Mares Darwin, M1, M2, Airlab", DEVICE_TYPE_MARES_DARWIN }, + { "Mares Nemo, Excel, Apneist", DEVICE_TYPE_MARES_NEMO }, + { "Mares Puck, Nemo Air, Nemo Wide", DEVICE_TYPE_MARES_PUCK }, { "Mares Icon HD", DEVICE_TYPE_MARES_ICONHD }, { "OSTC", DEVICE_TYPE_HW_OSTC }, { "Cressi Edy", DEVICE_TYPE_CRESSI_EDY },