Hello, I've been a libdivecomputer user (through subsurface) for a number of years. I'm in possession of a dive computer that is undergoing user testing now. I've been looking for an area I may be able to contribute to for a few years and feel this may be an interesting opportunity. My biggest issue is that I'm not sure where to begin the development process. The computer exposes itself as a USB mass storage device. Dive logs are located in a known folder, and are stored in a file format which is well documented. Considering I'm not seeing any currently supported computers exposed as storage devices, is this support something that would even be desired and/or possible? As I understand it there is an IO refactoring that's potentially in the works. If desired, is now a bad time to start this process?
Thank you, Ryan
That depends. What format are these files in? We support a number of such dive computers simply by importing and paying their log files directly in Subsurface.
Or is the storage abused as a way to communicate with the dive computer by writing and reading magical files? There is one dive computer like this that is supported directly in Subsurface: the Uemis Zurich.
I don't think libdivecomputer has a good way to support for system based dive computers at this point.
/D
--
From my phone
-------- Original Message -------- From: Ryan January rjanuary@gmail.com Sent: Tue Jun 20 08:31:56 PDT 2017 To: devel@libdivecomputer.org Subject: New to libdivecomputer. Where do I begin?
Hello, I've been a libdivecomputer user (through subsurface) for a number of years. I'm in possession of a dive computer that is undergoing user testing now. I've been looking for an area I may be able to contribute to for a few years and feel this may be an interesting opportunity. My biggest issue is that I'm not sure where to begin the development process. The computer exposes itself as a USB mass storage device. Dive logs are located in a known folder, and are stored in a file format which is well documented. Considering I'm not seeing any currently supported computers exposed as storage devices, is this support something that would even be desired and/or possible? As I understand it there is an IO refactoring that's potentially in the works. If desired, is now a bad time to start this process?
Thank you, Ryan _______________________________________________ devel mailing list devel@libdivecomputer.org http://libdivecomputer.org/cgi-bin/mailman/listinfo/devel
I appreciate the help Dirk. I wasn't sure where libdc stopped and subsurface began. This would be along the lines of your first scenario; Importing existing files and parsing the logs. If devices of this sort are already supported in subsurface, that seems to be the path of least resistance.
I'm afraid I can't mention the file format as that would expose some key details about the device. My desire at the moment is to develop what I can, test those integrations while testing the device, and ultimately submitting a pull request when I'm able. What I can say is that the files are simple, unencrypted binary files that have parsing libraries available in many common languages. I just finished testing the files were parsable via a short python script, and have subsequently confirmed the existence of an SDK that could assist me with some of the heavy lifting in C.
Now that I know the correct path to follow I'll start looking through the subsurface source. Is there a particular computer you could point me to as a good mass storage integration example?
Thanks again, Ryan
On Jun 20, 2017, at 11:31 AM, Dirk Hohndel dirk@hohndel.org wrote:
That depends. What format are these files in? We support a number of such dive computers simply by importing and paying their log files directly in Subsurface.
Or is the storage abused as a way to communicate with the dive computer by writing and reading magical files? There is one dive computer like this that is supported directly in Subsurface: the Uemis Zurich.
I don't think libdivecomputer has a good way to support for system based dive computers at this point.
/D
-- From my phone From: Ryan January Sent: Tue Jun 20 08:31:56 PDT 2017 To: devel@libdivecomputer.org Subject: New to libdivecomputer. Where do I begin?
Hello, I've been a libdivecomputer user (through subsurface) for a number of years. I'm in possession of a dive computer that is undergoing user testing now. I've been looking for an area I may be able to contribute to for a few years and feel this may be an interesting opportunity. My biggest issue is that I'm not sure where to begin the development process. The computer exposes itself as a USB mass storage device. Dive logs are located in a known folder, and are stored in a file format which is well documented. Considering I'm not seeing any currently supported computers exposed as storage devices, is this support something that would even be desired and/or possible? As I understand it there is an IO refactoring that's potentially in the works. If desired, is now a bad time to start this process?
Thank you, Ryan
devel mailing list devel@libdivecomputer.org http://libdivecomputer.org/cgi-bin/mailman/listinfo/devel http://libdivecomputer.org/cgi-bin/mailman/listinfo/devel
On Tue, Jun 20, 2017 at 01:27:00PM -0500, Ryan January wrote:
I appreciate the help Dirk. I wasn't sure where libdc stopped and subsurface began. This would be along the lines of your first scenario; Importing existing files and parsing the logs. If devices of this sort are already supported in subsurface, that seems to be the path of least resistance.
I'm afraid I can't mention the file format as that would expose some key details about the device. My desire at the moment is to develop what I can, test those integrations while testing the device, and ultimately submitting a pull request when I'm able. What I can say is that the files are simple, unencrypted binary files that have parsing libraries available in many common languages. I just finished testing the files were parsable via a short python script, and have subsequently confirmed the existence of an SDK that could assist me with some of the heavy lifting in C.
Now that I know the correct path to follow I'll start looking through the subsurface source. Is there a particular computer you could point me to as a good mass storage integration example?
None of those currently parse binary files. So I'm not sure where to point you.
/D
On 20 June, 2017 - Dirk Hohndel wrote:
On Tue, Jun 20, 2017 at 01:27:00PM -0500, Ryan January wrote:
I appreciate the help Dirk. I wasn't sure where libdc stopped and subsurface began. This would be along the lines of your first scenario; Importing existing files and parsing the logs. If devices of this sort are already supported in subsurface, that seems to be the path of least resistance.
I'm afraid I can't mention the file format as that would expose some key details about the device. My desire at the moment is to develop what I can, test those integrations while testing the device, and ultimately submitting a pull request when I'm able. What I can say is that the files are simple, unencrypted binary files that have parsing libraries available in many common languages. I just finished testing the files were parsable via a short python script, and have subsequently confirmed the existence of an SDK that could assist me with some of the heavy lifting in C.
Now that I know the correct path to follow I'll start looking through the subsurface source. Is there a particular computer you could point me to as a good mass storage integration example?
None of those currently parse binary files. So I'm not sure where to point you.
lvd, dlf and probably some more are binary file formats that we import.
The Divesoft computers shows up as a usb mass storage with dlf files on, but we currently don't have any nice "download all new dives" importer, so you need to choose which files to import yourself.
We have a couple of such scenarios, and it would be nice to turn them into something of a "regular" download api.
//Anton
On Tue, Jun 20, 2017 at 11:41 AM, Dirk Hohndel dirk@hohndel.org wrote:
On Tue, Jun 20, 2017 at 01:27:00PM -0500, Ryan January wrote:
Now that I know the correct path to follow I'll start looking through the subsurface source. Is there a particular computer you could point me to as a good mass storage integration example?
None of those currently parse binary files. So I'm not sure where to point you.
The Uemis Zurich also uses a fake USB storage back-end with odd file interfaces, and we do the parsing all inside subsurface.
It's not pretty, but I think pointing Ryan towards the "do_uemis_import()" thing in core/downloadfromdcthread.cpp is reasonable.
Hmm?
Linus