testing of download from divecomputer needed

Dirk Hohndel dirk at hohndel.org
Fri Jan 9 15:22:01 PST 2015


I redid the logic for downloading from the divecomputer.
The cool "select which dives you want" UI had some major flaws (as poor
Miika found out) which triggered me to actually read some of the ancient
code around downloading from dive computers which almost made me puke.

So instead of patching around this and make the new UI kinda work I
decided to rip things out and redo them.

- we no longer dump freshly downloaded dives straight into the dive_table,
  instead we have a new downloadTable that we use to download into and
  that we manipulate with the cool new selection UI

- the work flow for the download has been rethought and we now have one
  button that controls "start download", "cancel download", "retry"
  (simply because at any point in time only one of those three makes
  sense, so it's ideal for a single button that just changes labels)

- the dialog now has "OK" and "Cancel" buttons that do what you would
  expect from such buttons in a dialog. At times they may be disabled (you
  can't just leave the dialog in the middle of a download from a dive
  computer).

- when we have an incomplete download (the download was cancelled or there
  was some error reported from libdivecomputer), we no longer throw away
  the partial data but instead show all completely downloaded dives in the
  selection table and let the user decide if they want to keep some or all
  of them

Unsurprisingly I expect that I have introduced some creative, subtle new
bugs with all this change. So if any of you have a chance to play with
this, please, please do.

a) if you have a chance to go diving, go do it. I know, this is hard, but
it's for a good cause. Tell your friends and family that you have to do
this for a project you're involved in. They'll understand.
Download the new dives, play with canceling the download, canceling the
dialog, accepting some but not all dives, forcing a download of all dives,
etc.

b) if you don't have a chance to go diving but have a dive computer around
with some dives on it, simply create a new logbook (Ctrl-W) and download
from that dive computer. Again, play with canceling the download,
retrying, canceling the dialog, accepting some but not all dives, forcing
a download of all dives, etc.

c) finally, if you have neither (Hi Lubomir and the other few people here
who don't actually dive... I continue to be impressed by your commitment),
simply use the libdivecomputer simulator to pretend to be downloading
dives. If you don't know how to do that, talk to me and Jef and we can set
you up. This is how I do most of my testing... depending on the backend
you use you can have a download of 20 dives finish in under a second.
Reproducably, without a device and without draining the battery of your
dive computer. Extremely convenient for testing.

Either way, this REALLY needs some testing. And please report back both
success and failure. Tell us what you tried, what worked and what didn't.
I want to make sure I got the work flow right, that the options make sense
and are reasonably intuitive for a diver.

Daily builds are in the works... look for -343 (or later, in case I find
something else and redo them).

Thanks everyone

/D



More information about the subsurface mailing list