Mares Smart Apnea

Jef Driesen jef at libdivecomputer.org
Sun Sep 6 00:47:32 PDT 2015


I m currently travelling and will send a more detailed answer later.

The backwards reading is by design. We always download the most recent dives first. That allows to stop downloading once we detect a previously downloaded dive. Normally we download dive per dive and not a full memory dump, but that has not been implemented yet for the iconhd. Thus starting at the start isnt even possible (especially if we only have the eop pointer).

The format you describe reminds me of the nemo freedive format, which also records an entire freedive session as a dive. I need to have a closer first (on a phone only right now), but we may need to hop through all the samples to find the start of the dive.

Larger attachments are fine if they are helpful. Try to compress them to keep size as small as possible.

On September 6, 2015 2:00:14 AM CEST, Giorgio Marzano <marzano.giorgio at gmail.com> wrote:
>Again on the Mares Smart Apnea topic.
>
>I think I have found a problem on the current SW implementation and I
>need
>some advice. Sorry for the long message.
>
>
>I have dumped my DC logbook, and some cross checking between the code
>and
>the expected results from the mares SW.
>
>I think I have found some problem in the code.
>In the function  "mares_iconhd_extract_dives" it seems to me that the
>code
>points to the very end of the buffer, then it starts crawling back to
>the
>beginning of the last immersion:
>
>offset = layout->rb_profile_end - layout->rb_profile_begin;
>
>
>unsigned int nbytes = 4 + headersize + nsamples * samplesize;
>...
>// Move to the start of the dive.
>offset -= nbytes;
>
>...but it seems that on the Smart Apnea there is not a constant
>samplesize:
>one immersion is a variable length (nsamples) sequence of dives , each
>one
>having one header (dive time, surface time, temperature, ...) and a
>stream
>of "dive time" depth measurements.
>
>
>If this is true, the current approach can't work, as long as it is no
>longer possible to compute "nbytes".
>
>Am I wrong?
>
>Is there any reason to start from the end and not from the beginning
>(the
>"end of profile ring buffer" eop) and then move forward? I am getting
>familiar with the memory layout of the DC but still have many many
>doubts
>about the library code and architecture.
>
>Any help would be very appreciated. I can provide the annotated dump,
>but I
>am not sure what the mailing list netiquette says about big
>attachments.
>
>Thank you in advance
>
>Giorgio
>
>
>EXAMPLE:
>
>*** start immersion 2015 08 31 10.08
>
>18 25 : LEN (in bytes)
>00 00 : ??
>*** sample 1 ***
>0c 00 : maxdepth(1.2) sample 1
>13 00 : dive time (19 secs)
>00 00 : surface time (0)
>fc 00 ??
>fc 00 ??
>04 00 ??
>17 00 ??
>0b 00  depth //19 depth measurements: 1 per second
>0c 00 depth
>0b 00 depth
>0b 00 depth
>0b 00 depth
>0b 00 depth
>0b 00 depth
>0c 00 depth
>0c 00 depth
>0b 00 depth
>0b 00 depth
>0b 00 depth
>0b 00 depth
>0b 00 depth
>0b 00 depth
>0c 00 depth
>0b 00 depth
>0b 00 depth
>09 00 depth
>
>**** sample 2 ***
>11 00 maxdepth (1.2)
>2d 00 divetime
>3c 00 surftime
>fc 00 ??
>fc 00 ??
>05 00 ??
>...
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>devel mailing list
>devel at libdivecomputer.org
>http://libdivecomputer.org/cgi-bin/mailman/listinfo/devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://libdivecomputer.org/pipermail/devel/attachments/20150906/642fb328/attachment.html>


More information about the devel mailing list