<div dir="ltr"><div class="gmail_extra">Again on the Mares Smart Apnea topic. </div><div class="gmail_extra"><br></div><div class="gmail_extra">I think I have found a problem on the current SW implementation and I need some advice. Sorry for the long message.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">I have dumped my DC logbook, and some cross checking between the code and the expected results from the mares SW. </div><div class="gmail_extra"><br></div><div class="gmail_extra">I think I have found some problem in the code. </div><div class="gmail_extra">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:</div><div class="gmail_extra"></div><div class="gmail_extra"><br></div><div class="gmail_extra">offset = layout->rb_profile_end - layout->rb_profile_begin;</div><div class="gmail_extra"><br></div><div class="gmail_extra"><span style="white-space:pre">               </span><br></div><div class="gmail_extra"><div class="gmail_extra">unsigned int nbytes = 4 + headersize + nsamples * samplesize;</div><div class="gmail_extra"><span class="" style="white-space:pre">                ...</span></div><div class="gmail_extra"><span class="" style="white-space:pre">          </span>// Move to the start of the dive.</div><div class="gmail_extra"><span class="" style="white-space:pre">            </span>offset -= nbytes;</div></div><div class="gmail_extra"> </div><div class="gmail_extra">...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.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra"><br class="">If this is true, the current approach can't work, as long as it is no longer possible to compute "nbytes". </div><div class="gmail_extra"><br></div><div class="gmail_extra">Am I wrong? </div><div class="gmail_extra"><br></div><div class="gmail_extra">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. </div><div class="gmail_extra"><br></div><div class="gmail_extra">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. </div><div class="gmail_extra"><br></div><div class="gmail_extra">Thank you in advance</div><div class="gmail_extra"><br></div><div class="gmail_extra">Giorgio</div></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">EXAMPLE:</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">*** start immersion 2015 08 31 10.08</div><div class="gmail_extra"><br></div><div class="gmail_extra">18 25 : LEN (in bytes)</div><div class="gmail_extra">00 00 : ??</div><div class="gmail_extra">*** sample 1 ***</div><div class="gmail_extra">0c 00 : maxdepth(1.2) sample 1</div><div class="gmail_extra">13 00 : dive time (19 secs)</div><div class="gmail_extra">00 00 : surface time (0)</div><div class="gmail_extra">fc 00 ??</div><div class="gmail_extra">fc 00 ??</div><div class="gmail_extra">04 00 ??</div><div class="gmail_extra">17 00 ??</div><div class="gmail_extra">0b 00  depth //19 depth measurements: 1 per second</div><div class="gmail_extra">0c 00 depth </div><div class="gmail_extra">0b 00 depth </div><div class="gmail_extra">0b 00 depth </div><div class="gmail_extra">0b 00 depth </div><div class="gmail_extra">0b 00 depth </div><div class="gmail_extra">0b 00 depth </div><div class="gmail_extra">0c 00 depth </div><div class="gmail_extra">0c 00 depth </div><div class="gmail_extra">0b 00 depth </div><div class="gmail_extra">0b 00 depth </div><div class="gmail_extra">0b 00 depth  </div><div class="gmail_extra">0b 00 depth </div><div class="gmail_extra">0b 00 depth </div><div class="gmail_extra">0b 00 depth </div><div class="gmail_extra">0c 00 depth </div><div class="gmail_extra">0b 00 depth </div><div class="gmail_extra">0b 00 depth </div><div class="gmail_extra">09 00 depth</div><div class="gmail_extra"><br></div><div class="gmail_extra">**** sample 2 ***</div><div class="gmail_extra">11 00 maxdepth (1.2) </div><div class="gmail_extra">2d 00 divetime</div><div class="gmail_extra">3c 00 surftime</div><div class="gmail_extra">fc 00 ??</div><div class="gmail_extra">fc 00 ??</div><div class="gmail_extra">05 00 ??</div><div class="gmail_extra">...</div></div><div class="gmail_extra"><br></div></div>