handling fingerprints

Dirk Hohndel dirk at hohndel.org
Sat Nov 13 17:52:42 PST 2021

Hi Jason!

> On Nov 13, 2021, at 2:52 PM, JB2Cool wrote:
> I think i understand what i'm meant to be testing but i can't seem to get any functional difference between using 5.0.4 and 5.0.4-27-gb87cbed53cd6. 

Well, for the thing that I want you to test, there should be a "day and night" style difference. 5.0.4 certainly doesn't do it (store fingerprints in the cloud). And /should/ be doing it...

> Can you spell it out for dummies how to test this for you (I know you've already written it out but i'm talking farm animal stupid instructions). I think what's confusing me is your mention of deleting a dive from the logbook, do you really want the dive computer to have more current info than the saved dive log? I'm doing this as an entirely separate computer user using a different cloud storage account so there is no fear/issue with messing up anything in my everyday log, I'm using Windows desktop application and Linux AppImage and an OSTC Plus if it makes any difference.

So testing this with a separate account is of course "safest". But even without it you should be able to test it.

Here's the general idea. Subsurface now saves the dive computer fingerprint of the last download with the dive log (btw, it does that both for XML and cloud storage, but it's of course easier to test the cloud storage part).

So first thing we need to do is to create a successful download. That's why I'm suggesting to delete the last dive that you have - that way you will actually download something from the dive computer.
After that, when you save the dive data to the cloud, it should show up in the git repo. For those who know how to peek into your local repo, it will be in 00-Subsurface as a line like this

fingerprint model=ac48a543 serial=042c1ef9 deviceid=00000000 diveid=d85e8de4 data="84782d49"

If you don't get a line like this, I want to know about that :)

Now sync that to the cloud server and go to a different computer or device. Sync there as well.
When you now download from that same dive computer, it should almost immediately tell you that there are no new dives - because it will receive that fingerprint and find it and not try to download things from the dive computer.
This is most visible with a G2 (which without fingerprint downloads EVERYTHING -- and with BLE that easily takes 15+ minutes... vs. responding in a few seconds), but I have noticed a significant difference with several other dive computers that I tested with (but haven't tried my OSTC... reading through the sources there the difference may be almost invisible as the fingerprint isn't used until after the data was downloaded - so the fingerprint test is only marginally faster than the second test we do (which is the manual check if we already have the dive once it was parsed).

> Sorry to be a pest

You are, as always, extremely helpful and I am very grateful that you are trying to test this.
Because there are so many different scenarios here, and because there are so many different dive computers who all handle fingerprints somewhat differently, it's really hard to write good instructions how to test this.
The whole point is that this is supposed to be invisible to the user - so if you can download and nothing breaks, I guess that's already good news :)


More information about the subsurface mailing list