can't download Oceanic VT3 on linux
Jef Driesen
jefdriesen at telenet.be
Thu Mar 6 23:23:08 PST 2014
On 2014-03-07 03:20, Hamish Moffatt wrote:
> I'm trying to download from my VT3. I've built libdivecomputer 0.4.2
> on Linux (64-bit) but downloading is very slow and eventually fails.
> I've tested with both Subsurface and using the "universal" example. It
> does retrieve some dive data ok though.
>
> Downloading my VT3 does work on Windows though, using Diving Log 5.0
> (includes libdivecomputer 0.4.2, 32-bit) or the "universal" app binary
> which I downloaded directly from the libdivecomputer.org site.
I'm a bit surprised it works on Windows, but not on Linux. Because the
code is the same, except for the low-level serial code, that might
indicate a problem with the driver rather than the dive computer.
> I've included a bit of the output log from "universal" on linux below.
> I checked that nothing else has the port open with lsof - earlier
> modem-manager was running but I've killed and removed that now.
Normally, if modem-manager has the port open, you wouldn't even be able
to open the serial port, because we try to get exclusive access. So I
assume you fixed that problem correctly. To applications talking to the
same serial port results in all kinds of weird problems.
> [0.209269] INFO: Write: size=4, data=B1000000
> [3.212314] INFO: Read: size=0, data=
> [3.212333] ERROR: Failed to receive the answer. [in oceanic_atom2.c:331
> (oceanic_atom2_send)]
> [3.212341] INFO: Sleep: value=100
> [3.312423] INFO: Flush: queue=1, input=0, output=0
> [3.312656] INFO: Write: size=4, data=B1000000
> [3.314042] INFO: Read: size=1, data=5A
> [3.324885] INFO: Read: size=17, data=0416041120081001425800730000000075
> [6.441357] INFO: Write: size=4, data=B1005400
> [6.443109] INFO: Read: size=1, data=A5
> [6.443125] ERROR: Unexpected answer start byte(s). [in
> oceanic_atom2.c:337 (oceanic_atom2_send)]
> [6.443133] INFO: Sleep: value=100
> [6.543215] INFO: Flush: queue=1, input=0, output=0
> [6.543519] INFO: Write: size=4, data=B1005400
> [6.544642] INFO: Read: size=1, data=5A
> [6.555511] INFO: Read: size=17, data=39111F172E0CABB4258302172E4B7BB785
What happens here is that the first time we send a command to the dive
computer, we either don't get a reply back (first case above), or the
dive computer replies with a negative answer (second case above). In
such case, libdivecomputer will automatically retry sending the command,
and that appears to work.
Usually such errors are rare, and you shouldn't even notice them. But
you seem to get an error on every single packet. That also explains why
the download is terribly slow. If there is no response from the dive
computer, the timeout (3 seconds) will expire. Thus every packet will
take 3 seconds instead of a few milleseconds. You can easily see this
from the timings in the first case above.
If you've bad luck and the retrying fails too, then eventually
libdivecomputer will give up and fail with an error.
> Any suggestions?
Does your dive computer have a low battery? It's pretty common reason
for failing downloads. Typically the PC interface requires more power
than during diving. Another thing is to avoid using USB hubs and connect
directly to a USB port on the PC.
Jef
More information about the devel
mailing list