On 2014-10-13 11:44, Anton Lundin wrote:
On 13 October, 2014 - Jef Driesen wrote:

On 2014-10-12 16:51, Anton Lundin wrote:
>This implements the reading and writing of the configuration varables
>from the Suunto Vyper family devices.
>
>Everything here is implemented based on the excellent information on:
>http://www.sarnau.info/papers:suunto_vyper

Most of the info on that page is good, but there are also a few areas where it's a bit outdated. For example some of the model numbers are wrong, and other models like the D3 and Zoop are missing. You can get the correct names
from libdivecomputer by iterating the device descriptors.

Ah, sounds great. But wouldn't that return the Spyder to? Maybe its the
best to just black-list the Spyder and grab everybody else from the
descriptors.

Yes, of course that will include the Spyder too. But as you say, you can blacklist it, or adjust the offsets for this particular model:

http://sarnau.info/papers:suunto_spyder

There is also one model that's an exception to the rule: the Suunto Spyder uses the vyper protocol, but with a different memory layout. Thus although your code for changing the settings will work for the Spyder, you'll most likely be reading/writing to the wrong memory locations. So that's something
to watch out for!


I'm thinking about starting out by reading 0x24,1
SUUNTO_VYPER_COMPUTER_TYPE , and matching that against the
device-model-list to verify that the computer reports a model that we
know how to handle, and instead of calling it "UNKNOWN" in the default
case just rasing a error and saying: "Hey, we don't support this
computer!"

How does that plan sound to you?

Sounds good.

Keep in mind that the Spyder model code is not stored at address 0x24. For the Spyder, that address contains the sample interval. That's how libdivecomputer detects the Spyder. The possible values for the Spyder sample interval (20, 30 or 60) are not valid model numbers, and thus libdivecomputer will assume it's a Spyder and use the correct addresses for the Spyder. You can see how this is done in the suunto_vyper_device_foreach() function.

Jef
_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to