[PATCH 4/3] Document quirks with Ostc 4 versions

Jef Driesen jef at libdivecomputer.org
Thu Dec 29 08:01:47 PST 2016


On 29-12-16 15:40, Anton Lundin wrote:
> On 29 December, 2016 - Jef Driesen wrote:
>
>> On 28-12-16 21:06, Anton Lundin wrote:
>>> -	// for now libdivecomputer gives us the firmware on device undecoded as integer
>>> +	// libdivecomputer gives us the firmware on device as an integer
>>> 	// for the OSTC that means highbyte.lowbyte is the version number
>>> +	// For OSTC 4's there is actually a another minor, x.y.Z, but its not
>>> +	// exposed via libdivecomputer, so we won't trigger this update flow
>>> +	// when the Z changes
>>> 	int firmwareOnDevice = devData.libdc_firmware;
>>> 	QString firmwareOnDeviceString = QString("%1.%2").arg(firmwareOnDevice / 256).arg(firmwareOnDevice % 256);
>>
>> The OSTC4 version number has four parts (X.Y.Z.Beta) and is (for
>> compatibility reasons) packed into two bytes, but it's done
>> different from the OSTC3 version number which has only two parts
>> (X.Y). You can find the details in libdivecomputer commit
>> ff15b865b2e35d38f0ee394c3a0d0218a763d5af.
>>
>
> As I read the documentation:
> Version/Identity (2) 0x69
>
> Note 2: OSTC4: limited version info, only major and sub-major version
> number, use 0x6B for complete info
>
>
> Not that I don't trust you, but where did you get the information about
> the version number packing from?

I got that info from Christian Weikamp.

I discovered this by accident, when we were investigating the ndl/deco bug. I 
wanted to implemented a workaround based on the firmware version, and noticed 
the decoded firmware version was not really what I expected :-)

The code was tested against data from Christian (I don't have an OSTC4 myself), 
so it should be correct.

Jef


More information about the subsurface mailing list