Oceanic / Aeris A300CS multipage patches

Jef Driesen jef at libdivecomputer.org
Tue Oct 14 13:11:03 PDT 2014


On 14-10-14 19:27, Dirk Hohndel wrote:
> On Tue, Oct 14, 2014 at 06:41:29PM +0200, Dirk Hohndel wrote:
>> as discussed earlier today, here are patches that implement aligned
>> multipage reads and mixed blocksize reads ONLY for dive computers that
>> support 256 byte page reads. So far that appears to be only the A300CS but
>> my guess is that we'll see more such dive computers in the future.
>>
>> This way we should get performant downloads from the A300CS without
>> risking to break older dive computers.

Man, you're fast! You have a patch ready before I'm even home :-)

Looks good to me. Just one comment. Are you aware that you are only creating 
aligned reads for the profile data, and not the logbook data?

> BTW: if you'd prefer we could add another field (something like
> "mixed_pagesize_support") to oceanic_atom2_device_t and then could enable
> this for those dive computers with 128 byte pages where we can test and
> verify that this works. That would make it less of a special case for the
> A300CS. I wasn't sure which version you'd prefer, so I implemented the
> A300CS specific one (or actually, the 256 byte page specific one), but I'm
> happy to go the other direction if you think that's better.
>
> Actually, the more I think about it, maybe that's the better way in case
> Oceanic / Aeris come out with a 256 byte page read model that doesn't
> support mixed paged sizes...

I'm not sure if this really helps. A model that doesn't support mixing page 
sizes, will likely no longer support the smaller page size and always require 
the larger page size. (That appears to be what's happening with the F11.) But 
your "mixed_pagesize_support" patch does exactly the opposite: it falls back to 
using single pages only. But why would you enable bigpage in the first place? 
Just keep it at one, and you're done. Or am I missing something else?

With that in mind, I think your first set of patches is the better one.

[The more I think about it, the more I actually like the idea of the caching. 
Internally we can always use a fixed page size, regardless of the requested 
size. Thus completely transparent to the calling code. But okay, let's proceed 
with your latest patches now, and we'll look at what needs to change for the F11 
once we have more info about that. [Me thinking out load now] I wonder if we 
would even need a full cache? Since libdivecomputer always reads successive 
pages, we basically only need the latest page again. Another thing that we may 
have to watch out for, are those few models with an inaccessible last page. But 
I think I've only seen that for devices which support the B1 read, so that 
should be fine.]

Jef


More information about the devel mailing list