can't download Oceanic VT3 on linux
Hamish Moffatt
hamish at cloud.net.au
Wed Mar 12 04:50:53 PDT 2014
On 12/03/14 22:08, Jef Driesen wrote:
>
> I just remember something that could matter here. If you look at the
> commands that are being send, they all end with a 0x00 byte that
> doesn't really serve any purpose afaik. When I originally reverse
> engineered the protocol, that byte was send by the Oceanic
> application, and I just duplicated that. But I now recall that I think
> I've seen that newer versions of there software no longer do this.
> Maybe this extra byte is what is causing us trouble now?
>
> Imagine the dive computer expects a 3 byte read command (e.g. B1XXXX).
> It will first receive the command type 0xB1, and then expect two more
> bytes for that command. Than it has everything to process the request
> and send back the response. But if we send that extra 0x00 byte it
> will probably try to process that as the next command type. This is
> likely a non-existing type and the device will probably just ignore
> it. But that might take just enough time to prevent the next command
> from being received correctly.
>
> I think that's something worth trying. Hamish, can you try without
> that last 0x00 byte? And maybe also try Oceanlog on Windows and
> capture the communication to double check whether they send this extra
> 0x00 byte or not.
I can see how the extra 0x00 might confuse the logical state of the
serial interface in the dc. I've got good news and bad... I removed the
extra 0x00 byte from the read version and read data commands, and the
commands work, but the behaviour hasn't changed.
[0.000032] DATETIME 2014-03-12T11:17:39Z (1394623059)
[0.000055] VERSION 0.5.0-devel (575f2e9016ac9baa2b1b031caa6fe0bc77cdbbee)
[0.000059] DEVICE=/dev/ttyUSB0
[0.000065] oceanic_atom2_device_open
[0.000071] INFO: Open: name=/dev/ttyUSB0
[0.000725] INFO: Configure: baudrate=38400, databits=8, parity=0,
stopbits=1, flowcontrol=0
[0.000837] INFO: Timeout: value=3000
[0.000839] INFO: Sleep: value=100
[0.100909] INFO: Flush: queue=3, input=23, output=0
[0.101118] INFO: Write: size=1, data=84
[0.103245] INFO: Read: size=1, data=5A
[0.107241] INFO: Read: size=17, data=4F43452056543320523244203531324BBF
[0.107252] dc_device_dump
[0.107858] INFO: Write: size=3, data=B10000
[0.109243] INFO: Read: size=1, data=A5
[0.109249] ERROR: Unexpected answer start byte(s). [in
oceanic_atom2.c:338 (oceanic_atom2_send)]
[0.109252] INFO: Sleep: value=100
[0.209320] INFO: Flush: queue=1, input=0, output=0
[0.211906] INFO: Write: size=3, data=B10000
[0.211916] INFO: Read: size=1, data=5A
[0.221744] INFO: Read: size=17, data=0416041120081001425800730000000075
[0.223887] INFO: Write: size=3, data=B10001
[3.226909] INFO: Read: size=0, data=
[3.226920] ERROR: Failed to receive the answer. [in oceanic_atom2.c:332
(oceanic_atom2_send)]
[3.226923] INFO: Sleep: value=100
[3.326992] INFO: Flush: queue=1, input=0, output=0
[3.327861] INFO: Write: size=3, data=B10001
[3.328711] INFO: Read: size=1, data=5A
[3.339732] INFO: Read: size=17, data=6701DA064204E506E206DC06FF0FAAFBF6
[3.343861] INFO: Write: size=3, data=B10002
[6.346882] INFO: Read: size=0, data=
[6.346893] ERROR: Failed to receive the answer. [in oceanic_atom2.c:332
(oceanic_atom2_send)]
[6.346897] INFO: Sleep: value=100
>
> The procedure on how to setup Portmon is described here:
>
> http://www.libdivecomputer.org/contribute.html#protocol
>
> Unfortunately you'll need a 32bit Windows version to run Portmon. If
> you use some other capture application that's of course fine too.
> Portmon is just convenient because it's freeware and the output is
> easy to parse with scripts.
>
Just to make things slightly more perverse, my only 32 bit Windows handy
is a VM on the linux machine. OceanLog runs fine within the VM (letting
VirtualBox give the USB device to the VM). But PortMon isn't even giving
me a Computer menu so I can't get anywhere with that. I'll look into it
more a bit later.
Hamish
More information about the devel
mailing list