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:
...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.