License: GPLv2
-You need libxml2-devel, gtk2-devel and GConf2-devel to build this.
+You need libxml2-devel, gtk2-devel, glib-2.0 and GConf2-devel to build
+this (and libusb-1.0 if you have libdivecomputer built with it, but then
+you obviously already have it installed)
You also need to have libdivecomputer installed, which goes something like this:
make
sudo make install
+NOTE! You may need to tell the main Makefile where you installed
+libdivecomputer if you didn't do it in the default /usr/local location.
+I don't trust pkg-config for libdivecomputer, since pkg-config usually
+doesn't work unless the project has been installed by the distro.
+
+Just edit the makefile directly. autoconf and friends are the devil's
+tools.
+
Usage:
make
- ./divelog dives/*.xml
+ ./subsurface dives/*.xml
to see my dives (with no notes or commentary).
-Or, if you have a dive computer supported by libdivecomputer (and
-connected to /dev/ttyUSB0), you can just do
+Or, if you have a dive computer supported by libdivecomputer, you can
+just do
make
- ./divelog
+ ./subsurface
and select "Import" from the File menu, tell it what dive computer you
-have, and hit "OK".
+have (and where it is connected if you need to), and hit "OK".
+
+NOTE! There are often multiple models of dive computers that import
+exactly the same way. If you have a Suunto Gekko, for example, the
+import function works fine - even if you don't find the Gekko listed
+explicitly. It has the same import engine as the older Suunto Vyper
+(not "Vyper Air").
+
+So check the (incomplete?) list of supported dive computers below, and
+see which ones show up together. If you have the "Aeris Elite T3", for
+example, you'd notice that it's in the same group with the "Oceanic Atom
+2", and use that choice to import.
+
+Suunto:
+
+ * Solution
+
+ * Eon, Solution Alpha and Solution Nitrox/Vario
+
+ * Vyper, Cobra, Vytec, Vytec DS, D3, Spyder, Gekko, Mosquito, Stinger and Zoop
+
+ * Vyper2, Cobra2, Cobra3, Vyper Air and HelO2
+
+ * D9, D6 and D4
+
+Uwatec:
+
+ * Aladin
+
+ * Memomouse
+
+ * Smart and Galileo (infrared)
+
+Reefnet:
+
+ * Sensus
+
+ * Sensus Pro
+
+ * Sensus Ultra
+
+Oceanic, Aeris, Sherwood, Hollis, Genesis and Tusa (Pelagic):
-There's a lot of duplicates in the XML files that come as an example,
-and divelog will de-duplicate the ones that are exactly the same (just
-because they were imported multiple times). But at least two of the
-dives have duplicates that were edited by Dirk in the Suunto Dive
-Manager, so they don't trigger the "exact duplicates" match.
+ * VT Pro, Versa Pro, Pro Plus 2, Wisdom, Atmos 2, Atmos AI, Atmos
+Elite, ...
+
+ * Veo 250, Veo 180Nx, XR2, React Pro, DG02, Insight, ...
+
+ * Atom 2.0, VT3, Datamask, Geo, Geo 2.0, Veo 2.0, Veo 3.0, Pro Plus 2.1,
+Compumask, Elite T3, Epic, Manta, IQ-900 (Zen), IQ-950 (Zen Air),
+IQ-750 (Element II), ...
+
+Mares:
+
+ * Nemo, Nemo Excel, Nemo Apneist, ...
+
+ * Puck, Puck Air, Nemo Air, Nemo Wide, ...
+
+ * Icon HD
+
+Heinrichs Weikamp:
+
+ * OSTC, OSTC Mk.2 and OSTC 2N
+
+Cressi, Zeagle and Mares (Seiko):
+
+ * Edy, Nemo Sport
+
+ * N2iTiON3
+
+Atomic Aquatics:
+
+ * Cobalt
+
+
+Implementation details:
+
+ main.c - program frame
+ dive.c - creates and maintaines the internal dive list structure
+ libdivecomputer.c
+ uemis.c
+ parse-xml.c
+ save-xml.c - interface with dive computers and the XML files
+ profile.c - creates the data for the profile and draws it using cairo
+
+A first UI has been implemented in gtk and an attempt has been made to
+separate program logic from UI implementation.
+
+ gtk-gui.c - overall layout, main window of the UI
+ divelist.c - list of dives subsurface maintains
+ equipment.c - equipment / tank information for each dive
+ info.c - detailed dive info
+ print.c - printing
WARNING! I wasn't kidding when I said that I've done this by reading
gtk2 tutorials as I've gone along. If somebody is more comfortable with
cases. I just save/restore the dive info every single time you switch
dives. Christ! That's truly lame.
-Also, I don't actually integrate directly with libdivecomputer, I just
-read the XML files it can spit out. But I included my own raw dive
-profile xml files for anybody who isn't a diver, but decides that they
-want to educate me in gtk.
-
NOTE! Some of the dives are pretty pitiful. All the last dives are from
my divemaster course, so they are from following open water students
along (many of them the confined*water dives). There a lot of the