Using the libdivecomputer simulator with an OSTC3
Jan Mulder
jlmulder at xs4all.nl
Mon Apr 24 05:40:32 PDT 2017
Some days ago, a remark of Dirk on github issue
https://github.com/Subsurface-divelog/subsurface/issues/335 triggered my
curiosity. Finding issues that are close to the divecomputer hardware
(for example during input over a Bluetooth connection, which will drop
eventually when stopping the debugger), can be complex, so "the
libdivecomputer simulator" comes into play (more info on Jef's website
http://libdivecomputer.org/simulator.html).
The use with an OSTC3 is not straightforward, but with the explanation
from Jef shown below, it was easy to get it to work.
best,
--jan
On 24-04-17 11:23, Jef Driesen wrote:
> On 2017-04-24 09:43, Jan Mulder wrote:
>> Is the simulator supposed to work with a OSTC3 (BT version, not sure
>> if this is called a 3+) dump? It says ostc3 is a supported backend,
>> but no success on my end at this point.
>>
>> Agreed, the subject of the email is confusing as it references an
>> ostc 2n
>
> Yes, the latest version supports the ostc3 protocol, but it works a
> bit different.
>
> The ostc3 protocol is one of those modern protocols where you request
> complete dives directly. On one hand that's great, because
> libdivecomputer doesn't need to know how and where the dives are
> stored in the internal memory. But on the other hand supporting such a
> protocol in the simulator is more problematic. Since dive computers in
> this category usually don't support memory dumps at all, I needed
> another solution for the simulator. Instead of memory dumps, it
> somehow needs to be able to operate one the raw dive data. Since the
> simulator code wasn't really made to pass multiple files, I did a
> simple workaround for now, by concatenating the raw dives. This hack
> works for the ostc3 and idive (currently the only supported protocols
> of this type in the simulator) because their data format allows to
> locate the individual dives again due to the presence of length fields
> in the dive header (idive) or special markers (ostc3).
>
> The ostc3 is special because it does support memory dumps. But that's
> a full memory dump, and not just the dive data that the simulator needs.
>
> Thus in order to use the simulator, you need to dump the individual
> dives:
>
> ./dctool -f ostc3 download -o dive.%n.bin -f raw /dev/rfcommX
>
> Concatenate them:
>
> cat dive.%n.bin > ostc3.bin
>
> And use this file in the simulator:
>
> ./simulator -p /tmp/ttySX -b ostc3 ostc3.bin
>
> At some point, I would like to cleanup the simulator code, and add
> proper support for these kind of protocols, such that you can just
> pass a set of raw dive files directly. But there's always more
> important stuff waiting...
>
> Jef
More information about the subsurface
mailing list