mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-11 03:21:29 +00:00
1f4d02a861
As the group can be something else than dialout on some systems, mention this on user manual. Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
4398 lines
225 KiB
Text
4398 lines
225 KiB
Text
// Subsurface 4.5 User Manual
|
||
// ==========================
|
||
// :author: Manual authors: Jacco van Koll, Dirk Hohndel, Reinout Hoornweg,
|
||
// Linus Torvalds, Miika Turkia, Amit Chaudhuri, Jan Schubert, Willem
|
||
// Ferguson, Salvador Cuñat, Pedro Neves
|
||
// :revnumber: 4.5
|
||
// :revdate: October 2015
|
||
:icons:
|
||
:toc2:
|
||
:toc-placement: manual
|
||
:numbered:
|
||
// :website: http://subsurface-divelog.org
|
||
|
||
image::images/Subsurface4Banner.jpg["Banner",align="center"]
|
||
|
||
[big]#USER MANUAL#
|
||
|
||
*Manual authors*: Willem Ferguson, Jacco van Koll, Dirk Hohndel, Reinout Hoornweg,
|
||
Linus Torvalds, Miika Turkia, Amit Chaudhuri, Jan Schubert, Salvador Cuñat, Pedro Neves
|
||
|
||
[blue]#_Version 4.5, October 2015_#
|
||
|
||
|
||
Welcome as a user of _Subsurface_, an advanced dive logging program with
|
||
extensive infrastructure to describe, organize, interpret and print scuba
|
||
and free dives. _Subsurface_ offers many advantages over other similar
|
||
software solutions:
|
||
|
||
- Do you need a flexible way of logging dives using recreational equipment,
|
||
even without a dive computer?
|
||
- Do you use two different dive computer brands, each with its own proprietary
|
||
software for downloading dive logs? Do you dive with rebreathers as well
|
||
as open circuit or recreational equipment? Do you use a Reefnet Sensus time-depth
|
||
recorder along with a dive computer? _Subsurface_ offers a standard
|
||
interface for downloading dive logs from all of these different pieces of
|
||
equipment, storing and analyzing the dive logs within a unified system.
|
||
- Do you use more than one operating system? _Subsurface_ is fully compatible
|
||
with Mac, Linux and Windows, letting you access your dive log on each
|
||
operating system using a single application.
|
||
- Do you use Linux or Mac, but your dive computer has only Windows- based software
|
||
for downloading dive information (e.g. Mares)? _Subsurface_ provides a way of
|
||
downloading and analyzing your dive logs on other operating systems.
|
||
- Do you need an intuitive graphical dive planner that integrates with, and takes
|
||
into account, dives you’ve already logged?
|
||
- Do you need a way of storing or backing up your dive log on the Internet, letting
|
||
you view your dive log from anywhere using an Internet browser?
|
||
_Subsurface_ binaries are available for Windows PCs (Win XP or later), Intel
|
||
based Macs (OS/X) and many Linux distributions. _Subsurface_ can be built for
|
||
many more hardware platforms and software environments where Qt and
|
||
libdivecomputer are available.
|
||
|
||
This manual explains how to use the _Subsurface_ program. To install
|
||
the software, consult the _Downloads_ page on the
|
||
http://subsurface-divelog.org/[_Subsurface_ web site].
|
||
Please discuss issues with this program by sending an email to
|
||
mailto:subsurface@subsurface-divelog.org[our mailing list] and report bugs at
|
||
http://trac.hohndel.org[our bugtracker]. For instructions on how to build the
|
||
software and (if needed) its dependencies please consult the INSTALL file
|
||
included with the source code.
|
||
|
||
*Audience*: Recreational Scuba Divers, Free Divers, Tec Divers, Professional
|
||
Divers
|
||
|
||
toc::[]
|
||
|
||
|
||
Using this manual
|
||
-----------------
|
||
When opened from within _Subsurface_, this manual does not have external controls for
|
||
paging or selecting previous pages. However, two facilities are provided:
|
||
|
||
- The _SEARCH_ function is activated by pressing control-F or command-F on
|
||
the keyboard. A text box appears at the bottom right-hand of the window (see image below).
|
||
For instance, typing the word "_weights_" into the search text
|
||
box, searches throughout the user manual. To the right of the
|
||
search text box are two arrows pointing up and down. These find
|
||
the previous and the next occurrence of the search term.
|
||
image::images/usermanualfunctions.jpg["User manual functions",align="center"]
|
||
|
||
|
||
- _PREVIOUS/NEXT LINK_. Move between links (underlined words that
|
||
jump to specific sections in the user manual) by right-clicking on the text of the manual.
|
||
This brings up a context menu to previous links selected.
|
||
(see image above). For instance if a link has been selected, then the option
|
||
to _Go Back_ shows the text at the last link selected
|
||
(similar to the Previous Page button in a browser). Conversely the _Go Forward_ option
|
||
jumps to the
|
||
text seen before selecting the _Go Back_ option. The _Reload_
|
||
option reloads the complete user manual into the window.
|
||
[[S_UserSurvey]]
|
||
The user survey
|
||
---------------
|
||
In order to develop _Subsurface_ to serve its users in the best possible way,
|
||
it’s important to have user information. Upon launching _Subsurface_
|
||
and using the software for a week or so, a one-box user survey pops up. It is entirely
|
||
optional and the user controls what, if any, data are sent to the _Subsurface_ development
|
||
team. All data the user sends is useful, and will only be
|
||
used to steer future development and to customize the software to fit the needs of
|
||
the _Subsurface_ users. If you complete the survey, or click the option not to
|
||
be asked again, that should be the last communication of this type you receive.
|
||
However, if your diving and/or subsurface habits change and you wish to fill in
|
||
another survey, just launch _Subsurface_ with the _--survey_ option on the command line.
|
||
|
||
[[S_StartUsing]]
|
||
Start Using the Program
|
||
-----------------------
|
||
|
||
The _Subsurface_ window is usually divided into four panels with a *Main
|
||
Menu* (File Import Log View Help) at the top of the window (for Windows
|
||
and Linux) or the top of the screen (for Mac and Ubuntu Unity). The four panels are:
|
||
|
||
1. The *Dive List* on the bottom left, showing all the dives in the
|
||
user's
|
||
dive log. A dive can be selected and highlighted on the dive list by clicking on
|
||
it. In most situations the up/down keys can be used to switch
|
||
between dives. The *Dive List* is an important tool for manipulating a dive log.
|
||
|
||
2. The *Dive Map* on the bottom right, showing the user's dive sites on a world map
|
||
and centered on the site of the last dive selected in the *Dive List*.
|
||
|
||
3. The *Info* on the top left, giving more detailed information on the
|
||
dive selected in the *Dive List*, including some statistics for the selected dive or for all
|
||
highlighted dive(s).
|
||
|
||
4. The *Dive Profile* on the top right, showing a graphical dive profile of the
|
||
selected dive in the *Dive List*.
|
||
|
||
The dividers between panels can be dragged to change the size of any of
|
||
the panels. _Subsurface_ remembers the position of the dividers, so the next
|
||
time _Subsurface_ starts it uses the positions of the dividers from the last time the program was used.
|
||
|
||
If a single dive is selected in the *Dive List*, the dive location, detailed information
|
||
and profile of
|
||
the _selected dive_ are shown in the respective panels. If
|
||
several dives are selected, the last highlighted dive is the _selected
|
||
dive_, but summary data of all _highlighted dives_ is shown in the *Stats* tab
|
||
of the *Info* panel (maximum, minimum and average depths, durations, water
|
||
temperatures and SAC; total time and number of dives selected).
|
||
|
||
[[S_ViewPanels]]
|
||
|
||
image::images/main_window_f22.jpg["The Main Window",align="center"]
|
||
|
||
The user decides which of the four panels are displayed by selecting the
|
||
*View* option on the main menu. This feature has several choices of display:
|
||
|
||
*All*: show all four of the panels as in the screenshot above.
|
||
|
||
*Divelist*: Show only the Dive List.
|
||
|
||
*Profile*: Show only the Dive Profile of the selected dive.
|
||
|
||
*Info*: Show only the Notes about the last selected dive and statistics for
|
||
all highlighted dives.
|
||
|
||
*Globe*: Show only the world map, centered on the last selected dive.
|
||
|
||
Like other functions that can be accessed via the Main Menu, these options
|
||
can also be triggered using keyboard shortcuts. The shortcuts for a particular system
|
||
are shown with an underline in the main menu entries. Since different Operating
|
||
Systems and the user’s chosen language may cause _Subsurface_ to use different
|
||
shortcut keys, they are not listed in this user manual.
|
||
|
||
When the program is started for the first time, it shows no
|
||
information at all, because it does not have any dive information available. In the
|
||
following sections, the procedures to create a new logbook will be explained.
|
||
|
||
[[S_NewLogbook]]
|
||
Creating a new logbook
|
||
----------------------
|
||
Select _File -> New Logbook_ from the main menu. All existing dive data are
|
||
cleared so new information can be added. If there are unsaved data in an
|
||
open logbook, the user is asked whether the open logbook should be
|
||
saved before a new logbook is created.
|
||
|
||
[[S_GetInformation]]
|
||
== Storing dive information in the logbook
|
||
Now that a new logbook is created, it is simple to add dive data it.
|
||
_Subsurface_ allows several ways of adding dive data to a logbook.
|
||
1) If the user has a handwritten divelog, a spreadsheet or another form of
|
||
manually maintained divelog, dive data can be added to the logbook using
|
||
one of these approaches:
|
||
- Enter dive information by hand. This is useful if the diver didn’t
|
||
use a dive computer and dives were recorded in a written logbook. See:
|
||
xref:S_EnterData[Entering dive information by hand]
|
||
|
||
- Import dive log information that has been maintained either as a spreadsheet
|
||
or as a CSV file. Refer to: xref:S_Appendix_D[APPENDIX D: Exporting a spreadsheet to CSV format] and
|
||
to xref:S_ImportingCSVDives[Importing dives in CSV format].
|
||
2) If a dive is recorded using a dive computer, the depth profile
|
||
and a large amount of additional information can be accessed.
|
||
These dives can be imported from:
|
||
- The dive computer itself. See: xref:S_ImportDiveComputer[Importing new dive information from a Dive Computer] or
|
||
|
||
- Proprietary software distributed by manufacturers of dive computers. Refer
|
||
to: xref:S_ImportingAlienDiveLogs[Importing dive information from other digital data sources or other data formats].
|
||
- Spreadsheet or CSV files containing dive profiles.
|
||
See: xref:S_ImportingCSVDives[Importing dives in CSV format from dive computers or other dive log software]
|
||
|
||
|
||
[[S_EnterData]]
|
||
=== Entering dive information by hand
|
||
|
||
This is usually the approach for dives without a dive computer. The basic record
|
||
of information within _Subsurface_ is a dive. The most important information
|
||
in a simple dive logbook usually includes dive type, date, time, duration,
|
||
depth, the names of your dive buddy and the dive master or dive guide, and
|
||
some remarks about the dive. _Subsurface_ can store much more
|
||
information for each dive. To add a dive to a dive log, select _Log
|
||
-> Add Dive_ from the Main Menu. The program then shows three panels
|
||
on which to enter
|
||
information for a dive: two tabs in the *Info* panel (*Notes* and
|
||
*Equipment*), as well as the *Dive Profile* panel that displays a graphical profile
|
||
of each dive. These panels are respectively marked [red]#A#, [red]#B# and
|
||
[red]#C#
|
||
in the figure below. Each of these tabs will now be explained for data entry.
|
||
|
||
image::images/AddDive1_f22.jpg["FIGURE: Add dive",align="center"]
|
||
When you edit a field in Notes or Equipment panels, _Subsurface_ enters *Editing Mode*,
|
||
indicated by the message in the blue box at the top of the *Notes* panel (see the image below). This message is
|
||
displayed in all the panels under Notes and Equipment when in *Editing Mode*.
|
||
|
||
image::images/BlueEditBar_f22.jpg["Blue edit bar",align="center"]
|
||
|
||
The _Apply changes_ button should only be selected after all the parts of a dive have been entered.
|
||
When entering dives by hand, the _Info_, _Equipment_ and _Profile_ tabs should be completed
|
||
before saving the information. By selecting the _Apply changes_ button, a local copy of the information
|
||
for this specific dive is saved in memory. The _Apply changes_ button should ONLY be selected after all parts
|
||
of a dive have been entered. When you close Subsurface, the program will
|
||
ask again, this time whether the complete dive log should be saved on disk or not.
|
||
|
||
[[S_CreateProfile]]
|
||
==== Creating a Dive Profile
|
||
|
||
The *Dive Profile* (a graphical representation of the depth of the dive as a
|
||
function of time) is shown in the panel on the top right hand of the
|
||
_Subsurface_ window. When a dive is manually added to a logbook, _Subsurface_
|
||
presents a default dive profile that needs to be modified to best represent the
|
||
dive described:
|
||
|
||
image::images/DiveProfile1_f20.jpg["FIGURE: Initial dive profile",align="center"]
|
||
|
||
_Modifying the dive profile_: When the cursor is moved around the dive profile,
|
||
its position is shown by two right-angled red lines as seen below.
|
||
The time and depth
|
||
represented by the cursor are indicated at the top of the black information box
|
||
(@ and D). The units (metric/imperial) on the axes are determined by the
|
||
*Preference* settings. The dive profile itself comprises several
|
||
line segments demarcated by waypoints (white dots on the profile, as shown
|
||
above). The default dive depth is 15 m.
|
||
If the dive depth was 20 m then you need to drag the appropriate waypoints
|
||
downward to 20 m. To add a waypoint, double-click on
|
||
any line segment. To move an additional waypoint, drag it.
|
||
To remove a waypoint, right-click on it and choose "Remove this point" from the
|
||
context menu. Drag the waypoints to represent an
|
||
accurate
|
||
time duration for the dive. Below is a dive profile for a dive
|
||
to 20 m for 30 min, followed by a 5 minute safety stop at 5 m.
|
||
|
||
image::images/DiveProfile2_f20.jpg["FIGURE: Edited dive profile",align="center"]
|
||
|
||
_Specifying the gas composition:_ The gas composition used is indicated
|
||
along the line segments of the dive profile. This defaults to the first gas
|
||
mixture specified in the *Equipment* tab, which was air in the case of the
|
||
profile above. The gas mixtures of segments of the dive profile can
|
||
be changed by right-clicking on the particular
|
||
waypoint and selecting the appropriate gas from the context menu. Changing
|
||
the gas for a waypoint affects the gas shown in the segment _to the left_ of
|
||
that
|
||
waypoint. Note that only the gases defined in the *Equipment* tab appear in the
|
||
context menu (see image below).
|
||
|
||
image::images/DiveProfile3_f20.jpg["FIGURE: Gas composition context menu",align="center"]
|
||
|
||
With the profile now defined, more details must be added to have
|
||
a fuller record of the dive. To do this,
|
||
the *Notes* and the *Equipment* tabs on the top left hand of the
|
||
_Subsurface_ window should be used. Click on
|
||
xref:S_Notes_dc[*this link*] for instructions on how to use these tabs.
|
||
[[S_ImportDiveComputer]]
|
||
=== Importing new dive information from a Dive Computer
|
||
|
||
==== Connecting and importing data from a dive computer.
|
||
|
||
The use of dive computers allows the collection of a large amount of
|
||
information about
|
||
each dive, e.g. a detailed record of depth, duration, rates of ascent/descent
|
||
and of gas partial pressures. _Subsurface_ can capture this information,
|
||
using dive details from a wide range of dive computers. The latest list of supported
|
||
dive computers can be found at:
|
||
link:http://subsurface-divelog.org/documentation/supported-dive-computers/[
|
||
Supported dive computers].
|
||
|
||
[icon="images/icons/warning2.png"]
|
||
[WARNING]
|
||
Several dive computers consume more power when they are in
|
||
PC-Communication mode. **This could drain the dive computer's battery**. We
|
||
recommend the user checks to be sure the dive computer is charged when
|
||
connected to the USB port of a PC. For example, several Suunto and Mares dive
|
||
computers do not recharge through the USB connection. Users should refer to
|
||
the dive computer's manual
|
||
if they are unsure whether the dive computer recharges its batteries
|
||
while connected to the USB port.
|
||
|
||
To import dive information from a dive computer to a computer with
|
||
_Subsurface_,
|
||
the two pieces of equipment must communicate with one another.
|
||
This
|
||
involves setting up the communications port (or mount point) of the computer
|
||
with _Subsurface_ that communicates with the dive computer. To set up
|
||
this communication, users need to find the appropriate information to
|
||
instruct
|
||
_Subsurface_ where and how to import the dive information.
|
||
xref:_appendix_a_operating_system_specific_information_for_importing_dive_information_from_a_dive_computer[Appendix A]
|
||
provides the technical information to help the user achieve this for different
|
||
operating
|
||
systems and
|
||
xref:_appendix_b_dive_computer_specific_information_for_importing_dive_information[Appendix B]
|
||
has dive computer specific information.
|
||
|
||
After this, the dive computer can be hooked up to the user's PC using these steps:
|
||
|
||
1. The interface cable should be connected to a free USB port (or the Infra-red
|
||
or Bluetooth connection set up as described later in this manual)
|
||
|
||
2. The dive computer should be placed into PC Communication mode.
|
||
(Refer to the manual of the specific dive computer)
|
||
|
||
3. In _Subsurface_, from the Main Menu, select _Import -> Import
|
||
From Dive Computer_.
|
||
Dialogue *A* in the figure below appears:
|
||
|
||
|
||
image::images/DC_import_f20.jpg["FIGURE: Download dialogue 1",align="center"]
|
||
|
||
Dive computers tend to keep a certain number of dives in memory, even
|
||
though these dives have already been imported to _Subsurface_. For that reason, if
|
||
the dive computer allows this,
|
||
_Subsurface_ only imports dives that have not been uploaded before. This makes
|
||
the download process faster on most dive computers and also saves battery power
|
||
of the dive computer (at least for those not charging while connected via USB).
|
||
|
||
- The dialogue has two drop-down lists, *Vendor* and *Dive Computer*. On the
|
||
*vendor* drop-down list select the make of the computer, e.g.
|
||
Suunto, Oceanic,
|
||
Uwatec, Mares. On the *Dive Computer* drop-down list, the model name of
|
||
the dive computer must be selected, e.g. D4 (Suunto), Veo200 (Oceanic), or Puck
|
||
(Mares).
|
||
|
||
- The *Device or Mount Point* drop-down list contains the USB or Bluetooth port
|
||
name that _Subsurface_ needs in order to communicate with the dive computer.
|
||
The appropriate port name must be selected. Consult
|
||
xref:_appendix_a_operating_system_specific_information_for_importing_dive_information_from_a_dive_computer[Appendix A]
|
||
and
|
||
xref:_appendix_b_dive_computer_specific_information_for_importing_dive_information[Appendix B]
|
||
for technical details on how to find the appropriate port information for a
|
||
specific dive
|
||
computer and, in some cases, how to do the correct settings to the operating
|
||
system of the computer on which _Subsurface_ is running.
|
||
|
||
- If all the dives on the dive computer need to be downloaded, check the
|
||
checkbox _Force download of all dives_. Normally, _Subsurface_ only downloads
|
||
dives after the date-time of the last dive in the *Dive List* panel. If one
|
||
or more of your dives in _Subsurface_ has been accidentally deleted or if there
|
||
are older dives that still need to be downloaded from the dive computer, this
|
||
box needs to be checked. Some dive computers (e.g. Mares Puck) do not provide
|
||
a contents list to _Subsurface_ before the download in order to select only new dives.
|
||
Consequently, for these dive computers, all dives are downloaded
|
||
irrespective of the status of this check box.
|
||
|
||
- If the checkbox _Always prefer downloaded dives_
|
||
has been checked and, during download, dives with identical date-times exist on
|
||
the dive computer and on the _Subsurface_
|
||
*Dive List* panel, the dive in the _Subsurface_ divelog will be overwritten
|
||
by the dive record from the computer.
|
||
|
||
- The checkbox marked _Download into new trip_ ensures that, after upload, the downloaded dives
|
||
are grouped together as a new trip(s) in the *Dive List*.
|
||
|
||
- Do *not* check the checkboxes labelled _Save libdivecomputer logfile_ and
|
||
_Save libdivecomputer dumpfile_. These are only used as diagnostic tools
|
||
when there are problems with downloads(see below).
|
||
- Then select the _Download_ button.
|
||
With communication established, you can see how the data are
|
||
retrieved from the dive computer.
|
||
Depending on the make of the dive computer and/or number of recorded dives, this
|
||
could take some time. Be patient. The _Download_ dialogue
|
||
shows a
|
||
progress bar at the bottom of the dialogue. Remember for some dive computers
|
||
progress information could be inaccurate since the program doesn’t know how much
|
||
downloadable data there is until the download is complete. After successful download, Dialogue *B*
|
||
in the figure above appears.
|
||
After the dives have been downloaded, they appear in a tabular format on the right-hand
|
||
side of the dialogue (see image *B*, above). Each dive comprises a row in the table, with the date, duration
|
||
and depth shown. Next to each dive is a checkbox: check all the dives that need to
|
||
be transferred to the *Dive List*. In the case of the image above, the last six dives are
|
||
checked and will be transferred to the *Dive List*. Then
|
||
click the _OK_ button at the bottom of the dialogue. All the imported dives appear
|
||
in the *Dive List*, sorted by date and time. Disconnect and
|
||
switch off the dive
|
||
computer to conserve its battery power.
|
||
|
||
|
||
|
||
Then click the OK button.
|
||
The checked dives are transferred to the *Dive List*.
|
||
|
||
- If there is a problem in communicating with the dive computer, an error
|
||
message will be shown, similar to this text: "Unable to open /dev/ttyUSB0 Mares
|
||
(Puck Pro)". Refer to the text in the box below.
|
||
|
||
|
||
****
|
||
*PROBLEMS WITH DATA DOWNLOAD FROM A DIVE COMPUTER?*
|
||
[icon="images/icons/important.png"]
|
||
[IMPORTANT]
|
||
Check the following:
|
||
|
||
- Is the dive computer still in PC-communication or
|
||
Upload mode?
|
||
|
||
- Is the dive computer’s battery fully charged? If not then charge or replace it.
|
||
|
||
- Is the connecting cable faulty? Does the cable work using other
|
||
software? Has it worked before, or is this the first time the cable is being used? Are the contacts
|
||
on the dive computer and the cable clean?
|
||
|
||
- Consult
|
||
xref:_appendix_a_operating_system_specific_information_for_importing_dive_information_from_a_dive_computer[Appendix A]
|
||
to be sure the correct Mount Point
|
||
was specified (see above).
|
||
|
||
- On Unix-like operating systems, does the user have write permission to the
|
||
USB port? If not, consult
|
||
xref:_appendix_a_operating_system_specific_information_for_importing_dive_information_from_a_dive_computer[Appendix A]
|
||
|
||
If the _Subsurface_ computer does not recognize the USB adaptor by
|
||
showing an appropriate device name next to the Mount Point, then there is a
|
||
possibility the cable or USB adaptor is faulty. A faulty cable is the most
|
||
common cause of communication failure between a dive computer and _Subsurface_
|
||
computer. It’s also possible the _Subsurface_ computer cannot interpret
|
||
the data. Perform a download for diagnostic purposes with the following
|
||
two boxes checked in the download dialogue discussed above:
|
||
|
||
Save libdivecomputer logfile
|
||
Save libdivecomputer dumpfile
|
||
|
||
*Important*: These check boxes are only used when problems are encountered
|
||
during the download process. Under normal circumstances they should not be checked.
|
||
When checking these boxes, the user is prompted to select a folder where the information will be saved. The default folder is the one in which the
|
||
_Subsurface_
|
||
dive log is kept.
|
||
|
||
*Important:* _After downloading with the above checkboxes
|
||
checked, no dives are added to the
|
||
*Dive List* but two files are created in the folder selected above_:
|
||
|
||
subsurface.log
|
||
subsurface.bin
|
||
|
||
These files should be send to the _Subsurface_ mail list:
|
||
_subsurface@subsurface-divelog.org_ with a
|
||
request for the files to be analyzed. Provide the dive computer
|
||
make and model
|
||
as well as contextual information about the dives recorded on the dive computer.
|
||
****
|
||
|
||
[[S_Bluetooth]]
|
||
==== Connecting _Subsurface_ to a Bluetooth-enabled dive computer
|
||
[icon="images/icons/bluetooth.jpg"]
|
||
|
||
Bluetooth is becoming a more common way of communication between dive computers
|
||
and _Subsurface_, for or instance, the Shearwater Petrel
|
||
Mk2 and the OSTC Mk3. _Subsurface_ provides a largely operating system independent
|
||
Bluetooth interface. Setting up _Subsurface_ for Bluetooth communication requires
|
||
four steps:
|
||
|
||
- Be sure Bluetooth is activated on the host computer running _Subsurface_.
|
||
- Be sure _Subsurface_ sees the Bluetooth adapter on the host computer.
|
||
- Be sure the Bluetooth-enabled dive computer is Bluetooth-discoverable and in PC upload mode.
|
||
- Be sure _Subsurface_ is paired with the Bluetooth-enabled dive computer.
|
||
|
||
Select the Download dialogue by selecting
|
||
_Import -> Import from dive computer_ from the *Main Menu*. If you check the
|
||
box labelled _"Choose Bluetooth download mode"_, the dialogue below appears.
|
||
===== On Linux or MacOS:
|
||
|
||
image::images/DC_import_Bluetooth.jpg["FIGURE: Download Bluetooth",align="center"]
|
||
|
||
On the _Linux_ or _MacOS_ platforms the name
|
||
of the _Subsurface_ computer and its Bluetooth address are shown on the right hand side,
|
||
On the left hand side, if the
|
||
computer has connected more than one local Bluetooth devices the user can use
|
||
the list box to indicate which one needs to connect to _Subsurface_.
|
||
The power state (on/off) of the Bluetooth adapter is shown below
|
||
the address and can be changed by checking the _Turn on/off_ box.
|
||
If the Bluetooth address is not shown, then _Subsurface_ does not see the local
|
||
Bluetooth device. Be sure the Bluetooth driver is installed correctly on the
|
||
_Subsurface_ computer and check if it can be used by other Bluetooth utilities like
|
||
_bluetoothctl_ or _bluemoon_. This finishes the first two steps above.
|
||
Be sure the Bluetooth-enabled dive computer is in PC-upload mode and it
|
||
is discoverable by other Bluetooth devices. Consult the manual of the dive
|
||
computer for more information. Now the third item in the list above has been finished.
|
||
Select the _Scan_ button towards the bottom left of the dialogue above. After
|
||
searching, the dive computer should be listed
|
||
(perhaps as one of a number of Bluetooth devices) in the main list box on the
|
||
lefthand side of the dialogue (see image above). If this does not work, select
|
||
the _Clear_ button, then scan again for Bluetooth devices using the _Scan_
|
||
button. After taking these actions _Subsurface_ should see the dive computer.
|
||
The label of the discovered dive computer contains the name of the device, its
|
||
address and its pairing status. If the device is not paired and has a red
|
||
background color, a context menu can be opened by selecting the item with a
|
||
right-click.
|
||
Select the the _Pair_ option and wait for the task to complete. If this dive computer
|
||
is being paired to Subsurface for the first time, it’s possible Subsurface will
|
||
request a Pass Code or PIN number. The most commonly-used Pass Code is 0000,
|
||
and this works for the Shearwater Petrel. If necessary, consult the user manual of the
|
||
dive computer being used.
|
||
|
||
****
|
||
[icon="images/icons/important.png"]
|
||
[IMPORTANT]
|
||
Currently _Subsurface_ does not support Bluetooth pairing with dive
|
||
computers that require a custom PIN code. In order to pair the devices, use other
|
||
OS utilities as suggested below.
|
||
|
||
One way to achieve this is to use +bluetoothctl+:
|
||
|
||
$ bluetoothctl
|
||
[bluetooth]# agent KeyboardOnly
|
||
Agent registered
|
||
[bluetooth]# default-agent
|
||
Default agent request successful
|
||
[bluetooth]# pair 00:80:25:49:6C:E3
|
||
Attempting to pair with 00:80:25:49:6C:E3
|
||
[CHG] Device 00:80:25:49:6C:E3 Connected: yes
|
||
Request PIN code
|
||
[agent] Enter PIN code: 0000
|
||
****
|
||
|
||
After the devices are paired, press the _Save_ button of the dialogue.
|
||
This closes the Bluetooth dialogue. Now select _Download_ in the _Download from
|
||
dive computer_ dialogue which should still be open. The downloaded dives are
|
||
shown on the righthand side of the download dialogue.
|
||
|
||
===== On Windows:
|
||
image::images/DC_import_Bluetooth_Windows.png["FIGURE: Download Bluetooth on Windows",align="center"]
|
||
|
||
On _Windows_ platforms the _Local Bluetooth device details section_ on the right is not displayed as
|
||
is the case on the Linux/Mac systems.
|
||
To start a scan (by pressing the _Scan_ button)
|
||
check that the Bluetooth device on the _Subsurface_ computer is turned on by selecting
|
||
the dive computer from the list of available Bluetooth devices (see image above). If the dive computer
|
||
is being accessed by Subsurface for the first time, it’s possible Subsurface will
|
||
request a Pass Code or PIN number. Supply the Pass Code recommended in the user manual of the dive computer.
|
||
A Pass Code or PIN of 0000 is often the default.
|
||
|
||
The pairing step is checked and done automatically during
|
||
the download process. If the devices have never been paired the system will ask
|
||
for your permission and put a message on the right side of the screen: _Add a
|
||
device, Tap to set up your DC device_. Always allow this pairing. After a
|
||
discovered item is selected, select the _Save_ button.
|
||
Finally select the _Download_ button on the _Download_ dialogue and wait for the process to complete.
|
||
|
||
[icon="images/icons/important.png"]
|
||
[IMPORTANT]
|
||
Currently _Subsurface_ works only with local Bluetooth
|
||
adapters which use Microsoft Bluetooth Stack. If the local device uses
|
||
_Widcomm_, _Stonestreet One Bluetopia Bluetooth_ or _BlueSoleil_ drivers it
|
||
will not work. However, Bluetooth hardware/dongles from these manufacturers
|
||
(e.g. iSonic) that support the Microsoft Bluetooth Stack do work.
|
||
|
||
A log message on the bottom left of the _Remote Bluetooth device selection_
|
||
shows details about the current status of the Bluetooth agent. To
|
||
select another dive computer for download using the "Remote Bluetooth selection dialogue"
|
||
press the three-dots button from the _"Choose Bluetooth download mode"_ option.
|
||
|
||
[icon="images/icons/important.png"]
|
||
[IMPORTANT]
|
||
|
||
*IN CASE OF PROBLEMS*: If the Bluetooth adapter from the _Subsurface_ computer
|
||
gets stuck and the _Download_ process fails repeatedly,
|
||
_unpair_ the devices and then repeat the above steps. If this is not successful,
|
||
xref:S_HowFindBluetoothDeviceName[_Appendix A_] contains
|
||
information for manually setting up and inspecting the Bluetooth connection
|
||
with _Subsurface_.
|
||
|
||
|
||
[[S_DeviceNames]]
|
||
==== Changing the name of a dive computer
|
||
|
||
It may be necessary to distinguish between different dive computers used to
|
||
upload dive logs to _Subsurface_. For instance if a buddy’s dive computer is the
|
||
same make and model as your own and dive logs are uploaded from both dive computers
|
||
to the same _Subsurface_ computer, then
|
||
you might like to call one "Alice's Suunto D4" and the other
|
||
"Bob's Suunto D4". Alternatively, consider a technical diver who dives with two or more
|
||
dive computers of the same model, the logs of both (or all) being uploaded.
|
||
In this case it might be prudent to call one of them
|
||
"Suunto D4 (1)" and another "Suunto D4 (2)". This is easily done in _Subsurface_.
|
||
On the *Main Menu*, select _Log -> Edit device names_. A dialog box opens, showing the
|
||
current Model, ID and Nickname of the dive computers used for upload. Edit the Nickname
|
||
field for the appropriate dive computer. After saving the Nickname, the dive logs
|
||
show the nickname for that particular device instead of the model name,
|
||
allowing easy identification of devices.
|
||
|
||
[[S_EditDiveInfo]]
|
||
==== Updating the dive information imported from the dive computer.
|
||
|
||
With the uploaded dives in the *Dive List*, the information from the dive
|
||
computer is not complete and more details must be added to have
|
||
a full record of the dives. To do this,
|
||
the *Notes* and the *Equipment* tabs on the top left hand of the
|
||
_Subsurface_ window should be used.
|
||
|
||
[[S_Notes_dc]]
|
||
===== Notes
|
||
|
||
To have a more complete dive record, the user needs to add
|
||
additional information by hand. The procedure
|
||
below is virtually identical for hand-entered dives and for dives downloaded from a dive computer.
|
||
|
||
In some cases,
|
||
you must provide the date and time of the dive, for example when entering a dive by hand or when a
|
||
dive computer doesn’t provide the date and time of the dive.
|
||
(Usually the date and time of the dive, gas mixture and water temperature are
|
||
shown as obtained from the dive computer)
|
||
If the contents of the *Notes tab* is changed or edited in any way, the message in a blue box at
|
||
the top of the panel shows the dive is being edited. If you
|
||
click on the *Notes* tab, the following fields are
|
||
visible (left hand image, below):
|
||
|
||
image::images/AddDive3_f22.jpg["FIGURE: The Notes tab",align="center"]
|
||
|
||
The right hand image, above, shows a *Notes tab* filled with dive information.
|
||
The *Time* field reflects the date and time of the dive. By clicking
|
||
the date, a calendar is displayed from which
|
||
you can choose the correct date. Press ESC to close the calendar.
|
||
The time values (hour and minutes) can also be
|
||
edited directly by clicking on each of them in the text box and by over-typing the
|
||
information displayed.
|
||
|
||
*Air/water temperatures*: Air and water temperatures during the dive are shown
|
||
in text boxes to the right of the Start time. Many dive computers supply water
|
||
temperature information and this box may have information.
|
||
If air temperature isn’t provided by the dive computer, the first temperature reading
|
||
might be used for the air temperature. Generally this is close to the real air temperature.
|
||
If editing is required, only a value is required, the units of temperature will be
|
||
automatically supplied by
|
||
_Subsurface_ (following the _Preferences_, metric or imperial units will
|
||
be used).
|
||
|
||
*Location*:
|
||
[icon="images/icons/warning2.png"]
|
||
[WARNING]
|
||
Dive locations are managed as a *separate* part of the dive log.
|
||
The dive information in the *Notes* and *Equipment* tabs can therefore NOT be edited at the same
|
||
time as the dive site information. Save all the other dive information (e.g.
|
||
divemaster, buddy, protective gear, notes about the dive) by selecting _Apply changes_ on the
|
||
*Notes* tab BEFORE editing the dive site information. Then supply a dive site name in the
|
||
textbox labelled _Location_ on the *Notes* tab.
|
||
|
||
Type in the name of the dive site, e.g. "Tihany, Lake Balaton, Hungary".
|
||
If several dives are
|
||
made at the same location, the site information for the first dive is re-used.
|
||
Existing dive locations
|
||
can be edited by selecting (on the *Dive List* panel) a dive done at that site
|
||
and by opening the location information. Click the globe button on the
|
||
right of the location name (see image on the right, above). When entering a dive location name, auto location of
|
||
dive site names makes it easy to select an existing dive site name.
|
||
When typing the name of a dive site,
|
||
a dropdown list appears showing all sites with similar names. If the dive
|
||
site has been used before, click on the already-existing name.
|
||
The dive site names in the dropdown list contain either a globe symbol (indicating
|
||
existing dive sites in the _Subsurface_ database)
|
||
or a *+* symbol (indicating dive site names that appear consistent with the
|
||
current dive site name but which haven’t been added to the dive site database).
|
||
If the present
|
||
dive site has not been used before, a message appears as follows (image *A* below):
|
||
|
||
image::images/Locations1_f22.jpg["FIGURE:Location description panel",align="center"]
|
||
|
||
Doubleclick on the new dive site name. A panel appears to enter the coordinates and
|
||
other information about the site (image *B*, above). The most important
|
||
items are the coordinates of the site. There are three ways to specify coordinates:
|
||
|
||
a. Use the world map in the bottom right hand part
|
||
of the _Subsurface_ window. The map displays an orange bar indicating "No location
|
||
data - Move the map and double-click to set the dive location". Doubleclick
|
||
at the appropriate place, and the orange bar disappears and the coordinates are
|
||
stored.
|
||
|
||
b. Use the _Subsurface_ Companion app if you
|
||
have an Android or iPhone device with GPS and if the dive site coordinates
|
||
were stored using it.
|
||
xref:S_Companion[Click here for more information]
|
||
c. Enter by hand if the coordinates are known, using one of
|
||
four formats with latitude followed by longitude:
|
||
|
||
ISO 6709 Annex D format e.g. 30°13'28.9"N 30°49'1.5"E
|
||
Degrees and decimal minutes, e.g. N30° 13.49760' , E30° 49.30788'
|
||
Degrees minutes seconds, e.g. N30° 13' 29.8" , E30° 49' 1.5"
|
||
Decimal degrees, e.g. 30.22496 , 30.821798
|
||
|
||
Southern hemisphere latitudes are given with a *S*, e.g. S30°, or with a
|
||
negative value, e.g. -30.22496. Similarly western longitudes are given with a
|
||
*W*, e.g. W07°, or with a negative value, e.g. -7.34323. Some keyboards
|
||
don't have the degree sign (°). It can be replaced by a *d* like this: N30d W20d.
|
||
If both a dive site name and coordinates have been provided, save the
|
||
dive site information by selecting the button _Apply changes_ at the top of
|
||
the panel.
|
||
|
||
*Important*: GPS coordinates of a dive site are linked to the location
|
||
name - so *saving* a dive site with only coordinates and no name
|
||
causes problems. (Subsurface will think all of these
|
||
dives have the same location and try to keep their GPS coordinates the
|
||
same).
|
||
|
||
*Dive site name lookup:* If coordinates have been typed into the appropriate
|
||
text box, you can do an automated name lookup based on the coordinates.
|
||
This is done when _Subsurface_ uses the Internet to find the name of the dive site
|
||
based on the coordinates that were typed. If a name has been found, it is
|
||
automatically inserted into the tags box. The list box
|
||
(Titled _Dive sites on same coordinates_") at the bottom
|
||
of the dive site panel contains the names of other dives sites used at the
|
||
current location. For instance if the dive site is "Blue Hole" and there are several
|
||
sites named "Blue Hole", all of them are listed.
|
||
|
||
Enter any other contextual information about the dive site (Description and Notes),
|
||
then select _Apply Changes_ to save the geolocation for this dive site.
|
||
The dive site information can later be edited by clicking the globe icon to the right of the
|
||
dive site name in the *Notes tab*.
|
||
|
||
*Dive mode*: This is a dropdown box allowing you to choose the type of dive
|
||
performed. The options are OC (Open Circuit SCUBA, the default setting, for most recreational dives),
|
||
Freedive (dive without SCUBA equipment), CCR (Closed-circuit
|
||
rebreather) and pSCR (Passive semi-closed rebreather).
|
||
|
||
*Divemaster*: The name of the divemaster or dive guide should be
|
||
entered in this field
|
||
which offers auto selection based on the list of dive masters in
|
||
the current logbook.
|
||
|
||
*Buddy*: In this field, enter the name(s) of the buddy or buddies
|
||
(separated with commas) who were on the
|
||
dive. Auto selection based on the list of buddies in the current logbook is
|
||
offered.
|
||
|
||
*Suit*: Here the type of dive suit used can be entered.
|
||
Auto selection of the suit description is available.
|
||
Some dry-suit users may choose to use this field to record what combination of
|
||
suit and thermal under suit was used.
|
||
|
||
*Rating*: You can provide a subjective overall rating of the dive on a
|
||
5-point scale by clicking the appropriate star on the rating scale.
|
||
|
||
*Visibility*: You can provide a rating of visibility during the
|
||
dive on a
|
||
5-point scale by clicking the appropriate star.
|
||
|
||
*Tags*: Tags that describe the type of dive done can be entered
|
||
here (separated by commas). Examples of common tags are boat, drift, training,
|
||
cave, etc.
|
||
_Subsurface_ has many built-in tags. If you starts typing a tag, the
|
||
program
|
||
will list the tags that correspond to the typing. For instance, by typing
|
||
+cav+, the tags *cave* and *cavern* are shown to choose from.
|
||
|
||
*Notes*: Any additional information for the dive can be entered here.
|
||
|
||
The _Apply changes_ and _Discard changes_ buttons are used to save all the information for tabs
|
||
in the *Info* panel and in the *Dive Profile* panel. Use them
|
||
when *ALL* other information has been added. The image xref:S_Notes_dc[at the beginning of this section]
|
||
shows an example of a *Notes tab* after completing the dive information.
|
||
|
||
===== Equipment
|
||
|
||
The Equipment tab lets you enter information about the type of
|
||
cylinder and gas used, as well as the weights used for the dive. The
|
||
message in the blue box at the top of the panel:
|
||
|
||
image::images/BlueEditBar_f22.jpg["FIGURE: Blue edit bar",align="center"]
|
||
|
||
shows the dive is being edited. This is a highly interactive part of
|
||
_Subsurface_ and the information on
|
||
cylinders and gases (entered here) determines the behavior of the *Dive profile*
|
||
(top right-hand panel).
|
||
|
||
[[cylinder_definitions]]
|
||
*Cylinders*: The cylinder information is entered through a dialogue that looks
|
||
like this:
|
||
|
||
image::images/DC_gas-dialogue1_f20.jpg["FIGURE: Initial cylinder dialogue",align="center"]
|
||
|
||
For hand-entered dives, this information needs to be typed in. For dive computers,
|
||
_Subsurface_ often gets the gas used from the dive computer and
|
||
automatically inserts the gas composition(% oxygen or % helium) in the table. The + button
|
||
at the top right lets you add more cylinders for this dive. The dark
|
||
dust bin icon on the left lets you delete information for a cylinder.
|
||
Note that it is not possible to delete a cylinder if it is used during the
|
||
dive. A cylinder might be implicitly used in the dive, even without a gas change event.
|
||
Start by selecting a cylinder type on the left-hand side of the
|
||
table. To select a cylinder, the _Type_ box should be clicked. This
|
||
brings up a list button that can be used to display a dropdown list of
|
||
cylinders:
|
||
|
||
image::images/DC_gas-dialogue2_f20.jpg["FIGURE: The cylinder drop-down list button",align="center"]
|
||
|
||
The drop-down list can then be used to select the cylinder type that was used
|
||
for this dive, or just start typing in the box which shows the available
|
||
options for the entered characters. The
|
||
*Size* of the cylinder as well as its working pressure (_Work.press_) will
|
||
automatically be shown in the dialogue.
|
||
|
||
Next, indicate the starting pressure and the ending pressure of the
|
||
specified gas during the dive. The unit of pressure (metric/imperial)
|
||
corresponds to the settings chosen in the _Preferences_.
|
||
|
||
Finally, provide the gas mixture used. If air was used, the
|
||
value of 21% can be entered or this field can be left blank. If nitrox or
|
||
trimix were used, their percentages of oxygen and/or helium should be entered.
|
||
Any inappropriate fields should be left empty. After typing the
|
||
information for the cylinder, save the data
|
||
either by pressing _ENTER_ on the keyboard or by clicking outside the cell
|
||
containing
|
||
the cursor. Information for any additional cylinders can be added by using the +
|
||
button at the top right hand. The following is an example of a complete description
|
||
for a dive using two cylinders (air and EAN50):
|
||
|
||
image::images/CylinderDataEntry3_f20.jpg["FIGURE: a completed cylinder dive information table",align="center"]
|
||
|
||
*Weights*: Information about the weight system used can be entered
|
||
using a dialogue similar to that of the cylinder information. If you
|
||
click
|
||
the + button on the top right of the weights dialogue, the table looks like
|
||
this:
|
||
|
||
image::images/WeightsDataEntry1_f20.jpg["FIGURE:The Weights dialogue",align="center"]
|
||
|
||
By clicking on the _Type_ field, a drop-down list becomes accessible through a
|
||
down-arrow:
|
||
|
||
image::images/WeightsDataEntry2_f20.jpg["FIGURE:Weights type drop-down list button",align="center"]
|
||
This can be used to select the type of weight system
|
||
used during the dive or just may start typing in the box
|
||
to specify a different weighting mechanism that will be saved by _Subsurface_.
|
||
In the *Weight*
|
||
field, type in the amount of weight used during the dive. After
|
||
specifying the weight
|
||
system, save the data by pressing _ENTER_ on the keyboard or by clicking outside the
|
||
cell with the cursor.
|
||
It’s possible to enter information for more than one weight system by adding
|
||
an additional system
|
||
using the + button on the top right hand. Weight systems can be deleted using
|
||
the dust bin icon on the left hand. Here is an example of information for a dive
|
||
with two types of weights: integrated as well as a weight belt:
|
||
|
||
image::images/WeightsDataEntry3_f20.jpg["FIGURE: A completed weights information table",align="center"]
|
||
|
||
==== Editing several selected dives simultaneously
|
||
|
||
_METHOD 1_: After uploading dives from
|
||
a dive computer, the dive profiles of each is shown in the *Dive profile* tab, as well
|
||
as a few items of information
|
||
in the *Notes* tab (e.g. water temperature) and in the *Equipment* tab (e.g. gas pressures
|
||
and gas composition). Other fields remain empty.
|
||
It may be useful to simultaneously edit some of the
|
||
fields in the *Notes* and *Equipment* tabs. For instance, it’s possible
|
||
that a diver performed several dives during a single day, using identical equipment at the same
|
||
dive site, or with the same divemaster and/or buddy or tags. Instead
|
||
of completing the information for each
|
||
dive separately, select all the dives for that day in the *Dive List* and
|
||
insert the same information in the *Notes* and *Equipment* fields that need
|
||
identical information. This is done by editing the dive notes or the equipment for any one
|
||
of the selected dives.
|
||
|
||
Simultaneous editing only works with fields that do not already contain information.
|
||
This means if some fields have been edited for a particular dive among the selected dives,
|
||
these are not changed while
|
||
editing the dives simultaneously. Technically, the rule for editing several dives simultaneously is:
|
||
if the data field being edited contains _exactly the same information_ for all the dives that have been
|
||
selected, the new, edited information is substituted for all the selected dives. Otherwise only the
|
||
edited dive is
|
||
changed, even though several dives have been selected in the *Dive List*. This speeds
|
||
up the completion of the dive log after several similar dives.
|
||
|
||
[[S_CopyComponents]]
|
||
_METHOD 2_:There is a different way of achieving the same goal. Select a dive with all the appropriate information
|
||
typed into the *Notes* and *Equipment* tabs. Then, from the main menu, select _Log -> Copy dive components_.
|
||
A box is presented with a selection of check boxes for most of the fields in the *Notes* and *Equipment* tabs.
|
||
Select the fields to be copied from the currently selected dive, then select _OK_. Now, in the *Dive List*,
|
||
select the dives
|
||
into which this information is to be pasted. Then, from the main menu, select _Log -> Paste dive components_.
|
||
All the selected dives now contain the data initially selected in the original source dive log.
|
||
|
||
==== Adding Bookmarks to a dive
|
||
|
||
Many divers wish to annotate dives with text that indicate particular events,
|
||
e.g. "Saw dolphins", or "Released surface buoy". This is easily
|
||
done:
|
||
|
||
- Right-click at the appropriate point on the dive profile.
|
||
This brings up the dive profile context menu. Select _Add bookmark_. A red flag is
|
||
placed on the dive profile at that point (see *A* below).
|
||
|
||
- Right-click on the red flag. This brings up the context menu (see *B* below). Select _Edit name_.
|
||
|
||
- A text box is shown. Type the explanatory text for the bookmark (see *C* below). Select _OK_.
|
||
This saves the text associated with the bookmark.
|
||
|
||
- Hovering the mouse over the red bookmark, the appropriate text is shown at
|
||
the bottom of the information box (see *D* below).
|
||
|
||
image::images/Bookmarks.jpg["FIGURE: Bookmark dialog",align="center"]
|
||
|
||
|
||
==== Saving the updated dive information
|
||
|
||
The information entered in the *Notes* tab and the *Equipment* tab can be
|
||
saved by using the
|
||
two buttons on the top right hand of the *Notes* tab. If the _Apply changes_ button
|
||
is clicked,
|
||
the dive data are saved in the memory image of the dive. If the _Discard changes_
|
||
button is clicked, the newly entered dive data are
|
||
erased from the computer memory, although the dive profile is
|
||
retained. When the user exits _Subsurface_ there is a final prompt to confirm
|
||
the new data should now be saved permanently on the computer disk.
|
||
|
||
=== Importing dive information from other digital data sources or other data formats
|
||
|
||
[[S_ImportingAlienDiveLogs]]
|
||
|
||
If you’ve been diving for some time, it’s possible several dives were
|
||
logged using other dive log software. These dive logs can probably be
|
||
imported into _Subsurface_. _Subsurface_ will import dive logs from a range of
|
||
other
|
||
dive log software. While some software is supported natively, for
|
||
others you will need to
|
||
export the logbook(s) to an intermediate format so they can then be imported
|
||
by _Subsurface_.
|
||
Currently, _Subsurface_ supports importing CSV log files from several sources.
|
||
APD LogViewer, XP5, Sensus and Seabear files are
|
||
preconfigured, but because the import is flexible, users can configure their own
|
||
imports.
|
||
Manually kept log files (e.g. a spreadsheet) can also be imported by
|
||
configuring the CSV import.
|
||
_Subsurface_ can also import UDDF and UDCF files used by some dive log
|
||
software and some dive computers, like the Heinrichs & Weikamp DR5. Finally,
|
||
for some dive log software like Mares Dive Organizer we currently recommend you
|
||
import the logbooks first into a web service like _divelogs.de_ and then import
|
||
from there with
|
||
_Subsurface_. Divelogs.de supports a few additional logbook formats that
|
||
_Subsurface_ currently cannot handle.
|
||
|
||
If the format of other software is supported natively on Subsurface, select
|
||
either _Import -> Import log files_ or _File -> Open log file_. _Subsurface_ supports the data formats
|
||
of many dive computers, including Suunto and Shearwater. When importing dives, _Subsurface_
|
||
tries to detect multiple records for
|
||
the same dive and merges the information as best as it can. If
|
||
there are no time zone issues (or other reasons that would cause the
|
||
beginning time of the dives to be significantly different) _Subsurface_
|
||
will not create duplicate entries. Below is more specific information
|
||
to import data to _Subsurface_.
|
||
==== Using the universal import dialogue
|
||
[[Unified_import]]
|
||
|
||
Importing dives from other software is done through a universal interface
|
||
activated by selecting _Import_ from the Main Menu, then clicking on
|
||
_Import Log Files_. This brings up dialogue *A*, below.
|
||
|
||
image::images/Import1_f20.jpg["FIGURE: Import dialogue: step 1",align="center"]
|
||
|
||
Towards the bottom right is a dropdown selector with a default label
|
||
of _Dive Log Files_ which accesses different types of direct imports
|
||
available, as in dialogue *B*, above. Currently these are:
|
||
|
||
- XML-formatted dive logs (DivingLog 5.0, MacDive and several other dive log systems)
|
||
- Cochran dive logs
|
||
- UDDF-formatted dive logs (e.g. Kenozoooid)
|
||
- UDCF-formatted dive logs
|
||
- Poseidon MkVI CCR logs
|
||
- APD Inspiration/Evolution CCR logs
|
||
- LiquiVision logs
|
||
- divelog.de logs
|
||
- OSTC Tools logs
|
||
- JDiveLog
|
||
- Suunto Dive Manager (DM3 and DM4)
|
||
- CSV (text-based and spreadsheet-based) dive logs, including APD CCR logs
|
||
|
||
Selecting the appropriate format and then the specific log file in the large window
|
||
containing the file list on the right of the dialogue, opens
|
||
the imported dive log in the _Subsurface_ *Dive List*. Some other formats not
|
||
accessible through the Import dialogue are also supported, as explained below.
|
||
|
||
==== Importing from OSTCTools
|
||
|
||
_OSTC Tools_ is a Microsoft-based suite of dive download and dive management tools for the OSTC
|
||
family of dive computers. _OSTC Tools_ downloads dive data from the dive computer and stores it
|
||
as a binary file with file extension _.dive_ . Subsurface can directly import these files when using
|
||
the universal import dialogue. From the dropdown list at the bottom right select
|
||
_OSTCTools Files (.dive .DIVE)_. This makes the _OSTC Tools_ dive logs visible in the file list
|
||
panel. Select one or more dive, then click the _Open_ button. The OSTC dives are shown in the
|
||
*Dive List* panel.
|
||
|
||
All H&W devices supported by OSTCTools can be imported to _Subsurface_. This includes
|
||
OSTC, OSTC Mk2, OSTC 2N/2C, OSTC3, OSTC Sport, and probably although untested, Frog, OSTC2 and
|
||
OSTC CR.
|
||
|
||
Please remember that OSTCTools is *not* a true diving log software, but rather a useful set of tools
|
||
for analysis and management of OSTC devices. Only raw dive computer data will be
|
||
imported to _Subsurface_; you have to manually complete the rest of the
|
||
data you want (buddies, equipment, notes, etc).
|
||
|
||
|
||
==== Importing from Mares Dive Organizer V2.1
|
||
|
||
Since Mares uses proprietary Windows software not compatible with
|
||
multi-platform applications, these dive logs cannot be
|
||
directly imported into
|
||
_Subsurface_. Mares dive logs need to be imported using a three-step process,
|
||
using _www.divelogs.de_ as a gateway to extract the dive log information.
|
||
|
||
1. Export the dive log data from Mares Dive Organizer to your
|
||
desktop, using
|
||
a _.sdf_ file name extension. Refer to xref:Mares_Export[Appendix C] for more
|
||
information.
|
||
2. Data should then be imported into _www.divelogs.de_. You will first need to create a user
|
||
account in
|
||
_www.divelogs.de_. Log into that web site, then
|
||
select _Import Logbook -> Dive Organizer from the menu on the left hand side.
|
||
The instructions must be carefully followed to transfer the dive information
|
||
(in _.sdf_ format) from the Dive Organizer database to _www.divelogs.de_.
|
||
3. Finally, import the dives
|
||
from _divelogs.de_ to _Subsurface_, using the instructions below.
|
||
|
||
|
||
[[S_ImportingDivelogsDe]]
|
||
==== Importing dives from *divelogs.de*
|
||
|
||
Importing dive information from _divelogs.de_ is simple, using a single
|
||
dialogue box. The _Import -> Import from Divelogs.de_ option should be selected
|
||
from the Main Menu. This
|
||
brings up a dialogue box (see image *A* below). Enter a
|
||
user-ID and password for _divelogs.de_ and then
|
||
select
|
||
the _Download_ button. Download from _divelogs.de_ starts immediately,
|
||
displaying a progress bar in the dialogue box. At the end of the download, the
|
||
success status is shown (see image *B*, below). The
|
||
_Apply_ button should then be selected, after which the imported dives appear in the
|
||
_Subsurface_ *Dive List* panel.
|
||
|
||
image::images/Divelogs1.jpg["FIGURE:Download from Divelogs.de",align="center"]
|
||
|
||
[[S_ImportingCSVData]]
|
||
==== Importing data in CSV format
|
||
|
||
A comma-separated file (.csv) can be used to import dive information either as dive profiles
|
||
(as in the case of the APD Inspiration and Evolution closed circuit rebreathers) or as dive
|
||
metadata (in case the user keeps dive data in a spreadsheet). The _CSV_ format is a universal
|
||
simplified format that allows easy information exchange between different computers or
|
||
software packages. For an introduction to CSV-formatted files see xref:S_CSV_Intro[A Diver's
|
||
Introduction To CSV Files]. _Subsurface_ dive logs can also be exported in _CSV_ format to
|
||
other software that reads this format. See xref:S_Appendix_D[APPENDIX D: Exporting a spreadsheet
|
||
to CSV format] for information that may be helpful for importing spreadsheet-based data
|
||
into _Subsurface_.
|
||
|
||
[[S_ImportingCSVDives]]
|
||
===== Importing dives in CSV format from dive computers or other dive log software
|
||
|
||
You can view a _CSV_ file by using an ordinary text editor. It’s normally organized into
|
||
a single line that provides the headers (or _field names_ or _column headings_) of the data
|
||
columns, followed by the data, one record per line.
|
||
|
||
There are two types of _CSV_ dive logs that can be imported into _Subsurface_:
|
||
|
||
1. _CSV dive details_: This dive log format contains similar information to that of a
|
||
typical written dive log, e.g. dive date and time, dive depth, dive duration, names of
|
||
buddy and divemaster and information about cylinder pressures before and
|
||
after the dive, as well as comments about the dive. All the data for a single
|
||
dive go on a single line of text, following the order of the column headings.
|
||
|
||
2. _CSV dive profile_: This dive log format includes much more information about a single
|
||
dive. For instance there may be information at 30-second intervals, indicating depth, water
|
||
temperature, and cylinder pressure at that moment in time. Each line contains
|
||
the information for a single instant in time during the dive, 30 seconds after that
|
||
of the previous instant. Many lines
|
||
are required to complete the depth profile information for a single dive. This is a common
|
||
export format used by closed-circuit rebreather (CCR) dive equipment and many software
|
||
packages that handle dive computer data and/or dive logs.
|
||
|
||
Before being able to import the _CSV_ data to _Subsurface_ *you needs to know a few
|
||
things about the data being imported*:
|
||
|
||
a. Which character separates the different columns within a single line of
|
||
data? This field separator should be either a comma (,) a semicolon (;) or a TAB character.
|
||
This can be determined by opening the file with a text editor. If it is
|
||
comma-delimited or semicolon-delimited, the comma or semicolon
|
||
characters between the values are clearly visible. If these are not evident and
|
||
the numbers are aligned in columns,
|
||
the file is probably TAB-delimited (i.e. it uses a TAB as a field separator).
|
||
|
||
b. Which data columns need to be imported into _Subsurface_? Is it a _CSV dive details_
|
||
file or a _CSV dive profile_ file? Open the file using a text editor and note
|
||
the titles of the columns to be imported and their column positions.
|
||
|
||
c. Is the numeric information (e.g. dive depth) in metric or in imperial units?
|
||
|
||
With this information, importing the data into _Subsurface_ is
|
||
straightforward. Select
|
||
_Import -> Import Log Files_ from the main menu. In the resulting file
|
||
selection menu, select _CSV files_ (towards the bottom right). This shows all .CSV files in the selected
|
||
directory. Select the file that needs to be imported. A configuration panel
|
||
appears as depicted below:
|
||
|
||
image::images/csv_import1_f20.jpg["FIGURE: CSV download dialogue 1",align="center"]
|
||
|
||
At the top left, there is a dropdown list containing pre- configured
|
||
settings for common dive computers and software packages.
|
||
If the _CSV_ file being imported originated from any of
|
||
these pre-configured items, select it. Otherwise use the _Manual Import_
|
||
option. The configuration panel also has dropdown lists for the specification of the appropriate
|
||
field separator (Tab, comma or semicolon), the date format used in the _CSV_ file,
|
||
the time units (seconds, minutes or minutes:seconds), as well as the unit system
|
||
(metric or imperial). Selecting the appropriate options among these is critical for
|
||
the successful data import.
|
||
|
||
Complete this by ensuring that all the data columns have the appropriate
|
||
column headings. The top blue row of the data table contains the column
|
||
headings found in the _CSV_ data file. The blue row of balloons immediately above these
|
||
contains the names understood by _Subsurface_. These balloons can be moved using a drag-and-drop action. For
|
||
instance, _Subsurface_ expects the column heading for Dive number (" # ") to be "Dive # ". If
|
||
the column heading that _Subsurface_ expects is not in the blue row, drag the
|
||
appropriate balloon from the upper area and drop it in the appropriate blue
|
||
cell at the top of the table. To indicate the correct column for "Dive #", drag
|
||
the ballooned item labelled "Dive # " and drop it in the blue
|
||
cell immediately above the white cell containing " # ". This is depicted in
|
||
the image below.
|
||
|
||
image::images/csv_import2_f20.jpg["FIGURE: CSV download dialogue 2",align="center"]
|
||
|
||
Continue in this way to ensure all the column headings in the blue row of
|
||
cells correspond to the headings listed in the top part of the dialogue.
|
||
When finished, select the _OK_ button on the bottom right of the dialogue.
|
||
The data from the _CSV_ file are imported and shown in the *Dive List* panel.
|
||
|
||
[[S_CSV_Intro]]
|
||
****
|
||
*A Diver's Introduction to _CSV_ Files*
|
||
[icon="images/icons/important.png"]
|
||
[IMPORTANT]
|
||
|
||
_CSV_ is an abbreviation for a data file format: _Comma-Separated Values_. It is a
|
||
file format that lets you view or edit information using a text editor like
|
||
Notepad (Windows), gedit (Linux) or TextWrangler (OS/X). There are two main advantages of
|
||
the _CSV_ format. First, the data are easily editable as text without any proprietary software.
|
||
Second, all information is human-readable, not obscured by any custom or
|
||
proprietary attributes that proprietary software inserts into files.
|
||
Because of its simplicity the _CSV_ format is used
|
||
as an interchange format between many software packages, e.g. between
|
||
spreadsheet, statistical, graphics, database and diving software. Within _Subsurface_, _CSV_ files can also
|
||
be used to import information from other sources like spreadsheet-based dive logs and
|
||
some dive computers.
|
||
|
||
_CSV_ files can be created or edited with a normal text editor. The most important attribute of a
|
||
_CSV_ file is the _field separator_, the character used to separate fields within a single line. The
|
||
field separator is frequently a comma, a colon, a SPACE character or a TAB character. When exporting data from
|
||
spreadsheet software, the field separator needs to be specified in order to create the _CSV_ file. _CSV_ files are
|
||
normally organized into a single line that provides the headers (or _field names_) of the data columns,
|
||
followed by the data, one record per line. Note that each field name
|
||
may comprise more than one word separated by spaces; for instance _Dive site_, below. Here is an example of
|
||
dive information for four dives using a comma as a field separator:
|
||
|
||
Dive site,Dive date,Time,Dive_duration, Dive_depth,Dive buddy
|
||
Illovo Beach,2012-11-23,10:45,46:15,18.4,John Smith
|
||
Key Largo,2012-11-24,09:12,34:15,20.4,Jason McDonald
|
||
Wismar Baltic,2012-12-01,10:13,35:27,15.4,Dieter Albrecht
|
||
Pulau Weh,2012-12-20,09:46,55:56,38.6,Karaeng Bontonompo
|
||
|
||
The above data are not easily read by a human. Here is the same information in TAB-delimited format:
|
||
|
||
Dive site Dive date Time Dive_duration Dive_depth Dive buddy
|
||
Illovo Beach 2012-11-23 10:45 46:15 18.4 John Smith
|
||
Key Largo 2012-11-24 09:12 34:15 20.4 Jason McDonald
|
||
Wismar Baltic 2012-12-01 10:13 35:27 15.4 Dieter Albrecht
|
||
Pulau Weh 2012-12-20 09:46 55:56 38.6 Karaeng Bontonompo
|
||
|
||
It is clear why many people prefer the TAB-delimited format to the comma-delimited format. The
|
||
disadvantage is that one cannot see
|
||
the TAB characters. For instance, the space between _Dive_ and _date_ in the top line may be
|
||
a SPACE character or a TAB character (in this case it is a SPACE character: the tabs are before and
|
||
after _Dive date_). If the field names in the first line are long, the alignment with data in the other lines
|
||
cannot be maintained. Here is a highly simplified and shortened TAB-delimited example of a _CSV_ dive log
|
||
from an APD closed-circuit rebreather (CCR) dive computer:
|
||
|
||
Dive Time (s) Depth (m) pO₂ - Setpoint (Bar) pO₂ - C1 Cell 1 (Bar) Ambient temp. (Celsius)
|
||
0 0.0 0.70 0.81 13.1
|
||
0 1.2 0.70 0.71 13.1
|
||
0 0.0 0.70 0.71 13.1
|
||
0 1.2 0.70 0.71 13.2
|
||
0 1.2 0.70 0.71 13.1
|
||
10 1.6 0.70 0.72 12.7
|
||
20 1.6 0.70 0.71 12.6
|
||
30 1.7 0.70 0.71 12.6
|
||
40 1.8 0.70 0.68 12.5
|
||
|
||
When a _CSV_ file is selected for import, _Subsurface_ displays the column headers as well as some of the data
|
||
in the first few lines of the _CSV_ file, making it much easier to work with _CSV_ files.
|
||
_CSV_ files can be used in many contexts for importing data into a _Subsurface_ dive log.
|
||
Knowing a few basic things about the content of the _CSV_ file helps with a smooth import
|
||
of the dives into _Subsurface_.
|
||
|
||
****
|
||
|
||
|
||
[icon="images/icons/important.png"]
|
||
[IMPORTANT]
|
||
But, the _CSV_ import has a couple of caveats. Avoid some special characters
|
||
like ampersand (&), less than (<), greater than (>) and double quotes (") as part
|
||
of the numbers or text within a cell. The
|
||
file should use UTF-8 character set, if using non-ASCII characters. Also the
|
||
size of the _CSV_ file might cause problems. Importing 100 dives at a time
|
||
(_CSV dive details_) works, but larger files might exceed
|
||
the limits of the parser used. When encountering problems with _CSV_ imports, first try with
|
||
a smaller file to make sure everything works.
|
||
|
||
|
||
[[S_Companion]]
|
||
=== Importing GPS coordinates with the _Subsurface Companion App_ for mobile phones
|
||
|
||
Using the *Subsurface Companion App* on an _Android device_ or
|
||
xref:S_iphone[_iPhone_] with GPS, the coordinates
|
||
for the diving
|
||
location can be automatically passed to the _Subsurface_ dive log. The Companion App
|
||
stores dive locations on a dedicated Internet server. _Subsurface_ can collect
|
||
the locations from the server.
|
||
To do this:
|
||
|
||
==== Create a Companion App account
|
||
|
||
- Register on the http://api.hohndel.org/login/[_Subsurface companion web page_].
|
||
A confirmation email with instructions and a personal *DIVERID* will be sent,
|
||
a long number giving you access to the file server and Companion App capabilities.
|
||
|
||
- Download the app from
|
||
https://play.google.com/store/apps/details?id=org.subsurface[Google Play Store]
|
||
or from
|
||
http://f-droid.org/repository/browse/?fdfilter=subsurface&fdid=org.subsurface[F-Droid].
|
||
|
||
==== Using the Subsurface companion app on an Android smartphone
|
||
|
||
On first use the app has three options:
|
||
|
||
* _Create a new account._ Equivalent to registering in the _Subsurface_ companion
|
||
page using an Internet browser. You can request a *DIVERID* using this option,
|
||
but it’s supplied via email and followed up by interaction with the
|
||
http://api.hohndel.org/login/[_Subsurface companion web page_] to
|
||
activate the account.
|
||
|
||
* _Retrieve an account._ If users forget their *DIVERID* they will receive an email
|
||
to recover the number.
|
||
|
||
* _Use an existing account._ Users are prompted for their *DIVERID*. The app saves
|
||
this *DIVERID* and doesn’t ask for it again unless you use the _Disconnect_ menu
|
||
option (see below).
|
||
|
||
[icon="images/icons/important.png"]
|
||
[IMPORTANT]
|
||
In the _Subsurface_ main program, the *DIVERID* should also be entered on the
|
||
Default Preferences
|
||
panel, by selecting _File -> Preferences -> Defaults_ from the main menu
|
||
in _Subsurface_ itself.
|
||
This helps synchronization between _Subsurface_ and the Companion App.
|
||
|
||
===== Creating new dive locations
|
||
|
||
Now you are ready to get a dive position and
|
||
send it to the server. The Android
|
||
display will look like the left hand image (*A*) below, but without any dives.
|
||
|
||
Touch the "+" icon on the top right to add a new dive site, a menu
|
||
shows with 3 options:
|
||
|
||
* Current: A prompt for a place name (or a request to activate the GPS if it is turned
|
||
off) will be displayed, after which the current location is saved.
|
||
|
||
* Use Map: This option lets you fix a position by searching a world map. A
|
||
world map is shown (see *B* below) on which you can show the desired position
|
||
with a _long press_ on the touch
|
||
sensitive screen (if the marked location is wrong, simply choose a new location)
|
||
and select the check symbol in the upper right. A dialog is shown letting you enter the
|
||
name of the dive location and the date and time of the dive (see *C* below). In order to import this
|
||
dive location in _Subsurface_ you should set the time to agree with the time of
|
||
that dive on the dive computer.
|
||
|
||
image::images/Companion_5.jpg["FIGURE: Companion App, add location using map",align="center"]
|
||
|
||
|
||
* Import local GPX file: The android device searches for .gpx files and located
|
||
archives will be shown. The selected .gpx file is opened and the stored
|
||
locations shown. Now select the appropriate locations, then select the
|
||
tab in the upper right, after which the locations will be sent to the web service
|
||
and added to the list on the Android device.
|
||
|
||
===== Dive lists of dive locations
|
||
|
||
The main screen shows a list of dive locations, each with a name, date and
|
||
time (see *A* below). Some locations may have an arrow-up icon over the selection box to the left
|
||
showing they need to be uploaded to the server. You
|
||
can select individual dive locations from the list. A selected location has a
|
||
check mark in the selection box on the left. Group operations (like _Delete_ or _Send_)
|
||
are performed on several selected locations.
|
||
|
||
Dive locations in this list can be viewed in two ways: a list of locations or a
|
||
map showing them. The display mode (List or Map) is changed by
|
||
selecting _Dives_ at the top left of the screen (see *A* below) and then selecting
|
||
the display mode. The display mode can be changed either from the list
|
||
of locations or from the map (see *B* below). If you select a location (on the list
|
||
or on the map), an editing
|
||
panel opens (see *C* below) where the dive description or other details may be changed.
|
||
|
||
image::images/Companion_4.jpg["FIGURE: Companion App, add location using map",align="center"]
|
||
|
||
|
||
When you select a dive (*not* selecting the check box), the
|
||
name given to it, date/time and GPS coordinates will be shown, with two options at the top
|
||
of the screen:
|
||
|
||
- Edit (pencil): Change the text name or other characteristics of the dive location.
|
||
|
||
- Maps: Display a map showing the dive location.
|
||
After editing and saving a dive location (see *C* above),
|
||
upload it to the web
|
||
service, as explained below.
|
||
|
||
===== Uploading dive locations
|
||
|
||
There are several ways to send locations to the server.
|
||
The easiest is simply
|
||
selecting the locations (See *A* below) and then touching the right arrow at the
|
||
top right of the screen.
|
||
|
||
[icon="images/icons/important.png"]
|
||
[IMPORTANT]
|
||
Be careful! The trash icon on the right means exactly what it should;
|
||
it deletes the selected dive location(s).
|
||
|
||
image::images/Companion_1.jpg["FIGURE: Screen shots (A-B) of companion app",align="center"]
|
||
|
||
|
||
After a dive trip using the Companion App, all dive locations are ready to be
|
||
downloaded to a _Subsurface_ dive log (see below).
|
||
|
||
|
||
===== Settings on the Companion App
|
||
|
||
Selecting the _Settings_ menu option results in the right hand image above (*B*).
|
||
|
||
===== Server and account
|
||
|
||
- _Web-service URL._ This is predefined (http://api.hohndel.org/)
|
||
|
||
- _User ID._ The DIVERID obtained by registering as described above. The easiest way to
|
||
get it is to copy and paste from the confirmation email or just type it in.
|
||
===== Synchronisation
|
||
|
||
- _Synchronize on startup_. If selected, dive locations in the Android device and those
|
||
on the web service synchronize each time the app is started.
|
||
|
||
- _Upload new dives._ If selected, each time the user adds a dive location it is
|
||
automatically sent to the server.
|
||
|
||
===== Background service
|
||
Instead of entering an unique dive location, you can leave the service running
|
||
in the background of your Android device, allowing a continuous collection of GPS locations.
|
||
|
||
The settings below define the behavior of the service:
|
||
|
||
- _Min duration._ In minutes. The app will try to get a location every X minutes
|
||
until stopped by the user.
|
||
|
||
- _Min distance._ In meters. Minimum distance between two locations.
|
||
|
||
- _Name template._ The name the app will use when saving the locations.
|
||
|
||
[icon="images/icons/info.jpg"]
|
||
[TIP]
|
||
_How does the background service work?_ Assuming the diver sets 5 minutes and 50
|
||
meters in the settings above, the app will start by recording a location at the current
|
||
location, followed by another one at every 5 minutes *or* every time one moves 50 m
|
||
from previous location.
|
||
If subsequent locations are within a radius of 50 meters from the previous one,
|
||
a new location is not saved. If the diver is not moving, only one location is saved.
|
||
If the diver is moving, a trace of the route is obtained by saving a
|
||
location every 50 meters.
|
||
|
||
===== Other
|
||
|
||
- _Mailing List._ The mail box for _Subsurface_. Users can send an email to the
|
||
Subsurface mailing list.
|
||
|
||
- _Subsurface website._ A link to the URL of Subsurface web
|
||
|
||
- _Version._ Displays the current version of the Companion App.
|
||
|
||
===== Search
|
||
|
||
Search the saved dive locations by name or by date and time.
|
||
|
||
===== Start service
|
||
|
||
Starts the _background service_ following the previously defined settings.
|
||
|
||
===== Disconnect
|
||
|
||
This is admittedly a badly named option that disconnects the app from the server.
|
||
It resets the user ID in the app, showing the first screen where an account
|
||
can be created, retrieve the ID for an existing account or use the users own
|
||
ID. The disconnect option
|
||
is useful if your Android device was used to download the dive locations
|
||
of another registered diver.
|
||
|
||
===== Send all locations
|
||
|
||
This option sends all locations stored in the Android device to the server.
|
||
|
||
[[S_iphone]]
|
||
==== Using the Subsurface companion app on an _iPhone_ to record dive locations
|
||
|
||
The iPhone interface is quite simple. Type the user ID (obtained
|
||
during registration) into the space reserved for it, then select "Dive in"
|
||
(see left part of the image below) and start collecting dive location information.
|
||
|
||
image::images/iphone.jpg["FIGURE: Using iPhone companion application",align="center",width=640]
|
||
|
||
Dives can be added automatically or manually. In manual mode, a dive location or waypoint is added to the GPS input stream. In automatic
|
||
mode, a continuous path of GPS locations is created from which,
|
||
after import, Subsurface can select the appropriate GPS
|
||
locations based on the times of dives. The default mode for the
|
||
_iphone_ is automatic. When adding a dive, the
|
||
location service is started automatically and a red bar appears at the bottom
|
||
of the screen. After the dive, click on the red
|
||
bar to end the location service. While the location
|
||
service is running you can only add dives manually.
|
||
|
||
You can edit the site name afterwards by selecting the dive
|
||
from the dive list and clicking on the site name. There are no other
|
||
editable fields. The dive list is automatically uploaded from the iPhone
|
||
to the web service. There isn’t an option to
|
||
trigger upload manually.
|
||
|
||
|
||
==== Downloading dive locations to the _Subsurface_ divelog
|
||
|
||
Download dive(s) from a dive computer or enter them manually into
|
||
_Subsurface_ before obtaining the GPS coordinates from the server. The download
|
||
dialog can be reached via _Ctrl+G_ or from the _Subsurface_ Main Menu _Import
|
||
-> Import GPS data from Subsurface Service_, resulting in the image on the
|
||
left (*A*), below. On first use the DIVERID text box is blank. Provide a
|
||
DIVERID, then select the _Download_ button to start the download process, after
|
||
which the screen on the right (*B*) below appears:
|
||
|
||
image::images/DownloadGPS.jpg["FIGURE: Downloading Companion app GPS data",align="center"]
|
||
|
||
Note that the _Apply_ button is now active. By clicking on it, you can update the locations
|
||
of the newly entered or uploaded dives in _Subsurface_. That applies the
|
||
coordinates and names entered on the app to all the new dives that match the
|
||
date-times of the uploaded GPS localities. If you have entered the name of the dive
|
||
location in _Subsurface_ before downloading the GPS coordinates, this name will take
|
||
precedence over downloaded one.
|
||
|
||
Since _Subsurface_ matches GPS locations from the Android device and dive information from the
|
||
dive computer based on date-time data, automatic assignment of GPS data to dives depends
|
||
on agreeing date-time information between the two devices. Although _Subsurface_ has
|
||
a wide range tolerance, it may not be able to identify the appropriate dive if there's
|
||
a large difference between the time in the dive computer and that of the Android device.
|
||
That results in no updates.
|
||
|
||
Similar date-times may not always be possible and there may be many reasons for this (e.g. time zones).
|
||
_Subsurface_ may also be unable to decide which is the correct position for a dive (e.g. on repetitive
|
||
dives while running _background service_ there may be several locations that would be
|
||
included in the time range that fit not only the first dive, but one or more subsequent dives as well).
|
||
A workaround to manually edit the date-time of a dive in the _Subsurface_
|
||
Dive List *before* downloading the GPS data and then to change the date-time back again *after*
|
||
downloading GPS data.
|
||
|
||
[icon="images/icons/info.jpg"]
|
||
[NOTE]
|
||
TIPS:
|
||
|
||
- _Background service_ may fill the location list with
|
||
unnecessary locations that don’t correspond to the exact dive point but do correspond to the boat's route.
|
||
Right now, these locations are difficult to delete from the server. In some situations it
|
||
is better to clean up the list on the Android device before sending the dive points to the web
|
||
server by simply deleting the inappropriate locations. This might be necessary, for
|
||
instance, if you want to keep the location list clear to see dives in the web service map display (see above).
|
||
- It may also make sense to give informative names to the locations sent to the web server, or at least
|
||
to use an informative name in the _Name Template_ setting while running the _background service_,
|
||
especially on a dive trip with many dives and dive locations.
|
||
|
||
[[S_LoadImage]]
|
||
=== Adding photographs to dives
|
||
|
||
Many (if not most) divers take a camera with them and take photographs
|
||
during a dive. To match each photograph with a specific
|
||
dive, _Subsurface_ lets you load photos into a dive. Photos are superimposed
|
||
on the dive profile, from where they can be viewed.
|
||
|
||
==== Loading photos and synchronizing between dive computer and camera
|
||
|
||
Left-lick on a dive or on a group of dives on the dive list. Then right-click on this
|
||
dive or group of dives and choose the option _Load Images_:
|
||
|
||
image::images/LoadImage1_f20.jpg["FIGURE: Load images option",align="center"]
|
||
|
||
The system file browser appears. Select the folder and photographs that need
|
||
to be loaded into _Subsurface_ and click the _Open_ button.
|
||
|
||
image::images/LoadImage2_f20.jpg["FIGURE: Load images option",align="center"]
|
||
|
||
This brings up the time synchronization dialog, shown below. But be
|
||
aware that the time
|
||
synchronization is not perfect between the dive computer used during a dive,
|
||
and the camera used during that same dive. These two devices
|
||
often differ by several minutes. If _Subsurface_ can synchronize,
|
||
then the exact times of photographs can be used to position photographs on
|
||
the dive profile.
|
||
|
||
_Subsurface_ synchronizes in three ways:
|
||
|
||
- *Pro-actively*: Before the dive, ensure synchronization of the dive computer time settings with
|
||
the time settings of the camera by changing the date-time settings on one or both of these devices.
|
||
- *Manually*: If you wrote down the exact camera time at the start of a dive, the
|
||
difference in time between the two devices can be determined. As long as the device
|
||
settings for time has not been changed in either device, you could write down the times of
|
||
both devices after the dive or even at the end of the day. You can then manually set the time
|
||
difference in the _Time shift_ dialog. Towards the top of the dialog is a time setting tool
|
||
immediately under the heading _Shift times of image(s) by_, shown in figure *A* below.
|
||
If the camera time is 7 minutes later than that of the dive computer, set the time setting
|
||
tool to a value of 00:07. Select either the _earlier_ or _later_ radio button.
|
||
In the above example, the _earlier_ option is appropriate, since the photos need to be shifted
|
||
7 minutes earlier (camera is 7 minutes ahead of dive computer). Ignore any "AM" or "PM" suffix
|
||
in that tool. Click the _OK_ button and synchronization is done.
|
||
|
||
image::images/LoadImage3b_f20.jpg["FIGURE: Synchronization dialog",align="center"]
|
||
|
||
|
||
- *By photograph*: There is a very slick way of synchronizing. If you take a
|
||
photograph of the face of the dive computer showing the time, then _Subsurface_ can get
|
||
the exact time the photograph was taken, using the metadata the camera stores within
|
||
each photo. To do this, use the bottom half of the _Time shift_ dialog. If you use
|
||
the bottom part, the top part of the dialog is ignored. Click on
|
||
the horizontal bar called "_Select image of dive computer showing time_. This brings up
|
||
a file browser letting you select the photograph of the dive computer time. Select the
|
||
photograph using the file browser and click on _OK_. This photograph of the dive computer
|
||
appears in the bottom panel of the _Shift times_ dialog. Now _Subsurface_ knows exactly
|
||
when the photograph has been taken. Now set the date-time dialog to the left of the photo
|
||
so it reflects the date and time of the dive computer in the photo. When the
|
||
date-time tool has been set, _Subsurface_ knows exactly what the time difference between
|
||
camera and dive computer is, and it can synchronize.
|
||
Image *B* above shows a photograph of the face of the dive computer and with the date-time tool set to the
|
||
date-time.
|
||
|
||
If the timestamp of a photograph is more than 30 minutes before or after the dive, it is not placed on
|
||
the dive profile.
|
||
|
||
==== Viewing the photos
|
||
|
||
After the images have been loaded, they appear in two places:
|
||
|
||
- the _Photos_ tab of the *Notes* panel.
|
||
- as tiny icons (stubs) on the dive profile at the appropriate positions reflecting the time
|
||
each photograph was taken.
|
||
To view the photos on the dive profile, activate the _show-photos_ button in the tool bar
|
||
to the left of the dive profile:
|
||
|
||
image::images/icons/ShowPhotos_f20.png["FIGURE:Show photos toolbar button",align="left"]
|
||
|
||
This results in a profile display as in the image below:
|
||
|
||
image::images/LoadImage4_f20.jpg["FIGURE: Photos on dive profile",align="center"]
|
||
|
||
If you hover the mouse over any of the photo icons, a thumbnail photo
|
||
is shown of the appropriate photo. See the image below:
|
||
|
||
image::images/LoadImage5_f20.jpg["FIGURE:Thumbnail photo on dive profile",align="center"]
|
||
|
||
Clicking on the thumbnail brings up a full size
|
||
photo overlaid on the _Subsurface_ window. This allows good viewing of
|
||
the added photographs. (see the image below). Note that the thumbnail
|
||
has a small dustbin icon in the bottom right hand corner (see image above). Selecting
|
||
the dustbin removes the image from the dive. Be careful
|
||
when clicking on a thumbnail. Images
|
||
can also be deleted using the _Photos_ tab (see text below).
|
||
|
||
image::images/LoadImage6_f20.jpg["FIGURE: Full-screen photo on dive profile",align="center"]
|
||
|
||
==== The _Photos_ tab
|
||
|
||
Photographs associated with a dive are shown as thumbnails in the _Photos_ tab of the _Notes_
|
||
panel. Photos taken in rapid succession during a dive (therefore sometimes with large
|
||
overlap on the dive profile) can easily be accessed in the _Photos_ tab. This tab serves as
|
||
a tool for individually accessing the photos of a dive, while the stubs on the dive profile
|
||
show when during a dive a photo was taken. By single-clicking on a thumbnail in
|
||
the _Photos_ panel, a photo is selected. By double-clicking a thumbnail, the full-sized image is
|
||
shown, overlaying the _Subsurface_ window. A photo can be deleted from the _Photos_ panel by selecting
|
||
it (single-click) and then by pressing the _Del_ key on the keyboard. This removes the photo BOTH
|
||
from the _Photos_ tab as well as the dive profile.
|
||
|
||
==== Photos on an external hard disk
|
||
Most underwater photographers store photos on an external drive. If such a drive can be mapped by the operating system
|
||
(almost always the case) the photos can be directly accessed by _Subsurface_. This eases the interaction
|
||
between _Subsurface_ and an external repository of photos. When associating a dive profile with photos from an
|
||
external drive, the normal procedure of selection and synchronization (see text above) is used.
|
||
After the external drive has been disconnected, _Subsurface_ cannot access these photos any more.
|
||
If the display of photos is activated (using the toolbox to the left of the _Dive Profile_), the
|
||
program only shows a small white dot where each photo should be on the dive profile.
|
||
In addition the _Photos_ tab only shows the file names of the photos.
|
||
If the external drive with the photos is re-connected, the photos can be seen in the normal way.
|
||
|
||
[[S_FindMovedImages]]
|
||
==== Moving photographs among directories, hard disks or computers
|
||
|
||
After a photograph has been loaded into _Subsurface_ and associated with a specific dive, the directory
|
||
where the photo lies is stored, letting _Subsurface_ find the photograph when the dive is
|
||
opened again. If the photo or the whole photo collection is moved to another drive or to a different
|
||
machine, the directory structure will be different to that of the original uploaded
|
||
photo. When this happens, _Subsurface_ looks for the photos at their original location before they were moved,
|
||
cannot find them and cannot display them. Because after moving photos, large numbers of photos
|
||
may need to be deleted and re-imported from the new location, _Subsurface_ has a mechanism that eases the
|
||
process of updating the directory information for each photo: automatic updates using fingerprints.
|
||
|
||
When a photo is loaded into _Subsurface_, a fingerprint for the image is calculated and stored with the
|
||
other reference information for that photo. After moving a photo collection (that has already been loaded
|
||
into _Subsurface_) to a different directory, disk or computer, _Subsurface_ can:
|
||
|
||
- look through a particular directory (and all its subdirectories recursively) where photos have been moved
|
||
to,
|
||
- calculate fingerprints for all photos in this directory, and
|
||
|
||
- if there is a match between a calculated fingerprint and the one originally calculated when a photo was
|
||
loaded into _Subsurface_ (even if the original file name has changed), automatically update the
|
||
directory information so that _Subsurface_ can find the photo in the new moved directory.
|
||
|
||
This is done by selecting from the Main Menu: _File -> Find moved images_. This brings up a window within
|
||
which the NEW directory of the photos needs to be specified. Select the appropriate directory and click
|
||
the _Scan_ button towards the bottom right of the panel. The process may require several minutes to
|
||
complete, after which _Subsurface_ will show the appropriate photographs when a particular dive is opened.
|
||
|
||
|
||
[[Image_fingerprint_upgrade]]
|
||
****
|
||
*Upgrading existing photo collections without fingerprints*
|
||
[icon="images/icons/important.png"]
|
||
[IMPORTANT]
|
||
|
||
_Subsurface_ automatically calculates fingerprints for all images that it can access.
|
||
When manipulating images, be sure all the images associated with the dive log can be accessed by _Subsurface_.
|
||
|
||
_Subsurface_ automatically checks and, if necessary, updates the fingerprints associated with a single dive if:
|
||
- The images associated with that dive are visible as thumbnails on the *Dive Profile*.
|
||
- If you edit anything in the *Notes tab* panel and save the edits by selecting _Apply changes_.
|
||
|
||
****
|
||
|
||
|
||
=== Logging special types of dives
|
||
|
||
[[S_MulticylinderDives]]
|
||
==== Multicylinder dives
|
||
|
||
_Subsurface_ easily handles dives involving more than one cylinder. Multi-cylinder diving usually happens
|
||
(a) if a diver doesn’t have enough gas for the complete dive in a single cylinder; (b) if a diver
|
||
needs more than one gas mixture because of the depth or the decompression needs of the dive. For this reason
|
||
multi-cylinder dives are often used by technical divers who dive deep or long. As far
|
||
as _Subsurface_ is concerned, there are only two types of information that need to be provided:
|
||
|
||
- *Describe the cylinders used during the dive* This is performed in the *Equipment tab* of
|
||
the *Info* panel, as xref:cylinder_definitions[described above]. Enter the cylinders one by one,
|
||
specifying each’s characteristics and the gas composition within it.
|
||
|
||
- *Record the times at which the switch from one cylinder to another was done:* This is information
|
||
tracked by some dive computers (provided the diver indicated these changes to the dive computer
|
||
by pressing specific buttons). If the dive computer does not provide the information, the diver has to
|
||
record these changes using a different method, e.g. writing it on a slate.
|
||
|
||
- *Record the cylinder changes on the dive profile*: If the latter option
|
||
was followed, the diver needs to indicate the gas change event by right-clicking at the appropriate point
|
||
in time on the *Dive Profile* panel and indicating the cylinder to which the change was made. After
|
||
right-clicking, follow the context menu to "Add gas change" and select the appropriate cylinder from
|
||
those defined during the first step, above (see image below). If the
|
||
*tank bar* button in the toolbar has been activated, the cylinder switches are also indicated in the
|
||
tank bar.
|
||
|
||
When this is complete, _Subsurface_ indicates the appropriate use of cylinders in the dive profile.
|
||
Below is a multi-cylinder dive, starting off with EAN28, then changing cylinders to EAN50 after 26 minutes
|
||
for decompression.
|
||
|
||
image::images/multicylinder_dive.jpg["FIGURE: Multicylinder profile",align="center"]
|
||
|
||
==== Sidemount dives
|
||
|
||
Sidemount diving is just another form of multi-cylinder diving, often with both or all cylinders having
|
||
the same gas mixture. Although it’s a popular configuration for cave divers, Sidemount
|
||
diving can be done by recreational divers who’ve completed the appropriate training. sidemount
|
||
dive logging involves three steps, exactly as with multi-cylinder dives above:
|
||
|
||
- *During the dive, record cylinder switch events*. Since sidemount diving normally involves two
|
||
cylinders with air or with the same gas mixture, _Subsurface_ distinguishes between these different
|
||
cylinders. In contrast, many dive computers that allow gas switching only distinguish between different
|
||
_gases_ used, not among different _cylinders_ used. This means when sidemount dives are downloaded
|
||
from these dive computers, the switching event between cylinders with the same gas is not downloaded. This may mean
|
||
that a diver may have to keep a written log of cylinder switch times using a slate, or (if the dive computer
|
||
has the capability) marking each cylinder switch with a bookmark that can be retrieved later. Returning
|
||
from a dive with the times of cylinder changes is the only tricky part of logging sidemount dives.
|
||
- *Within _Subsurface_ describe the cylinders used during the dive*. The diver needs to provide the
|
||
specifications of the different cylinders, using the *Equipment* tab of the *Info Panel* (see
|
||
image below where two 12 litre cylinder were used).
|
||
- *Indicate cylinder change events on the _Subsurface_ dive profile*. Once the dive log has been imported
|
||
from a dive computer into _Subsurface_, the cylinder switch events need to be shown on the dive profile.
|
||
Cylinder changes are recorded by right-clicking at the appropriate point on the dive profile, then
|
||
selecting _Add gas change_. A list of the appropriate cylinders is shown with the
|
||
currently used cylinder greyed out. In the image below Tank 1 is greyed out, leaving only Tank 2
|
||
to be selected. Select the appropriate cylinder. The cylinder change is then shown on the dive
|
||
profile with a cylinder symbol. If the *Tank Bar* is activated using the toolbar to the left of the
|
||
profile, then the cylinder change is also shown on the Tank Bar (see image below). After all
|
||
the cylinder change events have been recorded on the dive profile, the correct cylinder pressures
|
||
for both cylinders are shown on the dive profile, as in the image below.
|
||
|
||
image::images/sidemount1.jpg["FIGURE: Sidemount profile",align="center"]
|
||
|
||
This section gives an example of the versatility of _Subsurface_ as a dive logging tool.
|
||
|
||
|
||
[[S_sSCR_dives]]
|
||
==== Semi-closed circuit rebreather (SCR) dives
|
||
|
||
[icon="images/halcyon_RB80.jpg"]
|
||
[NOTE]
|
||
Passive semi-closed rebreathers (pSCR) are a technical advance in diving equipment that
|
||
recirculates the breathing gas a diver uses, while removing carbon dioxide from
|
||
the exhaled gas. While a small amount (typically a tenth) of the exhaled breathing gas is released into the water,
|
||
a small amount of fresh gas is released from the back gas cylinder (typically containing nitrox).
|
||
A diver using a single cylinder of breathing gas can therefore dive for much longer periods than
|
||
using a recreational open-circuit configuration. With pSCR equipment, a very small amount of breathing
|
||
gas is released every time the diver inhales. With active SCR (aSCR) equipment, in contrast, a small amount of
|
||
breathing gas is released continuously from the back cylinder.
|
||
|
||
To log pSCR dives, no special procedures are required. Use the normal steps outlined above:
|
||
|
||
- Select pSCR in the _Dive Mode_ dropdown list on the *Info* panel.
|
||
|
||
- pSCR diving often involves gas changes, requiring an additional cylinder.
|
||
Define all the appropriate cylinders as described above
|
||
and indicate the cylinder/gas changes as described above in the section on xref:S_MulticylinderDives[multicylinder dives].
|
||
|
||
If a pSCR _Dive Mode_ has been selected, the dive ceiling for that is adjusted for the oxygen
|
||
drop across the mouthpiece, which often requires longer decompression periods. Below is a dive profile
|
||
of a pSCR dive using EAN36 on the back cylinder and oxygen for decompression. Note that this dive lasted
|
||
over two hours.
|
||
|
||
image::images/pSCR_profile.jpg["FIGURE: pSCR profile",align="center"]
|
||
|
||
|
||
|
||
[[S_CCR_dives]]
|
||
==== Closed circuit rebreather (CCR) dives
|
||
|
||
[icon="images/APD.jpg"]
|
||
[NOTE]
|
||
Closed system rebreathers use advanced technology to recirculate
|
||
gas that has been breathed. They also do two things to maintain a
|
||
breathable oxygen concentration:
|
||
a) remove carbon dioxide from the exhaled gas
|
||
b) regulate the oxygen concentration to remain within safe diving limits.
|
||
The CCR interface of _Subsurface_ is currently experimental
|
||
and under active development. Subsurface currently supports Poseidon MkVI
|
||
and APD Discovery/Evolution dive computers. In contrast to a conventional recreational
|
||
dive computer, a CCR system computer does not allow the download of a log
|
||
containing multiple dives. Rather, each dive is stored independently. This
|
||
means that _Subsurface_ cannot download a dive log directly from a CCR
|
||
dive computer, but that it imports CCR dive logs in the same way it
|
||
imports dive log data from other digital databases: one dive at a time.
|
||
|
||
===== Import a CCR dive
|
||
|
||
See the section dealing with xref:S_ImportingAlienDiveLogs[Importing dive information from other
|
||
digital sources]. From the main menu of _Subsurface_, select _Import -> Import
|
||
log files_ to bring up the xref:Unified_import[universal import dialogue]. As
|
||
explained in that section, the bottom right
|
||
hand of the import dialogue contains a dropdown list (labled _Filter:_) of appropriate devices
|
||
that currently include(Poseidon) MkVI or APD log viewer files. Import for other
|
||
CCR equipment is under active development. Having selected the appropriate CCR format and
|
||
the directory where the original dive logs have been stored from the CCR dive
|
||
computer, select a particular dive log file (in the case of the MkVI
|
||
it is a file with a .txt extension). After selecting the appropriate dive log,
|
||
click the _Open_ button at the bottom right hand of the universal import dialogue.
|
||
The selected dive is imported to the _Subsurface_ dive list.
|
||
|
||
===== Displayed information for a CCR dive
|
||
|
||
_Partial pressures of gases_: The graph of oxygen partial pressure shows the
|
||
information from the oxygen sensors of the CCR equipment. In contrast to recreational
|
||
equipment (where pO~2~ values are calculated based on gas composition and dive depth),
|
||
CCR equipment provide actual measurements of pO~2~, derived from oxygen sensors.
|
||
In this case the graph for oxygen partial pressure
|
||
should be fairly flat, reflecting the setpoint settings during the dive. The mean
|
||
pO~2~ is NOT the mean oxygen partial pressure as given by the CCR equipment, but
|
||
a value calculated by _Subsurface_ as follows:
|
||
|
||
- For TWO O~2~ sensors the mean value of the two sensors are given.
|
||
|
||
- For THREE-sensor systems (e.g. APD), the mean value is also used. However
|
||
differences of more than 0,1 bar in the simultaneous readings of different sensors are
|
||
treated as false. If one of the three sensors provides false data, it is ignored.
|
||
|
||
- If no sensor data are available, the pO~2~ value is assumed to be equal to the setpoint.
|
||
|
||
The mean pO~2~ of the sensors is indicated with a green line,
|
||
|
||
The oxygen setpoint values as well as the readings from the individual
|
||
oxygen sensors can be shown. The display of additional CCR information is turned on by
|
||
checking the appropriate boxes in the _Preferences_ panel (accessible by
|
||
selecting xref:S_CCR_options[_File -> Preferences -> Graph_]). This part of
|
||
the _Preferences_ panel is shown in the image below, representing two checkboxes that modify
|
||
the display of pO~2~ when the appropriate toolbar button on the Dive Profile
|
||
has been checked.
|
||
|
||
image::images/CCR_preferences_f20.jpg["FIGURE: CCR preferences panel",align="center"]
|
||
|
||
Checking any of these boxes allows the display of additional oxygen-related
|
||
information whenever the pO~2~ toolbar button on the _Profile_ panel is activated.
|
||
The first checkbox allows the display of setpoint information. This is a red line
|
||
superimposed on the green oxygen partial pressure graph and allows a comparison of the
|
||
mean measured oxygen partial pressure and the setpoint values, as shown below.
|
||
|
||
image::images/CCR_setpoint_f20.jpg["FIGURE: CCR setpoint and po2 graph",align="center"]
|
||
|
||
The second checkbox allows the display of the data from each individual oxygen sensor
|
||
of the CCR equipment. The data for each sensor is colour-coded as follows:
|
||
|
||
- Sensor 1: grey
|
||
- Sensor 2: blue
|
||
- Sensor 3: brown
|
||
|
||
The mean oxygen pO~2~ is indicated by the green line. This allows the direct comparison
|
||
of data from each of the oxygen sensors, useful for detecting abnormally low or erratic
|
||
readings from a particular sensor.
|
||
|
||
image::images/CCR_sensor_data_f20.jpg["FIGURE: CCR sensor data graph",align="center"]
|
||
|
||
The setpoint data can be overlaid on the oxygen sensor data by activating both of the above
|
||
check boxes. Partial pressures for nitrogen (and helium, if applicable) are shown in the
|
||
usual way as for open circuit dives.
|
||
|
||
_Events_: Several events are logged, e.g. switching the mouthpiece to open circuit.
|
||
These events are indicated by yellow triangles and, if one hovers over a triangle,
|
||
a description of that event is given as the bottom line in the xref:S_InfoBox[Information Box].
|
||
|
||
_Cylinder pressures_: Some CCR dive computers like the Poseidon MkVI record the
|
||
pressures of the oxygen and diluent cylinders. The pressures of these two cylinders
|
||
are shown as green lines overlapping the depth profile. In addition, start and
|
||
end pressures for both oxygen and diluent cylinders are shown in the _Equipment Tab_.
|
||
Below is a dive profile for a CCR dive, including an overlay
|
||
of setpoint and oxygen sensor data, as well as the cylinder pressure data. In this
|
||
case there is agreement from the readings of the two oxygen sensors.
|
||
|
||
image::images/CCR_dive_profile_f22.jpg["FIGURE: CCR dive profile",align="center"]
|
||
|
||
_Equipment-specific information_: Equipment-specific information gathered by
|
||
_Subsurface_ is shown in the xref:S_ExtraDataTab[Extra data tab]. This may include setup information
|
||
or metadata about the dive.
|
||
|
||
The deco ceiling calculated by Subsurface is not very accurate because the precise pressure of nitrogen
|
||
in the loop can usually not be determined from the dive log imported from the CCR equipment. Many CCR dive
|
||
computers, however, report an internally-calculated deco ceiling that is reported in the dive log,
|
||
reflecting a more accurate assessment. The display of this ceiling is activated
|
||
by clicking the appropriate button to the left of the dive profile:
|
||
|
||
image::images/icons/cceiling.jpg["DC ceiling icon"]
|
||
|
||
The default color of the computer-generated deco ceiling is white. This can be set to red
|
||
by checking the appropriate check box after selecting _File -> Preferences -> Graph_.
|
||
Below is a dive profile indicating the dive computer-generated deco ceiling:
|
||
|
||
image::images/CCR_dive_ceilingF22.jpg["FIGURE: CCR computer-generated deco ceiling",align="center"]
|
||
|
||
More equipment-specific information for downloading CCR dive logs for
|
||
Poseidon MkVI and APD equipment can be found in xref:_appendix_b_dive_computer_specific_information_for_importing_dive_information[Appendix B].
|
||
|
||
== Obtaining more information about dives entered into the logbook
|
||
|
||
=== The *Info* tab (for individual dives)
|
||
|
||
The Info tab gives some summary information about a particular dive that
|
||
has been selected in the *Dive List*. Useful information here includes the
|
||
surface interval before the dive, the maximum and mean depths of the dive, the
|
||
gas volume consumed, the surface air consumption (SAC) and the number of oxygen
|
||
toxicity units (OTU) incurred.
|
||
|
||
[icon="images/icons/info.jpg"]
|
||
[NOTE]
|
||
Gas consumption and SAC calculations:
|
||
_Subsurface_ calculates SAC and Gas consumption taking in account gas
|
||
incompressibility, particularly at tank pressures above 200 bar, making them more accurate.
|
||
Users should refer to xref:SAC_CALCULATION[Appendix F] for more information.
|
||
|
||
[[S_ExtraDataTab]]
|
||
=== The *Extra Data* tab (usually for individual dives)
|
||
|
||
When using a dive computer, it often reports several data items that cannot easily be
|
||
presented in a standardised way because the nature of the information differs from one
|
||
dive computer to another. These data often comprise setup information, metadata about
|
||
a dive, battery levels, no fly times, or gradient factors used during the dive. When
|
||
possible, this information is presented in the *Extra Data* tab. Below is an
|
||
image showing extra data for a dive using a Poseidon rebreather.
|
||
|
||
image::images/ExtraDataTab_f20.jpg["FIGURE: Extra Data tab",align="center"]
|
||
|
||
=== The *Stats* tab (for groups of dives)
|
||
|
||
The Stats tab gives summary statistics for more than one dive, assuming that
|
||
more than one dive has been selected in the *Dive List* using the standard
|
||
Ctrl-click or Shift-click of the mouse. If only one
|
||
dive has been selected, figures for only that dive are given. This tab
|
||
shows the number of dives selected, the total amount of dive time in these
|
||
dives,
|
||
as well as the minimum, maximum and mean for the dive duration,
|
||
water temperature and surface air consumption (SAC). It also shows the depth of the
|
||
shallowest and deepest dives of those selected.
|
||
|
||
[[S_DiveProfile]]
|
||
=== The *Dive Profile*
|
||
|
||
image::images/Profile2.jpg["Typical dive profile",align="center"]
|
||
|
||
Of all the panels in _Subsurface_, the Dive Profile contains the most detailed
|
||
information about each dive. The Dive Profile has a *button bar* on the left hand side
|
||
that lets you control several display options. The functions of these
|
||
buttons are described below. The main item in the Dive
|
||
Profile is the graph of
|
||
dive depth as a function of time. In addition to
|
||
depth, it also shows the ascent and descent rates compared to the recommended
|
||
speed of going up or down in the water column. This information is given using
|
||
different colors:
|
||
|====================
|
||
|*Color*|*Descent speed (m/min)*|*Ascent speed (m/min)*
|
||
|Red|> 30|> 18
|
||
|Orange|18 - 30|9 - 18
|
||
|Yellow|9 - 18|4 - 9
|
||
|Light green|1.5 - 9|1.5 - 4
|
||
|Dark green|< 1.5|< 1.5
|
||
|=====================
|
||
|
||
The profile also includes depth readings for the peaks and troughs in the graph.
|
||
So users should see the depth of the deepest point and other peaks. Mean depth
|
||
is plotted as a grey line, indicating mean dive depth up to a particular moment during the dive.
|
||
|
||
[icon="images/icons/scale.jpg"]
|
||
[NOTE]
|
||
In some cases the dive profile does not fill the whole area of the *Dive Profile*
|
||
panel. Clicking the *Scale* button in the toolbar on the left of the dive profile
|
||
increases the size of the dive profile to fill the area of the panel.
|
||
|
||
*Water temperature* is displayed with its own blue line with temperature values
|
||
placed adjacent to significant changes.
|
||
|
||
The dive profile can include graphs of the *partial pressures*
|
||
of O~2~, N~2~, and He during the dive (see figure above) as well as a calculated and dive computer
|
||
reported deco ceilings (only visible for deep, long, or repetitive dives).
|
||
Partial pressures of oxygen are indicated in green, nitrogen in black,
|
||
and helium in dark red. These
|
||
partial pressure graphs are shown below the profile data.
|
||
|
||
[icon="images/icons/O2.jpg"]
|
||
[NOTE]
|
||
Clicking this button allows display of the partial pressure of *oxygen* during the
|
||
dive. This is shown below the dive depth and water temperature graphs.
|
||
|
||
[icon="images/icons/N2.jpg"]
|
||
[NOTE]
|
||
Clicking this button allows display of the partial pressure of *nitrogen* during the dive.
|
||
|
||
[icon="images/icons/He.jpg"]
|
||
[NOTE]
|
||
Clicking this button allows display of the partial pressure of *helium* during the dive.
|
||
This is only important to divers using Trimix, Helitrox or similar breathing gasses.
|
||
|
||
The *air consumption* graph displays the tank pressure and its change during the
|
||
dive. The air consumption takes depth into account so that even when manually
|
||
entering the start and end pressures the graph, is not a straight line.
|
||
Like the depth graph, the slope of the tank pressure gives you information
|
||
about the
|
||
momentary SAC rate (Surface Air Consumption) when using an air integrated dive computer.
|
||
Here the color
|
||
coding is not relative to some absolute values but relative to the average
|
||
normalized air consumption during the dive. So areas that are red or orange
|
||
indicate
|
||
times of increased normalized air consumption while dark green reflects times
|
||
when the diver was using less gas than average.
|
||
|
||
[icon="images/icons/Heartbutton.png"]
|
||
[NOTE]
|
||
Clicking on the heart rate button will allow the display of heart rate information
|
||
during the dive if the dive computer was attached to a heart rate sensor.
|
||
|
||
It is possible to *zoom* into the profile graph. This is done either by using
|
||
the scroll wheel / scroll gesture of your mouse or trackpad. By default
|
||
_Subsurface_ always shows a profile area large enough for at least 30 minutes
|
||
and 30m
|
||
(100ft) – this way short or shallow dives are easily recognizable;
|
||
something free divers won’t care about.
|
||
image::images/MeasuringBar.png["FIGURE: Measuring Bar",align="center"]
|
||
|
||
[icon="images/icons/ruler.jpg"]
|
||
[NOTE]
|
||
Measurements of *depth or time differences* can be achieved by using the
|
||
*ruler button* on the left of the dive profile panel.
|
||
The measurement is done by dragging the red dots to the two points
|
||
on the dive profile that you wish to measure. Information is then given
|
||
in the horizontal white area underneath the
|
||
two red dots.
|
||
|
||
[icon="images/icons/ShowPhotos.png"]
|
||
[NOTE]
|
||
Photographs that have been added to a dive can be shown on the profile
|
||
by selecting
|
||
the *Show-photo* button. The position of a photo on the profile
|
||
shows the exact time when this photo was taken. If this button is not active,
|
||
the photos are hidden.
|
||
|
||
|
||
The profile can also include the dive computer reported *ceiling* (more
|
||
precisely, the deepest deco stop that the dive computer calculated for each
|
||
particular moment in time) as a red overlay on the dive profile. Ascent ceilings
|
||
occur when a direct ascent to the surface increases
|
||
the risk of a diver suffering from decompression sickness (DCS) and it is necessary
|
||
to either ascend
|
||
slower or to perform decompression stop(s) before ascending to the surface. Not
|
||
all dive computers record this information and make it available for download;
|
||
for example none of the Suunto dive computers make these data
|
||
available to divelog software. _Subsurface_ also calculates ceilings independently,
|
||
shown as a green overlay on the dive profile.
|
||
Because of the differences in algorithms used
|
||
and amount of data available (and other factors taken into consideration at the time
|
||
of the calculation) it’s unlikely that ceilings from dive computers and from _Subsurface_
|
||
are the same, even if the same algorithm and _gradient factors_ (see below) are used.
|
||
It’s also quite common that _Subsurface_ calculates a ceiling for
|
||
non-decompression dives when the dive computer stayed in non-deco mode during
|
||
the whole dive (represented by the [green]#dark green# section in the profile
|
||
at the beginning of this section). This is because _Subsurface’s_
|
||
calculations describe the deco obligation at each moment during a dive,
|
||
while dive computers usually take the upcoming ascent into account. During the
|
||
ascent some excess nitrogen (and possibly helium) are already breathed off so
|
||
even though the diver technically encountered a ceiling at depth, the dive still does
|
||
not require a specific deco stop. This feature lets dive computers offer
|
||
longer non-stop bottom times.
|
||
|
||
[icon="images/icons/cceiling.jpg"]
|
||
[NOTE]
|
||
If the dive computer itself calculates a ceiling and makes it available to
|
||
_Subsurface_ during upload of dives, this can be
|
||
shown as a red area by checking *Dive computer reported ceiling* button on the Profile Panel.
|
||
|
||
[icon="images/icons/ceiling1.jpg"]
|
||
[NOTE]
|
||
If the *Calculated ceiling* button on the Profile Panel is clicked, then a ceiling,
|
||
calculated by _Subsurface_, is shown in green if it exists for
|
||
a particular dive (*A* in figure below). This setting can be modified in two ways:
|
||
|
||
[icon="images/icons/ceiling2.jpg"]
|
||
[NOTE]
|
||
If, in addition, the *show all tissues* button on the Profile Panel is clicked, the ceiling is shown for the tissue
|
||
compartments following the Bühlmann model (*B* in figure below).
|
||
|
||
[icon="images/icons/ceiling3.jpg"]
|
||
[NOTE]
|
||
If, in addition, the *3m increments* button on the Profile Panel is clicked, then the ceiling is indicated in 3 m increments
|
||
(*C* in figure below).
|
||
|
||
image::images/Ceilings2.jpg["Figure: Ceiling with 3m resolution",align="center"]
|
||
|
||
[icon="images/icons/ShowCylindersButton.jpg"]
|
||
[NOTE]
|
||
By selecting this icon, the different cylinders used during a dive can be represented as a colored bar at the bottom
|
||
of the *Dive Profile*. In general oxygen is represented by a green bar, nitrogen a yellow bar and helium a
|
||
red bar. The image below shows a dive which first uses a trimix cylinder (red and green), followed by a switch to a nitrox cylinder
|
||
(yellow and green) after 23 minutes. Cylinders with air are shown as a light blue bar.
|
||
|
||
image::images/ShowCylinders_f20.jpg["Figure: Cylinder use graph",align="center"]
|
||
|
||
|
||
[icon="images/tissues.jpg"]
|
||
|
||
[NOTE]
|
||
Display inert gas tissue pressures relative to ambient inert gas pressure (horizontal grey line).
|
||
Tissue pressures are calculated using the Bühlmann ZH-L16 algorithm and are displayed as lines ranging from
|
||
green (faster tissues) to blue (slower tissues).
|
||
The black line, graphed above the ambient pressure, is the maximum allowable tissue supersaturation (pressure limit) derived
|
||
from the gradient factors specified in the *Preferences*. For
|
||
divers doing planned decompression diving, efficient rates of offgassing are obtained with tissue pressures
|
||
between the ambient inert gas pressure (grey line) and the pressure limit (black line). This display is a representation
|
||
of the tissue pressures during the whole dive. In contrast, the xref:S_gas_pressure_graph[Gas Pressure Graph] in the *Information Box*
|
||
on the *Dive Profile* is an instantaneous reflection of tissue pressures at the moment in
|
||
time, at the position of the cursor on the dive profile.
|
||
|
||
image::images/tissuesGraph.jpg["Figure: Inert gas tissue pressure graph",align="center"]
|
||
|
||
Gradient Factor settings strongly affect the calculated ceilings and their depths.
|
||
For more information about Gradient factors, see the section on xref:S_GradientFactors[Gradient Factor Preference settings]. The
|
||
currently used gradient factors (e.g. GF 35/75) are shown above the depth profile if the appropriate toolbar buttons are activated.
|
||
*N.B.:* The indicated gradient factors are NOT the gradient factors in use by the dive computer,
|
||
but those used by _Subsurface_ to calculate deco obligations
|
||
during the dive. For more information external to this manual see:
|
||
|
||
** http://www.tek-dive.com/portal/upload/M-Values.pdf[Understanding M-values by Erik Baker, _Immersed_ Vol. 3, No. 3.]
|
||
|
||
** link:http://www.rebreatherworld.com/general-and-new-to-rebreather-articles/5037-gradient-factors-for-dummies.html[Gradient factors for dummies, by Kevin Watts]
|
||
|
||
|
||
=== The Dive Profile context menu
|
||
|
||
The context menu for the Dive Profile is accessed by right-clicking while the
|
||
mouse cursor is over the Dive Profile panel. The menu lets you create
|
||
Bookmarks, Gas Change Event markers, or manual CCR set-point changes
|
||
other than the ones that might have been
|
||
imported from a Dive Computer. Markers are placed against the depth profile line,
|
||
with the time of the event set by where the mouse cursor was when the right
|
||
mouse button was first clicked to bring up the menu. Gas Change events
|
||
involve a selection of which gas is being switched TO. The list of choices is based on
|
||
the available gases defined in the *Equipment* Tab. Setpoint change
|
||
events open a dialog letting you choose the next setpoint value. As
|
||
in the planner, a setpoint value of zero shows the diver is
|
||
breathing from an open circuit system while any non-zero value
|
||
shows the use of a closed circuit rebreather (CCR).
|
||
By right-clicking while over
|
||
an existing marker a menu appears, adding options to allow deletion of the
|
||
marker, or to allow all markers of that type to be hidden. Hidden events can be
|
||
restored to view by selecting Unhide all events from the context menu.
|
||
|
||
[[S_InfoBox]]
|
||
=== The *Information Box*
|
||
The Information box displays a large range of information about the dive
|
||
profile. Normally the Information Box is located to the top left of the *Dive
|
||
Profile* panel. If the mouse points outside of the *Dive Profile* panel, then
|
||
only the top line of the Information Box is visible (see left-hand part of
|
||
figure (*A*) below). The Information Box can be moved around in the *Dive Profile*
|
||
panel by click-dragging it with the mouse so that it is not obstructing
|
||
important detail. The position of the Information Box is saved and used again
|
||
during subsequent dive analyses.
|
||
|
||
image::images/InfoBox2.jpg["Figure: Information Box",align="center"]
|
||
|
||
When the mouse points inside the *Dive Profile* panel, the information box expands and
|
||
shows many data items. In this situation, the data reflect the time point along
|
||
the dive profile shown by the mouse cursor (see right-hand part of figure (*B*) above
|
||
where the Information Box reflects the situation at the position of the cursor
|
||
[arrow] in that image). Moving the cursor horizontally lets the Information Box show information for any point
|
||
along the
|
||
dive profile.
|
||
In this mode, the Information Box gives extensive statistics about depth, gas
|
||
and ceiling characteristics of the particular dive. These include: Time period
|
||
into the dive (indicated by a @), depth, cylinder pressure (P), temperature,
|
||
ascent/descent rate, surface air consumption (SAC), oxygen partial pressure,
|
||
maximum operating depth, equivalent air depth (EAD), equivalent narcotic depth
|
||
(END), equivalent air density depth (EADD), decompression requirements at that
|
||
instant in time (Deco), time to surface (TTS), the calculated ceiling, as well
|
||
as the calculated ceiling for several Bühlmann tissue compartments.
|
||
|
||
The user has control over the display of some statistics, shown as four
|
||
buttons on the left of the profile panel. These are:
|
||
|
||
[icon="images/icons/MOD.jpg"]
|
||
[NOTE]
|
||
Clicking this button causes the Information Box to display the *Maximum Operating Depth
|
||
(MOD)* of the dive, given the
|
||
gas mixture used. MOD is dependent on the oxygen concentration in the breathing gas.
|
||
For air (21% oxygen) it is around 57 m if a maximum pO~2~ of 1.4 is specified in the *Preferences* section
|
||
(select _File_ -> Preferences -> Graph_ and edit the text box _Max pO~2~ when showing MOD_.
|
||
Below the MOD there is a markedly increased
|
||
risk of exposure to the dangers of oxygen toxicity.
|
||
|
||
[icon="images/icons/NDL.jpg"]
|
||
[NOTE]
|
||
Clicking this button causes the Information Box to display either the *No-deco Limit (NDL)* or the
|
||
*Total Time to Surface (TTS)*. NDL is the time duration that a diver can continue with a
|
||
dive, given the present depth, that does not require decompression (that is, before an
|
||
ascent ceiling appears). Once a diver has exceeded the NDL and decompression is required (that
|
||
is, there is an ascent ceiling above the diver) then TTS gives the number of minutes
|
||
required before the diver can surface. TTS includes ascent time as well as decompression
|
||
time. TTS is calculated assuming an ascent surface air consumption (SAC) for
|
||
the gas currently used. Even if the profile contains several gas
|
||
switches, TTS at a specific moment during the dive is calculated using the current gas.
|
||
TTS longer than 2 hours is not accurately calculated and Subsurface only indicates _TTS > 2h_.
|
||
|
||
[icon="images/icons/SAC.jpg"]
|
||
[NOTE]
|
||
Clicking this button causes the Information Box to display the *Surface Air Consumption (SAC)*.
|
||
SAC is an indication of the surface-normalized respiration rate of a diver. The value of SAC
|
||
is less than the real
|
||
respiration rate because a diver at 10m uses breathing gas at a rate roughly double that of
|
||
the equivalent rate at the surface. SAC gives an indication of breathing gas consumption rate
|
||
independent of the depth of the dive, so the respiratory rates of different dives
|
||
can be compared. The units for SAC is liters/min or cubic ft/min.
|
||
|
||
[icon="images/icons/EAD.jpg"]
|
||
[NOTE]
|
||
Clicking this button displays the *Equivalent Air Depth (EAD)* for
|
||
nitrox dives as well as the *Equivalent
|
||
Narcotic Depth (END)* for trimix dives. These are
|
||
important to divers breathe gases other than air. Their
|
||
values are dependent on the composition of the breathing gas. The EAD
|
||
is the depth of a hypothetical air dive that has the same partial
|
||
pressure of nitrogen as the current depth of the nitrox dive at
|
||
hand. A nitrox dive leads to the same decompression obligation as an
|
||
air dive to the depth equalling the EAD. The END is the depth of a
|
||
hypothetical air dive that has the same sum of partial pressures of
|
||
the narcotic gases nitrogen and oxygen as the current trimix dive. A
|
||
trimix diver can expect the same narcotic effect as a diver breathing
|
||
air diving at a depth equalling the END.
|
||
|
||
Figure (*B*) above shows an information box with a nearly complete set of data.
|
||
|
||
[[S_gas_pressure_graph]]
|
||
==== The Gas Pressure Bar Graph
|
||
|
||
On the left of the *Information Box* is a vertical bar graph showing the
|
||
pressures of the nitrogen (and other inert gases, e.g. helium, if applicable) that the diver
|
||
was inhaling _at a particular instant during the dive_. It is shown by the position
|
||
of the cursor on the *Dive Profile*. The drawing on the left below indicates the
|
||
meaning of the different parts of the Gas Pressure Bar Graph.
|
||
|
||
image::images/GasPressureBarGraph.jpg["FIGURE:Gas Pressure bar Graph",align="center"]
|
||
|
||
- The light green area indicates the total gas, with the top margin of the light green
|
||
area showing the total gas pressure inhaled by the diver and measured from the bottom
|
||
of the graph to the top of the light green area. This pressure has a _relative_ value in the graph
|
||
and does not indicate absolute pressure.
|
||
|
||
- The horizontal black line underneath the light green margin indicates the equilibrium pressure
|
||
of the inert gases inhaled by the diver, usually nitrogen. In
|
||
the case of trimix, it is the pressures of nitrogen and helium combined. In this example,
|
||
the user is diving with EAN32, so the inert gas pressure is 68% of the distance from the
|
||
bottom of the graph to the total gas pressure value.
|
||
|
||
- The dark green area at the bottom of the graph represents the pressures of inert gas in each
|
||
of the 16 tissue compartments, following the Bühlmann algorithm, the fast tissues being on the
|
||
left hand side.
|
||
|
||
- The top black horizontal line indicates the gradient factor that applies to the depth of
|
||
the diver at the particular point on the *Dive Profile*. The gradient factor shown is an
|
||
interpolation between the GFLow and GFHigh values specified in the Graph tab of the *Preferences
|
||
Panel* of *Subsurface*.
|
||
|
||
- The bottom margin of the red area in the graph indicates the Bühlman-derived M-value. That is the
|
||
pressure value of inert gases at which bubble formation is expected to be severe, resulting
|
||
in decompression sickness.
|
||
|
||
These five values are shown on the left in the graph above. The way the Gas Pressure Bar Graph changes
|
||
during a dive can be seen on the right hand side of the above figure for a diver using EAN32.
|
||
|
||
- Graph *A* indicates the start of a dive with the diver at the surface. The pressures in all
|
||
the tissue compartments are still at the equilibrium pressure because no diving has taken place.
|
||
|
||
- Graph *B* indicates the situation after a descent to 30 meters. Few of the tissue compartments have had
|
||
time to respond to the descent, so their gas pressures are far below the equilibrium gas pressure.
|
||
|
||
- Graph *C* represents the pressures after 30 minutes at 30 m. The fast compartments have attained
|
||
equilibrium (i.e. they have reached the hight of the black line indicating the equilibrium pressure). The
|
||
slower compartments (towards the right) have not reached equilibrium and are in the process of slowly
|
||
increasing in pressure.
|
||
|
||
- Graph *D* shows the pressures after ascent to a depth of 4.5 meters. Since during ascent the total
|
||
inhaled gas pressure has decreased strongly from 4 bar to 1.45 bar, the pressures in the different tissue
|
||
compartments now exceed that of the total gas pressure and approach the gradient factor value (i.e.
|
||
the top black horizontal line). Further ascent will result in exceeding the gradient
|
||
factor value (GFHigh), endangering the diver.
|
||
|
||
- Graph *E* indicates the situation after remaining at 4.5 meters for 10 minutes. The fast compartments
|
||
have decreased in pressure. As expected, the pressures in the slow compartments have not changed much.
|
||
The pressures in the fast compartments do not approach the GFHigh value any more and the diver is safer
|
||
than in the situation indicated in graph *D*.
|
||
|
||
|
||
|
||
== Organizing the logbook (Manipulating groups of dives)
|
||
|
||
=== The Dive List context menu
|
||
|
||
Several actions on either a single dive, or a group of dives, can be performed using the Dive List
|
||
Context Menu. It is found by selecting either a single dive or a group of dives and then right-clicking.
|
||
|
||
// TODO: NEEDS REPLACEMENT
|
||
image::images/ContextMenu.jpg["Figure: Context Menu",align="center"]
|
||
|
||
The context menu is used in many functions described below.
|
||
|
||
==== Customizing the columns showed in the *Dive List* panel
|
||
|
||
image::images/DiveListOptions.jpg["Example: Dive list info options",align="center"]
|
||
|
||
The default information in the *Dive List* includes, for each dive, Dive_number, Date, Rating, Dive_depth,
|
||
Dive_duration and Dive_location. This information can be controlled and changed by right-clicking on the
|
||
header bar of the *Dive List*. For instance, a right-click on the 'Date' header brings up a list of items
|
||
that can be shown in the dive list (see above). Select an item to be shown in the *Dive List* or be
|
||
deleted (reflected by the check symbols) and the list is immediately updated. Preferences for information
|
||
shown in the *Dive List* are saved and used when _Subsurface_ is re-opened.
|
||
|
||
[[S_Renumber]]
|
||
=== Renumbering the dives
|
||
|
||
Dives are normally numbered incrementally from non-recent dives (low sequence
|
||
numbers) to recent dives (higher sequence numbers). Numbering
|
||
of dives is not always consistent. For instance, when non-recent dives are
|
||
added, correct numbering does not automatically follow on because
|
||
of the dives that are more recent in date/time than the newly-added dive with
|
||
an older date/time. So you may need to renumber the dives.
|
||
Do this by selecting (from the Main Menu) _Log -> Renumber_. Users are
|
||
given a choice of the lowest sequence number to be used.
|
||
This results in new sequence numbers (based on date/time)
|
||
for the dives in the *Dive List* panel.
|
||
|
||
You can also renumber a few selected dives in the dive list. Select the dives that
|
||
need renumbering. Right-click on the selected list and use the Dive List Context Menu
|
||
to perform the renumbering. A popup window appears letting the user specify
|
||
the starting number for the process.
|
||
|
||
[[S_Group]]
|
||
=== Grouping dives into trips and manipulating trips
|
||
|
||
For regular divers, the dive list can rapidly become very long. _Subsurface_
|
||
can group dives into _trips_. It does this by grouping dives that have
|
||
date/times not separated in time by more than two days, so creating
|
||
a single heading for each diving trip represented in the dive log. Below is an
|
||
ungrouped dive list (*A*, on the left) as well as the corresponding grouped dive
|
||
list of five dive trips (*B*, on the right):
|
||
|
||
image::images/Group2.jpg["Figure: Grouping dives",align="center"]
|
||
|
||
Grouping into trips allows a rapid way of accessing individual dives without
|
||
having to scan a long lists of dives. To group the dives in a dive list,
|
||
(from the Main Menu) select _Log -> Autogroup_. The *Dive List* panel
|
||
now shows only the titles for the trips.
|
||
|
||
==== Editing the title and associated information for a particular trip
|
||
|
||
Normally, in the dive list, minimal information is included in the trip title.
|
||
More information about a trip can be added by selecting its trip title from
|
||
the *Dive List*. This shows a *Trip Notes* tab in the *Notes* panel. Here
|
||
you can add or edit information about the date/time, the trip location and any
|
||
other general comments about the trip as a whole (e.g. the dive
|
||
company that was used, the general weather and surface conditions during the trip, etc.).
|
||
After entering this
|
||
information, select *Save* from the buttons at the top right
|
||
of the *Trip Notes*
|
||
tab. The trip title in the *Dive List* panel should now reflect the
|
||
edited information.
|
||
|
||
==== Viewing the dives during a particular trip
|
||
|
||
Once the dives have been grouped into trips, you can expand one or more
|
||
trips by clicking the arrow-head on the left of each trip title. This expands
|
||
the selected trip, revealing individual dives done during the trip.
|
||
|
||
==== Collapsing or expanding dive information for different trips
|
||
|
||
After selecting a particular trip in the dive list, the
|
||
context menu allows several options to expand or collapse dives
|
||
within trips. This includes expanding all trips and collapsing all trips.
|
||
|
||
==== Merging dives from more than one trip into a single trip
|
||
|
||
After selecting a trip title, the context menu allows the merging
|
||
of trips by either merging the selected trip with the trip below or with the
|
||
trip above. (Merge trip with trip below; Merge trip with trip above)
|
||
|
||
==== Splitting a single trip into more than one trip
|
||
If a trip includes ten dives, you can split this trip into two trips (trip 1:
|
||
top 4 dives; trip 2: bottom 6 dives) by selecting and right-clicking the top
|
||
four dives. The resulting context menu lets the user create a new trip by
|
||
choosing the option *Create new trip above*. The top four dives are then
|
||
grouped
|
||
into a separate trip. The figures below show the selection and context menu
|
||
on the left (A) and
|
||
the completed action on the right (B):
|
||
|
||
image::images/SplitDive3a.jpg["FIGURE: Split a trip into 2 trips",align="center"]
|
||
|
||
=== Manipulating single dives
|
||
|
||
==== Delete a dive from the dive log
|
||
|
||
Dives can be permanently deleted from the dive log by selecting and
|
||
right-clicking them to bring up the context menu, then selecting *Delete
|
||
dive(s)*. Typically this would apply to a case where a user wishes to delete
|
||
workshop
|
||
calibration dives of the dive computer or dives of extremely short duration.
|
||
|
||
==== Unlink a dive from a trip
|
||
|
||
You can unlink dives from the trip to which they belong. To do this,
|
||
select and right-click
|
||
the relevant dives to bring up the context menu. Then select the option *Remove dive(s)
|
||
from trip*. The dive(s) now appear immediately above or below the trip to
|
||
which they belonged, depending on the date and time of the unlinked dive.
|
||
|
||
==== Add a dive to the trip immediately above
|
||
|
||
Selected dives can be moved from the trip to which they belong and placed within
|
||
a separate trip. To do this, select and right-click
|
||
the dive(s) to bring up the context menu, and then select *Create new trip above*.
|
||
|
||
==== Shift the start time of dive(s)
|
||
Sometimes it’s necessary to adjust the start time of a dive. This may apply to
|
||
situations where dives are done in different time zones or when the dive
|
||
computer has a wrong time. To do this, select and right-click
|
||
the dive(s) to be
|
||
adjusted. This brings up the context menu on which the *Shift times*
|
||
option should be selected. You must then specify the
|
||
time
|
||
(in hours and minutes) by which the dives should be adjusted and click on the
|
||
option of whether the time adjustment should be earlier or later.
|
||
|
||
==== Merge dives into a single dive
|
||
|
||
Sometimes a dive is briefly interrupted, for example, if a diver returns to the surface
|
||
for a few minutes. That results in two or more dives being recorded by the dive
|
||
computer and appearing as different dives in the *Dive List* panel. You can
|
||
merge these dives onto a single dive by selecting the appropriate dives,
|
||
right-clicking them to bring up the context menu and then selecting *Merge selected
|
||
dives*. It may be necessary to edit the dive information in the *Notes*
|
||
panel to reflect events or conditions that apply to the merged dive. The figure
|
||
below shows the depth profile of two dives that were merged:
|
||
|
||
image::images/MergedDive.png["Example: Merged dive",align="center"]
|
||
|
||
==== Undo dive manipulations
|
||
|
||
Important actions on dives or trips, described above, can be undone or redone.
|
||
This includes: _delete dives_, _merge dives_, _renumber dives_ and _shift dive times_.
|
||
To do this after performing any of these actions, from the *Main Menu* select
|
||
_Edit_. This brings up the possibility to _Undo_ or _Redo_ an action.
|
||
|
||
|
||
[[S_Filter]]
|
||
=== Filtering the dive list
|
||
|
||
The dives in the *Dive List* panel can be filtered, so you can select only some
|
||
of the dives based on their attributes, e.g. dive tags, dive site, dive master, buddy or protective
|
||
clothing. For instance, filtering lets you list the deep dives at a particular
|
||
dive site, or otherwise the cave dives with a particular buddy.
|
||
|
||
To open the filter, select _Log -> Filter divelist_ from the main menu. This opens the
|
||
_Filter Panel_ at the top of the _Subsurface_ window. Three icons are located at the top
|
||
right hand of the filter panel (see image below). The _Filter Panel_ can be reset
|
||
(i.e. all current filters cleared) by selecting the *yellow angled arrow*. The _Filter Panel_ may also be
|
||
minimized by selecting the *green up-arrow". When minimized, only these three icons are shown.
|
||
The panel can be maximized by clicking the same icon that minimized it. The filter may also be
|
||
reset and closed by selecting the *red button* with the white cross.
|
||
|
||
image::images/Filterpanel.jpg["Figure: Filter panel",align="center"]
|
||
|
||
Four filter criteria may be used to filter the dive list: dive tags, person (buddy / divemaster), dive site
|
||
and dive suit. Each of these is represented by a check list with check boxes. Above
|
||
each check list is a second-level filter tool, allowing the listing of only some
|
||
attributes within that check list. For instance, typing "_ca_" in the filter
|
||
text box above the tags check list, results in the list being reduced
|
||
to "_cave_" and "_cavern_". Filtering the check list helps to rapidly find
|
||
search terms for filtering the dive list.
|
||
|
||
To activate filtering of the dive list, check at least one check box in one of
|
||
the four check lists. The dive list is then shortened to include
|
||
only the dives that pertain to the criteria specified in the check lists.
|
||
The four check lists work as a filter with _AND_ operators. Subsurface
|
||
filters therefore for _cave_ as a tag AND _Joe Smith_ as a buddy. But the
|
||
filters within a category are inclusive - filtering for _cave_ and _boat_
|
||
shows those dives that have either one OR both of these tags.
|
||
|
||
[[S_ExportLog]]
|
||
== Exporting the dive log or parts of the dive log
|
||
|
||
There are two ways to export dive information from Subsurface:
|
||
|
||
- Export dive information to _Facebook_
|
||
|
||
- xref:S_Export_other[Export dive information to other destinations or formats]
|
||
|
||
[[S_facebook]]
|
||
=== Exporting dive information to _Facebook_
|
||
|
||
Export of dives to _Facebook_ is handled differently from other types of export because
|
||
a connection to _Facebook_ is required, needing a _Facebook_ userID and password.
|
||
If, from the *Main Menu*, you select _File -> Preferences -> Facebook_, a login screen comes up.
|
||
(image *A* to the left, below). Provide a _Facebook_ userID and password.
|
||
Once logged into to _Facebook_ , the panel
|
||
in image *B*, below is shown, including a _Disconnect from Facebook_ button to close the
|
||
_Facebook_ connection.
|
||
|
||
image::images/facebook1_f20.jpg["Figure: Facebook login",align="center"]
|
||
|
||
From the _Subsurface_ window it’s easy to determine whether _Subsurface_ has a valid connection to _Facebook_
|
||
From the *Main Menu*, select _Share on -> Facebook_ (image *A*, below). Normally, the _Facebook_ option is greyed out. But
|
||
if there is a connection to _Facebook_, this option is active (i.e. in black color and can be selected).
|
||
|
||
Having established a login to _Facebook_, transferring a dive profileto a _Facebook_ timeline is easy.
|
||
Be sure the dive to be transferred to the timeline is shown in the _Subsurface_ *Dive Profile* panel. If, from the *Main Menu*, you
|
||
select _Share on -> Facebook_ (see image *A* below), a dialogue box is shown, determining the amount of additional information transferred along
|
||
with the dive profile (image *B*, below). To transfer a dive profile to _Facebook_, the name of a
|
||
_Facebook_ album is needed. The checkboxes on the left hand side let you decide how much
|
||
additional information should be transferred with the dive profile. This information is shown in the text box
|
||
on the right hand side of the panel (image *B*, below). You can easily edit the message that will be posted
|
||
with the dive profile. After specifying the additional information and verifying the text, select
|
||
the _OK_ button that triggers the transfer to _Facebook_. After the transfer
|
||
is done, an acknowledgement dialogue appears, indicating it was successful.
|
||
|
||
Both the album created and the post to your timeline will be marked as
|
||
private. In order for friends to be able to see it,
|
||
change its permissions from a regular Facebook login either in a
|
||
browser or a Facebook app.
|
||
|
||
image::images/facebook2_f20.jpg["Figure: Facebook login",align="center"]
|
||
|
||
If required, then close the _Facebook_ connection by either closing _Subsurface_ or by selecting _File -> Preferences -> Facebook_ from
|
||
the Main Menu, and clicking the appropriate button on the Facebook Preferences panel.
|
||
|
||
[[S_Export_other]]
|
||
=== Export dive information to other destinations or formats
|
||
For non-_Facebook exports_, the export function can be found by selecting _File -> Export_, which brings up
|
||
the Export dialog. This dialog always gives two options: save ALL dives, or save only
|
||
the dives selected in *Dive List* panel of _Subsurface_. Click the appropriate
|
||
radio button (see images below).
|
||
|
||
image::images/Export_f20.jpg["Figure: Export dialog",align="center"]
|
||
|
||
A dive log or part of it can be saved in three formats:
|
||
|
||
* _Subsurface XML_ format. This is the native format used by _Subsurface_.
|
||
|
||
* Universal Dive Data Format (_UDDF_). Refer to _http://uddf.org_ for more information.
|
||
UDDF is a generic format that enables communication among many dive computers
|
||
and computer programs.
|
||
|
||
* _Divelogs.de_, an Internet-based dive log repository. In order to upload to _Divelogs.de_,
|
||
you need a user-ID as well as a password for _Divelogs.de_. Log into _http://en.divelogs.de_
|
||
and subscribe to this service to upload dive log data from _Subsurface_.
|
||
|
||
* _DiveShare_ is also a dive log repository on the Internet focusing on recreational
|
||
dives. To upload dives, you need a user ID, so registration with
|
||
_http://scubadiveshare.com_ is required.
|
||
|
||
* _CSV dive details_, that includes the most critical information of the dive
|
||
profile. Included information of a dive is: dive number, date, time, buddy,
|
||
duration, depth, temperature and pressure: in short, most of the information
|
||
that recreational divers enter into handwritten log books.
|
||
|
||
* _CSV dive profile_, that includes a large amount of detail for each dive, including
|
||
the depth profile, temperature and pressure information of each dive.
|
||
|
||
* _HTML_ format, in which the dive(s) are stored in HTML files, readable
|
||
with an Internet browser. Most modern web browsers are supported, but JavaScript
|
||
must be enabled. The HTML export cannot be changed or edited.
|
||
It contains most of the information recorded in the dive log. However, it does not show the
|
||
calculated values in the *Dive Profile* panel, e.g. calculated cylinder pressure, gas
|
||
pressures and MOD. The HTML export contains a search
|
||
option to search the dive log. HTML export is specified on the second tab of the
|
||
Export dialog (image *B* above). A typical use of this option is to export all one's
|
||
dives to a smartphone or a tablet where it would serve as a portable record
|
||
of dives. That is useful for dive companies that wish to verify the dive history of a diver,
|
||
often doing away with the need to carry an original logbook
|
||
when doing dives with dive companies.
|
||
|
||
* _Worldmap_ format, an HTML file with a world map upon which each dive and
|
||
some information about it are indicated. This map is not editable. If you select any
|
||
of the dive sites on the map, a summary of the dive is available in text, as shown
|
||
in the image below.
|
||
|
||
image::images/mapview_f20.jpg["Figure: HTML Map export view",align="center"]
|
||
|
||
|
||
* _Image depths_, which creates a text file that contains the file names of all
|
||
photos or images attached
|
||
to any of the selected dives in the _Dive List_, together with the depth underwater where
|
||
of each of those photos was taken.
|
||
|
||
* _General Settings_, under the HTML tab, provides the following options:
|
||
|
||
** Subsurface Numbers: if this option is checked, the dive(s) are exported with the
|
||
numbers associated with them in Subsurface, Otherwise the dive(s) will be numbered
|
||
starting from 1.
|
||
** Export Yearly Statistics: if this option is checked, a yearly statistics table will
|
||
be attached to the HTML exports.
|
||
** Export List only: a list of dives only (date, time, depth, duration) will be exported
|
||
and the detailed dive information, e.g. dive profile, will not be available.
|
||
|
||
* Under _Style Options_ some style-related options are available like font
|
||
size and theme.
|
||
|
||
Export to other formats can be done through third party facilities, for
|
||
instance _www.divelogs.de_.
|
||
|
||
[[S_Cloud_access]]
|
||
== Keeping a _Subsurface_ dive log in the Cloud
|
||
|
||
For each diver, dive log information is highly important. Not only is it a record
|
||
of diving activities for one's own pleasure, but it’s important information required
|
||
for admission to training courses or sometimes even diving sites. The
|
||
security of the dive log is critical. To have a dive log that is
|
||
resistant to failure of a home computer hard drive, loss or theft of equipment, the
|
||
Cloud is an obvious solution. This also has the added benefit that you can access your dive
|
||
log from anywhere in the world. For this reason, facilities such as _divelogs.de_ and _Diving Log_ offer to store
|
||
dive log information on the Internet.
|
||
|
||
_Subsurface_ includes access to a transparently integrated cloud storage
|
||
back end that is available to all Subsurface users. Storing and retrieving a dive log
|
||
from the cloud is no more difficult than accessing the dives on the local hard disk.
|
||
The only requirement is that you should first register as a user on the cloud.
|
||
To use _Subsurface cloud storage_ , follow these steps:
|
||
|
||
=== Create a cloud storage account
|
||
|
||
** Open the *Network Preferences* by selecting _File_ -> _Preferences_ -> _Network_.
|
||
** In the section headed _Subsurface cloud storage_, enter an email address that
|
||
_Subsurface_ can use for user registration.
|
||
** Enter a novel password that _Subsurface_ will use to store the
|
||
dive log in the cloud.
|
||
** Click _Apply_ to send the above email address and password to the
|
||
(remote) cloud server. The server responds by sending a verification PIN to
|
||
the above email address (This is the *only* occasion that _Subsurface_ uses the
|
||
email address provided above). The *Network Preferences* dialog now has a new PIN text
|
||
box, not visible previously.
|
||
** Enter the PIN in the corresponding text box in the *Network Preferences* dialog
|
||
(this field is only visible while the server is waiting for email
|
||
address confirmation)
|
||
** Click _Apply_ again. The _Subsurface cloud storage_ account
|
||
will be marked as verified and the _Subsurface cloud storage_ service is initialised for use.
|
||
|
||
=== Using _Subsurface cloud storage_
|
||
|
||
** Once the cloud storage has been initialized, two new items appear in the
|
||
_File_ menu of the main menu system: _Open cloud storage_ and _Save to cloud storage_.
|
||
These options let you load and save data to the _Subsurface
|
||
cloud storage_ server.
|
||
** In the _Defaults Preferences_ tab, you can select to use the _Subsurface cloud
|
||
storage_ data as the default data file by checking the box marked _Cloud storage default file_.
|
||
This means the data from
|
||
the _Subsurface cloud storage_ is loaded when _Subsurface_ starts and saved there when _Subsurface_ closes.
|
||
|
||
** _Subsurface_ keeps a local copy of the data and the cloud facility remains fully
|
||
functional even if used while disconnected to the Internet. _Subsurface_ simply synchronizes the
|
||
data with the cloud server the next time the program is used while the computer is
|
||
connected to the Internet.
|
||
|
||
[[S_Cloud_storage]]
|
||
=== Web access to _Subsurface cloud storage_
|
||
|
||
One of the nice side benefits of using _Subsurface cloud storage_ is that
|
||
you can also access your dive data from any web browser. Simply open
|
||
https://cloud.subsurface-divelog.org[_https://cloud.subsurface-divelog.org_],
|
||
log in with the same email and password, and you can see an HTML export of
|
||
the last dive data that was synced to _Subsurface cloud storage_. The dive information
|
||
shown is only the contents of the recorded dive logs, NOT the calculated values
|
||
shown in the *Profile* panel,
|
||
including some cylinder pressures, deco ceilings and O~2~/He/N~2~ partial pressures.
|
||
|
||
=== Other cloud services
|
||
|
||
If you prefers not to use the integrated cloud storage of dive logs (and
|
||
don't need the web access), it’s simple to store
|
||
dive logs in the cloud using several of the existing facilities on the
|
||
Internet.
|
||
For instance
|
||
http://www.dropbox.com/[_Dropbox_]
|
||
offers a free application that allows
|
||
files on the Dropbox servers to be seen as a local folder on a desktop computer.
|
||
|
||
image::images/Cloud.jpg["FIGURE: Dropbox folder",align="center"]
|
||
|
||
The _Dropbox_ program creates a copy of the _Dropbox_ Internet Cloud content on your
|
||
desktop computer. When the computer is connected to the Internet, the Internet
|
||
content is automatically updated. Therefore both the _Open_ and _Save_ of dive logs are done
|
||
using the local copy of the dive log in the local _Dropbox_ folder, so there's no need
|
||
for a direct internet connection. If the local copy is modified, e.g. by adding a dive,
|
||
the remote copy in the _Dropbox_ server in the Cloud will be automatically updated whenever
|
||
Internet access is available.
|
||
|
||
In this way a dive log in
|
||
your _Dropbox_ folder can be accessed seamlessly from the Internet and can
|
||
be accessed anywhere with Internet access. Currently there are no costs
|
||
involved for this service. Dropbox (Windows, Mac
|
||
and Linux) can be installed by accessing the
|
||
http://www.dropbox.com/install[_Install Page on the Dropbox website_]
|
||
. Alternatively you can use _Dropbox_ as a way back up your dive log. To
|
||
Store a dive log on _Dropbox_, select _File -> Save as_ from the _Subsurface_ main menu,
|
||
navigate to the _Dropbox_ folder and select the _Save_ button. To access the dive log
|
||
in _Dropbox_, select _File -> Open Logbook_ from the _Subsurface_
|
||
main menu and navigate to the dive log file in the _Dropbox_ folder and select the
|
||
_Open_ button.
|
||
|
||
Several paid services exist on the Internet (e.g. Google, Amazon) where the same
|
||
process could be used for the Cloud-based storage of dive logs.
|
||
|
||
|
||
[[S_PrintDivelog]]
|
||
== Printing a dive log
|
||
|
||
_Subsurface_ provides a simple and flexible way to print a whole dive log or only a few selected dives.
|
||
Pre-installed templates or a custom written template can be used to choose where the data are fitted into the page.
|
||
|
||
Some decisions need to be made before printing:
|
||
|
||
- Should the whole dive log be printed or only part of it? If only part
|
||
is required, select the required dives from the *Dive List* panel.
|
||
- If the dive profiles are printed, what gas partial pressure information should be shown? Select
|
||
the appropriate toggle-buttons on the button bar to the left of the *Dive Profile* panel.
|
||
|
||
If _File -> Print_ is selected from the Main menu, the dialogue below (image *A*) appears. Three
|
||
specifications are needed to get the desired information and page layout:
|
||
|
||
image::images/Print1_f22.jpg["FIGURE: Print dialogue",align="center"]
|
||
|
||
1. Under _Print type_ select one of two options:
|
||
|
||
- _Dive list print_: Print dives from the *Dive List* panel with profiles and other information.
|
||
- _Statistics print_: Print yearly statistics of the dives.
|
||
|
||
2. Under _Print options_ select:
|
||
|
||
- Printing only the dives selected from the dive list before
|
||
activating the print dialogue by checking the box _Print only
|
||
selected dives_. If this check box is *not* checked ALL dives in
|
||
the *Dive List* panel are printed.
|
||
- Printing in color, done by checking the box with _Print in color. If this check box
|
||
is not checked, printing is in black and white.
|
||
|
||
3. Under _Template_ select a template to be used as the page layout. There are several choices.
|
||
(see image *B*, above).
|
||
|
||
- _Table_: This prints a summary table of all dives selected (see below).
|
||
|
||
image::images/Print_summarylist_f22.jpg["FIGURE: Print summary table",align="center"]
|
||
|
||
- _Flow layout_: Print the text associated with each dive without printing the dive profiles
|
||
of each dive (see below):
|
||
|
||
image::images/Print_flow_layout_f22.jpg["FIGURE: Print flow layout",align="center"]
|
||
|
||
- _One Dive_: Print one dive per page, also showing the dive profile (see below)
|
||
|
||
image::images/print2_f22.jpg["FIGURE: Print one dive / page",align="center"]
|
||
|
||
|
||
- _Two Dives_: Print two dives per page, also showing the dive profiles.
|
||
- _Six Dives_: Print six dives per page, also showing the dive profiles.
|
||
|
||
You can _Preview_ the printed page by selecting the _Preview_ button on the
|
||
dialogue (see image *A* at the start of this section). After preview, you can change
|
||
the options in the print dialogue, so the layout fits personal taste.
|
||
|
||
Next, select the _Print_ button (see image *A* at the start of this section). This activates the regular print
|
||
dialogue used by the operating system,
|
||
letting you choose a printer and set its properties (see image below):
|
||
|
||
image::images/Print_print_f22.jpg["FIGURE: Print dialog",align="center"]
|
||
|
||
Set the print resolution of the printer to an appropriate value by changing
|
||
the printer _Properties_. Finally, select the _Print_ button to print the dives.
|
||
Below is a (rather small) example of the output for one particular page.
|
||
|
||
image::images/Printpreview.jpg["FIGURE: Print preview page",align="center"]
|
||
|
||
=== Writing a custom print template (advanced)
|
||
|
||
Writing a custom template is an effective way to produce highly customized printouts. Subsurface uses HTML templates
|
||
to render printing. You can create a template, export a new template, import an existing template and delete an existing template by using
|
||
the appropriate buttons under the _Template_ dropdown list in the print dialogue. See <<S_APPENDIX_E,APPENDIX E>> for information on how
|
||
to write or modify a template.
|
||
|
||
[[S_Configure]]
|
||
== Configuring a dive computer
|
||
|
||
_Subsurface_ lets you configure a dive computer. Currently the Heinrichs-Weikamp (OSTC 2, OSTC 3) and
|
||
Suunto Vyper (Stinger, Mosquito, D3, Vyper, Vytec,
|
||
Cobra, Gekko and Zoop) family of dive computers are supported. A large number of settings of these dive computers
|
||
can be read and changed to different values. To begin, be sure the appropriate hardware driver
|
||
is installed for the dive computer (also required for downloading dives) and the device name of the dive computer is known.
|
||
See <<_appendix_a_operating_system_specific_information_for_importing_dive
|
||
_information_from_a_dive_computer,APPENDIX A>> for information on how to do this.
|
||
|
||
Once the dive computer is connected to the _Subsurface_ computer, select _File -> Configure dive
|
||
computer_ from the _Main Menu_. Provide the appropriate device name in the text box at the
|
||
top of the configuration panel and select the appropriate dive
|
||
computer model from the panel on the left-hand (see image below).
|
||
|
||
image::images/Configure_dc_f20.jpg["FIGURE: Configure dive computer",align="center"]
|
||
|
||
Using the appropriate buttons on the configuration panel, the following actions can be done:
|
||
|
||
- *Retrieve available details*. This loads the existing configuration from the dive computer
|
||
to _Subsurface_, showing it in the configuration panel.
|
||
- *Save changes to device*. This changes the configuration of the
|
||
dive computer to correspond to the information shown in the configuration panel.
|
||
- *Backup*. This saves the configuration data to a file. _Subsurface_ asks for
|
||
a file location and file name for the saved information.
|
||
- *Restore backup*. This loads the information from a backup file and displays it
|
||
in the configuration panel.
|
||
- *Update firmware*. If new firmware is available for the dive computer, this is
|
||
loaded into the dive computer.
|
||
|
||
|
||
[[S_Preferences]]
|
||
== Setting user _Preferences_ for _Subsurface_
|
||
|
||
There are several user-definable settings within _Subsurface_, found by selecting
|
||
_File -> Preferences_. The settings are in
|
||
seven groups: *Defaults*, *Units*, *Graph*, *Language* and *Network*, *Facebook* and *Georeference*.
|
||
All operate on the same principles: the user must specify settings that are to be changed, then
|
||
save them using the *Apply* button. After applying all the new settings users can then
|
||
leave the settings panel by selecting *OK*. If *Discard* is selected, changes to the preferences
|
||
are not saved.
|
||
|
||
=== Defaults
|
||
|
||
There are several settings in the *Defaults* panel:
|
||
|
||
image::images/Pref1_f20.jpg["FIGURE: Preferences defaults page",align="center"]
|
||
|
||
** *Lists and tables*: Here you can specify the font type and font size of the
|
||
*Dive Table* panel: By decreasing the font size of the *Dive Table*, you can see more dives on a screen.
|
||
|
||
** *Dives*: For the _Default Dive File_ you need to specify the directory and
|
||
file name of your
|
||
electronic dive log book. This is a file with filename extension of either _.xml_ or _.ssrf_. When
|
||
launched, _Subsurface_ will automatically load the specified dive log book. There are three options:
|
||
- _No default file_: When checked, _Subsurface_ does not automatically load a dive log at startup.
|
||
- _Local default file_: When checked, _Subsurface_ automatically loads a dive log from the local hard disk
|
||
as described above.
|
||
- _Cloud storage default file_: When checked, _Subsurface automatically loads the dive log from the cloud
|
||
device that was initialized using the *Preferences* _Network_ tab (see below).
|
||
|
||
** *Display invalid*: Dives can be marked as invalid (when a user wishes to hide
|
||
dives that he/she doesn't consider valid dives, e.g. pool dives, but still want to
|
||
keep them in the dive log). This controls whether those dives are displayed in
|
||
the dive list.
|
||
|
||
** *Default cylinder*: Specify the default cylinder listed in
|
||
the *Equipment* tab of the *Notes* panel.
|
||
|
||
** *Animations*: Some actions in showing the dive profile are performed using
|
||
animations. For instance, the axis values for depth and time change from dive to
|
||
dive. When viewing a different dive, these changes in axis characteristics do not
|
||
happen instantaneously, but are animated. The _Speed_ of animations can be controlled
|
||
by setting this slider
|
||
with faster animation speed to the left, and a 0 value representing no animation
|
||
at all.
|
||
|
||
** *Clear all settings*: As indicated in the button below this heading, all settings are
|
||
cleared and set to default values.
|
||
|
||
=== Units
|
||
image::images/Pref2_f20.jpg["FIGURE: Preferences Units page",align="center"]
|
||
|
||
Here you can choose between metric and imperial units of depth, pressure,
|
||
volume, temperature and mass. By selecting the Metric or Imperial radio button
|
||
at the top, you can specify that all units are in the chosen measurement system.
|
||
Alternatively, if you select the *Personalize* radio button, units can be selected
|
||
independently, with some in the metric system and others in imperial.
|
||
|
||
Regardless
|
||
of the above settings, dive time measurements can be either in seconds or minutes.
|
||
Choose the appropriate option. GPS coordinates can be represented either as
|
||
traditional coordinates (degrees, minutes, seconds) or as decimal degrees
|
||
Choose the appropriate option.
|
||
|
||
=== Graph
|
||
[[S_CCR_options]]
|
||
image::images/Pref3_f20.jpg["FIGURE: Preferences Graph page",align="center"]
|
||
|
||
[[S_GradientFactors]]
|
||
This panel allows two type of selections:
|
||
|
||
* *Show*: Here you can specify the amount of information shown as part of
|
||
the dive profile:
|
||
** Thresholds: _Subsurface_ can display the nitrogen, oxygen and the helium partial pressures during
|
||
the dive, done by using the toolbar on the left hand side of the *Dive Profile*
|
||
panel. For each of these graphs you can specify a threshold value on the right-hand side of the
|
||
Preferences panel. If any of the graphs go above the specified threshold level, the graph is
|
||
highlighted in red, indicating the particular partial pressure threshold has been exceeded.
|
||
** _Max pO~2~ is used for calculating the MOD when displaying the maximum operative depth (MOD)
|
||
for a dive. Specify an appropriate partial pressure. A value of 1.4 is commonly used.
|
||
** _Draw dive computer reported ceiling red_: This checkbox does exactly what it says. By default
|
||
the computer reported ceiling is shown in white.
|
||
Not all dive computers report ceiling values. If the dive computer does report it, it may differ
|
||
from the ceilings calculated by _Subsurface_ because of the different algorithms and
|
||
gradient factors, as well as the dynamic way a
|
||
dive computer calculates ceilings during a dive.
|
||
** _Show unused cylinders in Equipment Tab_: This checkbox allows display of information about unused cylinders when viewing the
|
||
*Equipment Tab*. If this box is not checked, and if any cylinders entered using the *Equipment Tab* are not used (e.g. there
|
||
was no gas switch to such a cylinder), then these cylinders are omitted from that list.
|
||
** _Show average depth_: If this box is checked, the *Dive Profile* panel contains a grey line that shows
|
||
the mean depth of the dive, up to any time instant during the dive. Normally this is a u-shaped line indicating the deepest mean depth just before
|
||
ascent.
|
||
|
||
* *Misc*:
|
||
|
||
[[GradientFactors_Ref]]
|
||
** Gradient Factors (GFLow and GFHigh):* Set the _gradient factors_ used while diving. GF_Low is
|
||
the gradient factor at depth and GF_High is used just below the surface.
|
||
At intermediate depths gradient factors between GF_Low and GF_High are used.
|
||
Gradient factors add conservatism to nitrogen exposure during a dive, in a
|
||
similar way that many dive computers have a conservative setting. The lower
|
||
the value of a gradient factor, the more conservative the calculations are with
|
||
respect to nitrogen loading and the deeper the ascent ceilings are. Gradient
|
||
factors of 20/60 are considered conservative and values of 70/90 are considered
|
||
harsh. Checking the *GFLow at max depth* box causes GF_Low to be used at the
|
||
deepest depth of a dive. If this box is not checked, GF_Low is applied at
|
||
all depths deeper than the first deco stop. For more information see:
|
||
|
||
*** http://www.tek-dive.com/portal/upload/M-Values.pdf[Understanding M-values by Erik Baker, _Immersed_ Vol. 3, No. 3.]
|
||
|
||
*** link:http://www.rebreatherworld.com/general-and-new-to-rebreather-articles/5037-gradient-factors-for-dummies.html[Gradient factors for dummies, by Kevin Watts]
|
||
|
||
** _CCR: Show setpoints when viewing pO2:_ With this checkbox activated, the pO~2~
|
||
graph on the dive profile has an overlay in red which indicates the CCR setpoint
|
||
values. See the section on xref:S_CCR_dives[Closed Circuit Rebreather dives].
|
||
|
||
** _CCR: Show individual O~2~ sensor values when viewing pO~2~:_ Show the pO~2~
|
||
values associated with each of the individual oxygen sensors of a CCR system.
|
||
See the section on xref:S_CCR_dives[Closed Circuit Rebreather dives].
|
||
|
||
* *Configuring dive planning using rebreather equipment:*
|
||
|
||
** _Default CCR setpoint for dive planning:_ Specify the O~2~ setpoint for a
|
||
CCR dive plan. This determines the pO~2~ maintained
|
||
during a particular dive. Setpoint changes during the dive can be added via the
|
||
profile context menu.
|
||
|
||
** _pSCR O~2~ metabolism rate:_ For a semi-closed rebreather (pSCR) system, this is the
|
||
volume of oxygen used by a diver during a minute. Set this value for pSCR dive planning
|
||
and decompression calculations.
|
||
|
||
** _pSCR ratio:_ For pSCR equipment the dump ratio is the ratio of gas released to the
|
||
environment to that of the gas recirculated to the diver. Set this value for a
|
||
pSCR dive plan. A 1:10 ratio is commonly used.
|
||
|
||
|
||
=== Language
|
||
Choose a language that _Subsurface_ will use.
|
||
|
||
image::images/Pref4_f20.jpg["FIGURE: Preferences Language page",align="center"]
|
||
|
||
A checkbox lets you use the _System Default_ language which in most cases
|
||
will be the correct setting; with this _Subsurface_ simply runs in the same
|
||
language / country settings as the underlying operating system.
|
||
To change it, uncheck this checkbox and pick a language / country
|
||
combination from the list of locations. The _Filter_ text box
|
||
lists similar languages. For instance there are several system variants of English
|
||
or French. *This particular preference requires a restart of _Subsurface_ to take
|
||
effect*.
|
||
|
||
=== Network
|
||
This panel facilitates communication between _Subsurface_ and data sources on the Internet.
|
||
This is important, for instance, when _Subsurface_ needs to communicate with web
|
||
services such as Cloud storage or the <<S_Companion,_Subsurface
|
||
Companion app_>>. These Internet requirements are determined by your type of
|
||
connection to the Internet and by the Internet Service Provider (ISP) used.
|
||
Your ISP should provide the appropriate information.
|
||
|
||
image::images/Pref5_f20.jpg["FIGURE: Preferences Network page",align="center"]
|
||
|
||
This dialogue has three sections:
|
||
|
||
** _Proxy type_:
|
||
If a proxy server is used for Internet access, the type of proxy needs to be selected from the dropdown list,
|
||
after which the IP address of the host and the appropriate port number should
|
||
be provided. If the proxy server uses authentication, the appropriate userID and
|
||
password are required so that _Subsurface_ can automatically pass
|
||
through the proxy server to access the Internet. This information is usually obtained
|
||
from one's ISP.
|
||
|
||
** _Subsurface cloud storage_: To store your dive log in the cloud, a valid email address
|
||
and password are required. This lets _Subsurface_ email security information
|
||
regarding cloud storage to you, and to set up cloud storage appropriately.
|
||
Two additional options are given:
|
||
- _Sync to cloud in the background_: This option allows saving of dive information to the cloud storage
|
||
while you do other things within _Subsurface_.
|
||
- _Save password locally_: This allows local storage of the cloud storage password. Note that this
|
||
information is saved in raw text form, not encoded in any way.
|
||
|
||
** _Subsurface web service_: When you subscribe to the <<S_Companion,Subsurface web service>>, a very
|
||
long and hard-to-remember userID is issued. This is the place to save that userID. By
|
||
checking the option _Save User ID locally?_, you ensure a local copy of that userID is saved.
|
||
|
||
|
||
[[S_Facebook]]
|
||
=== Facebook Access
|
||
This panel lets you log into a Facebook account in order to transfer information
|
||
from Subsurface to Facebook.
|
||
|
||
image::images/Pref6_f20.jpg["FIGURE: Facebook login panel",align="center"]
|
||
|
||
If you provide a valid Facebook userID and password, a
|
||
connection to Facebook is created. That connection is closed when one
|
||
closing down Subsurface. Currently the checkbox labelled "Keep me logged in to Subsurface",
|
||
on the login screen has no effect.
|
||
See the section xref:S_facebook[Exporting dive profiles to Facebook]
|
||
for more information.
|
||
|
||
=== Georeference
|
||
|
||
_Subsurface_ provides a geo-lookup service (that is, given the coordinates of a dive site) derived from
|
||
a click on the *Dive Map panel* at the bottom right of the _Subsurface_ window, or from a GPS instrument or
|
||
from the _Subsurface_ Companion app). A search on the Internet is done to find
|
||
the name of the closest known location. This function only works if _Subsurface_ has an
|
||
Internet connection. The preference of the dive site name can be configured, e.g. _Country/State/City_
|
||
or _City/State/Country_ (see image below).
|
||
|
||
image::images/Pref7_f20.jpg["FIGURE: Facebook login panel",align="center"]
|
||
|
||
[[S_DivePlanner]]
|
||
== The _Subsurface_ dive planner
|
||
Dive planning is an advanced feature of _Subsurface_, accessed by selecting
|
||
_Log -> Plan Dive_ from the main menu. It allows calculation of
|
||
nitrogen load during a dive by using the Bühlmann ZH-L16 algorithm with the addition
|
||
of gradient factors as implemented by Erik Baker.
|
||
|
||
****
|
||
[icon="images/icons/warning2.png"]
|
||
[WARNING]
|
||
|
||
The _Subsurface_ dive planner IS CURRENTLY EXPERIMENTAL
|
||
and assumes the user is already familiar with the _Subsurface_
|
||
user interface. It is explicitly used under the following conditions:
|
||
|
||
- The user is conversant with dive planning and has the necessary training to perform
|
||
dive planning.
|
||
- The user plans dives within his/her certification limits.
|
||
- Dive planning makes large assumptions about the characteristics of the _average person_
|
||
and cannot compensate for individual physiology or health or personal history or
|
||
life style characteristics.
|
||
- The safety of a dive plan depends heavily on the way in which the planner is used.
|
||
- The user is familiar with the user interface of _Subsurface_.
|
||
- A user who is not absolutely sure about any of the above requirements should not use
|
||
this feature.
|
||
****
|
||
|
||
=== The _Subsurface_ dive planner screen
|
||
|
||
Like the _Subsurface_ dive log, the planner screen is divided into several sections (see image below). The *setup*
|
||
parameters for a dive are entered into the sections on the left hand side of the screen.
|
||
They are: Available Gases, Rates, Planning, Gas Options and Notes.
|
||
|
||
At the top right hand is a green *design panel* on which the profile of the dive can be
|
||
manipulated directly by dragging and clicking as explained below. This feature makes the
|
||
_Subsurface_ dive planner unique in ease of use.
|
||
|
||
At the bottom right is a text panel with a heading of _Dive Plan Details_. This is where the details of
|
||
the dive plan are provided in a way that can easily be copied to other software. This is also where
|
||
any warning messages about the dive plan are printed.
|
||
|
||
image::images/PlannerWindow1_f20.jpg["FIGURE: Dive planner startup window",align="center"]
|
||
|
||
|
||
=== Open circuit dives
|
||
|
||
- Towards the center bottom of the planner (circled in blue in the image above) is a dropbox with three options. Select the appropriate one of these:
|
||
** Open Circuit (the default)
|
||
** CCR
|
||
** pSCR
|
||
|
||
- Choose the Open Circuit option.
|
||
- In the top left-hand area of the planning screen, be sure the constant dive parameters are
|
||
appropriate. These are: Start date and time of the intended dive, Atmospheric Pressure and Altitude
|
||
above sea level of the dive site. The atmospheric pressure can also be entered as an altitude
|
||
in meters, assuming a sea-level atmospheric pressure of 1.013 bar.
|
||
|
||
- In the table labelled _Available Gases_, add the information of the cylinders to be used
|
||
as well as the gas composition within that cylinder. This is done in a similar way as for
|
||
<<cylinder_definitions,providing cylinder data for dive logs>>. Choose the cylinder type by
|
||
double clicking the cylinder type and using the dropdown list, then specify the work
|
||
pressure of this cylinder. By leaving the oxygen concentration (O2%) filed empty,
|
||
the cylinder is assumed to contain air. Otherwise enter the oxygen and/or helium
|
||
concentration in the boxes provided in this dialogue. Add additional cylinders by using the
|
||
"+" icon to the top right-hand of the dialogue.
|
||
|
||
- The profile of the planned dive can be created in two ways:
|
||
* Drag the waypoints
|
||
(the small white circles) on the existing dive profile to represent the dive. Additional
|
||
waypoints can be created by double-clicking the existing dive profile. Waypoints can be deleted
|
||
by right-clicking a particular waypoint and selecting the _delete_ item from the resulting
|
||
context menu.
|
||
* The most efficient way to create a dive profile is to enter the appropriate values into the table
|
||
marked _Dive planner points_. The first line of the table represents the duration and the final
|
||
depth of the descent from the surface. Subsequent segments describe the bottom phase of the dive.
|
||
The _CC set point_ column is only relevant for closed circuit divers.
|
||
The ascent is usually not specified because this is what the planner is supposed to calculate.
|
||
Add additional segments to the profile by selecting the "+" icon at the top right hand of the
|
||
table. Segments entered into the _Dive planner points_ table automatically appear in the *Dive
|
||
Profile* diagram.
|
||
|
||
==== Recreational dives
|
||
|
||
Recreational mode is what comes closest to planning a dive based on the non-decompression limit (NDL).
|
||
It computes the maximum time a diver can stay at the current depth without needing mandatory decompression
|
||
stops and without using more than the existing gas (minus a reserve). The planner automatically takes
|
||
into account the nitrogen load incurred in previous dives. But conventional dive tables are also used in a
|
||
way that can take into account previous dives. Why use a dive planner for recreational dives? Using
|
||
recreational dive tables, the maximum depth of a dive is taken into account. But few dives are
|
||
done at a constant depth corresponding to the maximum depth (i.e. a "square" dive profile). This means
|
||
dive tables overestimate the nitrogen load incurred during previous dives. The _Subsurface_
|
||
dive planner calculates nitrogen load according to the real dive profiles of all uploaded previous dives,
|
||
in a similar way as dive computers calculate nitrogen load during a dive. This means that the diver gets 'credit,'
|
||
in terms of nitrogen load, for not remaining at maximum depth during
|
||
previous dives, so a longer subsequent dive can be planned.
|
||
For the planner to work it's crucial to upload all previous dives
|
||
onto _Subsurface_ before doing dive planning.
|
||
To plan a dive, the appropriate settings need to be defined.
|
||
|
||
- Ensure the date and time is set to that of the intended dive. This allows calculation of
|
||
the nitrogen load incurred during previous dives.
|
||
|
||
- Immediately under the heading _Planning_ are two checkboxes _Recreational_ and _Safety Stop_.
|
||
Check these two boxes.
|
||
|
||
- Then define the cylinder size,
|
||
the gas mixture (air or % oxygen) and the starting cylinder pressure in the top left-hand
|
||
section of the planner under _Available gases_.
|
||
|
||
- The planner calculates whether the specified cylinder contains enough air/gas to complete
|
||
the planned dive. In order for this to be accurate, under _Gas options_, specify an appropriate
|
||
surface air consumption (SAC) rate for _Bottom SAC_. Suitable values are between 15 l/min and 30 l/min,
|
||
with novice divers or difficult dives requiring SAC rates closer to 30l/min.
|
||
|
||
- Define the amount of gas the cylinder must have at the end of the bottom section of the
|
||
dive just before ascent. A value of 50 bar is often used. The reason for this reserve gas is to provide for the possible
|
||
need to bring a buddy to the surface using gas sharing. How much gas is used in
|
||
sharing depends on the depth of the ascent. This can be difficult to estimate, so most agencies assume a
|
||
fixed amount of gas, or actually of pressure e.g. 40 or 50 bar or 25% or 33% (rule of thirds). But _Subsurface_ can do better
|
||
because it knows about the ascent and that is why we add the amount of gas during the ascent (i.e. the "deco gas“).
|
||
Subsurface still uses a fixed pressure "reserve" but that's supposed to be for the additional gas used when
|
||
there's a problem and your pulse rate goes up when you start to buddy breathe. This reserve amount is user configurable.
|
||
|
||
- Define the depth of the dive by dragging the waypoints (white dots) on the dive profile or
|
||
(even better) defining the appropriate depths using the table under _Dive planner points_ as
|
||
desribed under the previous heading. If
|
||
this is a multilevel dive, set the appropriate dive depths to represent the dive plan by adding
|
||
waypoints to the dive profile or by adding appropriate dive planner points to the _Dive Planner Points_
|
||
table. _Subsurface_ will automatically extend the bottom section of the dive to the maximum
|
||
duration within the no-decompression limits (NDL).
|
||
|
||
- The ascent speed can be changed. The default ascent speeds are those considered safe for recreational
|
||
divers.
|
||
|
||
The dive profile in the planner shows the maximum dive time within no-deco limits using the
|
||
Bühlmann ZH-L16 algorithm and the gas and depth settings specified as described above. The _Subsurface_ planner
|
||
allows rapid assessment of dive duration as a function of dive depth, given the nitrogen load incurred during previous dives. The
|
||
dive plan includes estimates of the amount of air/gas used, depending on the cylinder settings specified
|
||
under _Available gases_. If the initial cylinder pressure is set to 0, the dive duration shown is the
|
||
true no-deco limit (NDL) without taking into account gas used during the dive. If the surface above the dive profile is RED
|
||
it means that recreational dive limits are exceeded and either the dive duration or the dive depth needs to be reduced.
|
||
|
||
Below is an image of a dive plan for a recreational dive at 30 meters. Although the no-deco limit (NDL) is 23
|
||
minutes, the duration of the dive is limited by the amount of air in the cylinder. That is shown in the
|
||
text box at the bottom right of the panel, requiring sufficient air for buddy-sharing during ascent.
|
||
|
||
image::images/rec_diveplan.jpg["FIGURE: A recreational dive plan: setup",align="center"]
|
||
|
||
==== Non-recreational open circuit dives, including decompression
|
||
|
||
Non-recreational dive planning involves exceeding the no-deco limits and/or using multiple breathing gases.
|
||
These dives are planned in three stages:
|
||
|
||
*a) Nitrogen management*: This is done by specifying the rates for descent and ascent,
|
||
as well as the deco model (GFLow, GFHigh or Conservatism level) under the headings _Rates_ and _Planning_
|
||
to the bottom left of the planning screen. Two deco models are supported the Bühlmann model and the VPM-B
|
||
model. Select one of the two models. When selecting the Bühlmann model, the gradient factors (GF_high and GF_low
|
||
need to be specified. Initially, the GFHigh and GFLow values in the _Preferences_
|
||
panel of _Subsurface_ is used. If these are changed within the planner (see _Gas Options_ within
|
||
the planner), the new values are
|
||
used without changing the original values in the _Preferences_.
|
||
Gradient Factor settings strongly affect the calculated ceilings and their depths.
|
||
A very low GFLow value brings on decompression stops early during the dive.
|
||
** For more information about Gradient factors, see the section on xref:S_GradientFactors[Gradient Factor Preference settings].
|
||
|
||
If the VPM-B model is selected, the Conservatism_level needs to be specified on a scale of 0 (least conservative) to 4 (most conservative).
|
||
This model tends to give deco stops at deeper levels than the Bühlmann model and often results in slightly shorter
|
||
dive durations than the Bühlmann model. When selecting one of these models, keep in mind they are NOT exact physiological models but
|
||
only mathematical models that appear to work in practice.
|
||
|
||
For more information external to this manual see:
|
||
|
||
* link:http://www.tek-dive.com/portal/upload/M-Values.pdf[Understanding M-values by Erik Baker, _Immersed_ Vol. 3, No. 3.]
|
||
* link:http://www.rebreatherworld.com/general-and-new-to-rebreather-articles/5037-gradient-factors-for-dummies.html[Gradient factors for dummies, by Kevin Watts]
|
||
* link:http://www.amazon.com/Deco-Divers-Decompression-Theory-Physiology/dp/1905492073/ref=sr_1_1?s=books&ie=UTF8&qid=1403932320&sr=1-1&keywords=deco+for+divers[_Deco for Divers_, by Mark Powell (2008). Aquapress] Southend-on-Sea, UK. ISBN 10: 1-905492-07-3.
|
||
An excellent non-technical review that discusses both the Bühlmann deco model and the VPM-B model.
|
||
|
||
The ascent rate is critical for nitrogen off-gassing at the end of the dive and is specified
|
||
for several depth ranges, using the average (or mean) depth as a yardstick. The mean depth
|
||
of the dive plan is shown by a light grey line on the dive profile. Ascent rates
|
||
at deeper levels are often in the range of 8-12 m/min, while ascent rates near the surface are
|
||
often in the range of 4-9 m/min. The descent rate is also specified. If the option _Drop to first depth_
|
||
is activated, the descent phase of the planned dive will be at the maximal descent rate specified
|
||
in the _Rates_ section of the dive setup.
|
||
|
||
*b) Oxygen management*: In the *Gas Options* part of the dive specification, the maximum partial
|
||
pressure for oxygen needs to be specified for the
|
||
bottom part of the dive (_bottom po2_) as well as for the decompression part of the dive (_deco po2_).
|
||
The most commonly
|
||
used values are 1.4 bar for the bottom part of the dive and 1.6 bar for any decompression
|
||
stages. Normally, a partial pressure of 1.6 bar is not exceeded. PO2 settings and the depth at which switching to a gas takes place can also be edited in the
|
||
_Available Gases_ dialog. Normally the planner decides on switching to a new gas when, during
|
||
ascent, the partial pressure of the new gas has increased to 1.6 bar.
|
||
|
||
*c) Gas management*: With open-circuit dives this is a primary
|
||
consideration. Divers need to keep within the limits of the amount of
|
||
gas within the dive
|
||
cylinder(s), allowing for an appropriate margin for a safe return to the surface, possibly
|
||
sharing with a buddy. Under the _Gas Options_ heading, specify the best (but conservative) estimate
|
||
of your surface-equivalent air consumption (SAC, also termed RMV) in
|
||
liters/min (for the time being, only SI units are supported). Specify the SAC during the
|
||
bottom part of the dive (_bottom SAC_) as well as during the decompression or safety stops of the
|
||
dive (_deco SAC_). Values of 15-30 l/min are common. For good gas management, a guess
|
||
is not sufficient and you needs to
|
||
monitor gas consumption on a regular basis, dependent on different dive conditions and/or equipment.
|
||
The planner calculates the total volume of gas used during the dive and issues a warning
|
||
if you exceeds the total amount of gas available. Good practice demands that divers not dive to
|
||
the limit of the gas supply but that an appropriate reserve is kept
|
||
for unforeseen circumstances.
|
||
For technical diving, this reserve can be up to 66% of the total available gas.
|
||
|
||
Now you can start the detailed time-depth planning of the dive. _Subsurface_ offers an unique
|
||
graphical interface for doing planning. Themechanics are
|
||
similar to hand-entering a dive profile in the dive log part of _Subsurface_. Upon activating the
|
||
planner, a default dive of depth 15 m for 40 min is offered in the blue design surface to the top
|
||
right hand of the screen. The white dots (waypoints) on the
|
||
profile can be dragged with a mouse. Create more waypoints by double-clicking on the profile
|
||
line and ensuring the profile reflects the intended dive. Drag the waypoints to represent
|
||
the depth and duration of the dive. It is NOT necessary to specify the ascent part of the dive
|
||
since the planner calculates this, based on the settings that have been specified.
|
||
If any of the management limits (for nitrogen, oxygen or gas) are exceeded, the surface
|
||
above the dive profile changes from BLUE to RED.
|
||
|
||
Each waypoint on the dive profile creates a _Dive Planner Point_ in the table on the
|
||
left of the dive planner panel. Be sure the _Used Gas_ value in each row
|
||
of that table corresponds to one of the gas mixtures specified in the _Available Gases_ table.
|
||
Add new waypoints until the main features of the dive have been completed, e.g. the
|
||
bottom time segment and deep stops (if these are implemented). Leave the remaining
|
||
waypoints on the ascent to _Subsurface_. In most cases _Subsurface_
|
||
computes additional way points in order to fulfill decompression requirements for that
|
||
dive. A waypoint can be moved by selecting it and by using the arrow keys.
|
||
The waypoints listed in the _Dive Planner Points_ dialogue can be edited by hand in
|
||
order to get a precise presentation of the dive plan. In fact, you can create the
|
||
whole dive profile by editing the _Dive Planner Points_ dialog.
|
||
|
||
Show any changes in gas cylinder used by indicating gas changes as explained
|
||
in the section <<S_CreateProfile,hand-creating a dive profile>>. These changes should
|
||
reflect the cylinders and gas compositions defined in the table with _Available Gases_.
|
||
If two or more gases are used, automatic gas switches will be suggested during the ascent to
|
||
the surface. These changes can be deleted by right-clicking the gas change and
|
||
manually creating a gas change by right-clicking on the appropriate
|
||
waypoint.
|
||
|
||
A non-zero value in the "CC set point" column of the table of dive planner points
|
||
indicates a valid setpoint for oxygen partial pressure and that the segment
|
||
is dived using a closed circuit rebreather (CCR). If the last manually entered
|
||
segment is a CCR segment, the decompression phase is computed assuming the diver
|
||
uses a CCR with the specified set-point. If the last segment (however
|
||
short) is on open circuit (OC, indicated by a zero set-point) the
|
||
decompression is computed in OC mode. The planner only considers gas
|
||
changes in OC mode.
|
||
|
||
Below is an example of a dive plan to 45m using EAN26, followed by an ascent using EAN50
|
||
and using the settings as described above.
|
||
|
||
image::images/DivePlanner2_f20.jpg["FIGURE: Planning a dive: setup",align="center"]
|
||
|
||
Once the above steps have been completed, save by clicking the _Save_ button
|
||
towards the top middle of the planner. The saved dive plan will appear
|
||
in the *Dive List* panel of _Subsurface_.
|
||
|
||
*The dive plan details*
|
||
|
||
On the bottom right of the dive planner, under _Dive Plan Details_, the exact details
|
||
of the dive plan are provided. These details may be modified by checking any of the
|
||
options under the _Notes_ section of the dive planner, immediately to the left
|
||
of the _Dive Plan Details_. If a _Verbatim dive plan_
|
||
is requested, a detailed sentence-level explanation of the dive plan is given. If any
|
||
of the management specifications have been exceeded during the planning, a warning
|
||
message is printed underneath the dive plan information.
|
||
|
||
If the option _Display segment duration_ is checked, then the duration of each depth
|
||
level is indicated in the _Dive Plan Details_. This duration INCLUDES the transition
|
||
time to get to that level. However, if the _Display transition in deco_ option is checked,
|
||
the transitions are shown separately from the segment durations at a particular level.
|
||
|
||
=== Planning pSCR dives
|
||
|
||
To plan a dive using a passive semi-closed rebreather (pSCR), select _pSCR_ rather than
|
||
_Open circuit_ in the dropdown list.
|
||
The parameters of the pSCR dive can be set by selecting _File -> Preferences -> Graph_
|
||
from the main menu, where the gas consumption calculation takes into account the pSCR dump
|
||
ratio (default 10:1) as well as the metabolism rate. The calculation also takes the oxygen drop
|
||
accross the mouthpiece of the rebreather into account. If the
|
||
pO~2~ drops below what is considered safe, a warning appears in the _Dive plan
|
||
details_. A typical pSCR configuration is with a single cylinder and one or more bail-out
|
||
cylinders. Therefore the setup of the _Available gases_ and the _Dive planner points_ tables
|
||
are very similar to that of a CCR dive plan, described below. However, no oxygen setpoints
|
||
are specified for pSCR dives. Below is a dive plan for a pSCR dive. The dive is comparable
|
||
to that of the CCR dive below, but note the longer ascent duration due to the lower oxygen
|
||
in the loop due to the oxygen drop across the mouthpiece of the pSCR equipment.
|
||
|
||
image::images/Planner_pSCR1_f20.jpg["FIGURE: Planning a pSCR dive: setup",align="center"]
|
||
|
||
|
||
=== Planning CCR dives
|
||
|
||
To plan a dive using a closed circuit rebreather, select the _CCR_ option in the dropdown
|
||
list, circled in blue in the image below.
|
||
|
||
*Available gases*: In the _Available gases_ table, enter the cylinder information for the
|
||
diluent cylinder and for any bail-out cylinders. Do NOT enter the information for the oxygen
|
||
cylinder since it is implied when the _CCR_ dropdown selection is made.
|
||
|
||
*Entering setpoints*: Specify a default setpoint in the Preferences tab, by selecting _File -> Preferences -> Graph_ from
|
||
the main menu. All user-entered segments in the _Dive planner points_ table
|
||
use the default setpoint value. Then, different setpoints can be specified for dive segments
|
||
in the _Dive planner points_ table. A zero setpoint
|
||
means the diver bails out to open circuit mode for that segment. Decompression is always calculated
|
||
using the setpoint of the last manually entered segment. So, to plan a bail out ascent for a
|
||
CCR dive, add a one-minute dive segment to the end with a setpoint value of 0. The decompression
|
||
algorithm does not switch deco-gases automatically while in CCR mode (i.e. when a positive setpoint is specified) but
|
||
this is calculated for bail out ascents.
|
||
|
||
The dive profile for a CCR dive may look something like the image below.
|
||
|
||
image::images/Planner_CCR1_f20.jpg["FIGURE: Planning a CCR dive: setup",align="center"]
|
||
|
||
Note that, in the _Dive plan details_, the gas consumption for a CCR segment is not calculated,
|
||
so gas consumptions of 0 liters are the norm.
|
||
|
||
[[S_Replan]]
|
||
=== Modifying an existing dive plan
|
||
|
||
Normally, when a dive plan has been saved, it is accessible from the *Dive List*, like any
|
||
other dive log. Within the *Dive List* there is no way to change a saved dive plan.
|
||
To change a dive plan, select it on the *Dive List*. Then, in the main menu,
|
||
select _Log -> Re-plan dive_. This will open the selected dive plan within the dive planner,
|
||
letting changes be made and saved as usual.
|
||
|
||
In addition, there is the option "Save new". This keeps the original
|
||
planned dive and adds a (possibly modified) copy to the dive list. If
|
||
that copy is saved with the same start time as the original, the two
|
||
dives are considered two versions of the same dive and do not
|
||
influence other each during decompression calculation (see next section).
|
||
|
||
=== Planning for repetitive dives
|
||
|
||
Repetitive dives can easily be planned if the dates and start times of the
|
||
repetitive dive set
|
||
are specified appropriately in the top left-hand _Start Time_ field. _Subsurface_
|
||
calculates the gas loading figures and the affect of the first dive is
|
||
evaluated on later dives.
|
||
|
||
If you have just completed a long/deep dive and are planning
|
||
another dive, then highlight, in the *Dive List*, the dive that has just been done
|
||
then activate the planner. Depending on the start time of the planned dive,
|
||
the planner takes into account the gas loading during the completed dive
|
||
and plans accordingly.
|
||
|
||
If only a few standard configurations are used (e.g. in GUE), then a template dive can
|
||
be created conforming to one of the configurations. If you want to plan a dive using
|
||
this configuration, highlight the template dive in the *Dive List* and activate the
|
||
planner: the planner takes into account the configuration in the highlighted dive.
|
||
|
||
=== Printing the dive plan
|
||
|
||
Selecting the _Print_ button in the planner allows printing of the _Dive Plan Details_
|
||
for wet notes. You can also cut and paste the _Dive Plan Details_ to
|
||
include in a text file or word processing document.
|
||
|
||
Dive plans have many characteristics in common with dive logs (dive profile, dive notes, etc).
|
||
After a dive plan has been saved, the dive details and gas calculations are saved in
|
||
the *Notes* tab. While a dive plan is being designed, it can be printed using
|
||
the _Print_ button in the dive planner. This prints the dive details and gas calculations
|
||
in the _Dive Plan Details_ panel of the dive planner. However, after the plan has been saved, it is
|
||
represented in a way very similar to a dive log and the gas calculations cannot be
|
||
accessed in the same way as during the planning process. The only way to print the
|
||
dive plan is to use the _File -> Print_ function on the main menu in the
|
||
same way as for dive logs or by copy and paste to a word processor.
|
||
|
||
== Description of the Subsurface Main Menu items
|
||
|
||
This section describes the functions and operation of the items in the Main Menu
|
||
of Subsurface. Several of the items below are links to sections of this manual
|
||
dealing with the appropriate operations.
|
||
|
||
=== File
|
||
- <<S_NewLogbook,_New Logbook_>> - Close the currently open dive logbook and
|
||
clear all dive information.
|
||
- _Open logbook_ - Open the file manager to select a dive
|
||
logbook to open.
|
||
- _Open cloud storage_ - Open the dive log previously saved in <<S_Cloud_storage,_Cloud storage_>>.
|
||
- _Save_ - Save the dive logbook currently open.
|
||
- _Save to cloud storage_ - Save the current dive log to <<S_Cloud_storage,_Cloud storage_>>.
|
||
- _Save as_ - Save the current logbook under a different file name.
|
||
- _Close_ - Close the dive logbook currently open.
|
||
- <<S_ExportLog,_Export_>> - Export the currently open dive logbook (or
|
||
the selected dives in the logbook) to one of several formats.
|
||
- <<S_PrintDivelog,_Print_>> - Print the currently open logbook.
|
||
- <<S_Preferences,_Preferences_>> - Set the _Subsurface_ preferences.
|
||
- <<S_FindMovedImages, _Find moved images_>> - If photos taken during dives have been moved to
|
||
a different disk or directory, locate them and link them to the appropriate dives.
|
||
- <<S_Configure,_Configure dive computer_>> - Edit the configuration of a dive computer.
|
||
- _Quit_ - Quit _Subsurface_.
|
||
|
||
=== Import
|
||
- <<S_ImportDiveComputer,_Import from dive computer_>> - Import dive information
|
||
from a dive computer.
|
||
- <<Unified_import,_Import Log Files_>> - Import dive information from a file in
|
||
in a _Subsurface_-compatible format.
|
||
- <<S_Companion,_Import GPS data from Subsurface web service_>> - Load GPS
|
||
coordinates from the _Subsurface_ mobile phone app.
|
||
- <<S_ImportingDivelogsDe,_Import from Divelogs.de_>> - Import dive information
|
||
from _www.Divelogs.de_.
|
||
|
||
=== Log
|
||
- <<S_EnterData,_Add Dive_>> - Manually add a new dive to the *Dive List* panel.
|
||
- _Edit dive_ - Edit a dive where the profile was entered by hand and not from a dive computer.
|
||
- <<S_DivePlanner,_Plan Dive_>> - Plan dives.
|
||
- <<S_Replan,_Edit dive in planner_>> - Edit a dive plan that has been saved into the *Dive List*.
|
||
- <<S_CopyComponents,_Copy dive components_>> - Copy information
|
||
from several fields of a dive log onto the clipboard.
|
||
- _Paste dive components_ - Paste, into the selected dives in the *Dive List*,
|
||
the information copied using the _Copy dive components_ option.
|
||
- <<S_Renumber,_Renumber_>> - Renumber the dives listed in the *Dive List*
|
||
panel.
|
||
- <<S_Group,_Auto Group_>> - Group the dives in the *Dive List* panel into dive
|
||
trips.
|
||
- <<S_DeviceNames,_Edit Device Names_>> - Edit the names of dive computers to coordinate your logs.
|
||
- <<S_Filter,_Filter divelist_>> - Select only some dives, based on specific tags or dive criteria.
|
||
|
||
=== View
|
||
- <<S_ViewPanels,_All_>> - View the four main _Subsurface_ panels
|
||
all at once.
|
||
- <<S_ViewPanels,_Dive List_>> - View only the *Dive List* panel.
|
||
- <<S_ViewPanels,_Profile_>> - View only the *Dive Profile* panel.
|
||
- <<S_ViewPanels,_Info_>> - View only the *Notes* panel.
|
||
- <<S_ViewPanels,_Globe_>> - View only the *World Map* panel.
|
||
- _Yearly Statistics_ - Display summary statistics about dives during this and past
|
||
years.
|
||
- _Prev DC_ - Switch to data from previous dive computer, if a single dive was logged from more than one.
|
||
- _Next DC_ - Switch to next dive computer.
|
||
- _Full Screen_ - Toggles Full Screen mode.
|
||
|
||
=== Share on
|
||
- <<S_Facebook,_Facebook_>> - Share the currently selected dive on your Facebook timeline.
|
||
|
||
|
||
=== Help
|
||
- _About Subsurface_ - Show a panel with the version number of _Subsurface_ as
|
||
well as licensing information.
|
||
- _Check for updates_ - Find out whether a newer version of Subsurface is available
|
||
on the http://subsurface-divelog.org/[_Subsurface_ web site].
|
||
- <<S_UserSurvey,_User survey_>> - Help to make _Subsurface_ even better by taking part in our user survey
|
||
or by completing another survey if your diving habits have changed.
|
||
- _User manual_ - Open a window showing this user manual.
|
||
|
||
|
||
|
||
== APPENDIX A: Operating system specific information for importing dive information from a dive computer.
|
||
|
||
=== Make sure that the OS has the required drivers installed
|
||
[icon="images/icons/drivers.jpg"]
|
||
[NOTE]
|
||
The operating system of the desktop computer needs the appropriate drivers in
|
||
order to communicate with the dive computer, the way the dive
|
||
computer prefers (e.g. Bluetooth, USB, infra-red).
|
||
|
||
* On Linux users need to have the correct kernel
|
||
module loaded. Most distributions will do this automatically, so the
|
||
user does not need to load kernel modules. However, some communication
|
||
protocols require an additional driver, especially for rarely used
|
||
technology such as infra-red.
|
||
|
||
* On Windows, the OS should offer to download the correct
|
||
driver once the user connects the dive computer to the USB port and
|
||
operating system sees the equipment for the first time.
|
||
|
||
* On a Mac users sometimes have to manually hunt for the correct
|
||
driver. For example the correct driver for the Mares Puck
|
||
devices or any other dive computer using a USB-to-serial interface
|
||
based on the Silicon Labs CP2101 or similar chip can be found as
|
||
_Mac_OSX_VCP_Driver.zip_ at the
|
||
http://www.silabs.com/support/pages/document-library.aspx?p=Interface&f=USB%20Bridges&pn=CP2101[Silicon Labs document and software repository].
|
||
|
||
[[S_HowFindDeviceName]]
|
||
=== How to Find the Device Name for USB devices and set its write permission
|
||
[icon="images/icons/usb.jpg"]
|
||
[NOTE]
|
||
When connecting a dive computer by using a USB connector, usually
|
||
_Subsurface_ will either propose a drop down list with the
|
||
correct device name (or mount point for the Uemis Zurich), or it will
|
||
disable the device select drop down if no device name is needed at
|
||
all. In the rare cases where this doesn't work, here are some
|
||
ways to find out what the device name is:
|
||
|
||
.On Windows:
|
||
|
||
Simply try COM1, COM2, etc. The drop down list should contain all connected COM
|
||
devices.
|
||
|
||
.On MacOS:
|
||
|
||
The drop down box should find all connected dive computers.
|
||
|
||
.On Linux:
|
||
|
||
There is a definitive way to find the port:
|
||
|
||
- Disconnect the USB cable from the dive computer
|
||
- Open a terminal
|
||
- Type the command: 'dmesg' and press enter
|
||
- Plug in the USB cable of the dive computer
|
||
- Type the command: 'dmesg' and press enter
|
||
|
||
A message similar to this one should appear:
|
||
|
||
usb 2-1.1: new full speed USB device number 14 using ehci_hcd
|
||
usbcore: registered new interface driver usbserial
|
||
USB Serial support registered for generic
|
||
usbcore: registered new interface driver usbserial_generic
|
||
usbserial: USB Serial Driver core
|
||
USB Serial support registered for FTDI USB Serial Device
|
||
ftdi_sio 2-1.1:1.0: FTDI USB Serial Device converter detected
|
||
usb 2-1.1: Detected FT232BM
|
||
usb 2-1.1: Number of endpoints 2
|
||
usb 2-1.1: Endpoint 1 MaxPacketSize 64
|
||
usb 2-1.1: Endpoint 2 MaxPacketSize 64
|
||
usb 2-1.1: Setting MaxPacketSize 64
|
||
usb 2-1.1: FTDI USB Serial Device converter now attached to ttyUSB3
|
||
usbcore: registered new interface driver ftdi_sio
|
||
ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver
|
||
|
||
The third line from the bottom shows that the FTDI USB adapter is
|
||
detected and connected to +ttyUSB3+. This information can now be used in
|
||
the import settings as +/dev/ttyUSB3+ which directs Subsurface to the correct
|
||
USB port.
|
||
|
||
Ensuring the user has write permission to the USB serial port:
|
||
|
||
On Unix-like operating systems the USB ports can only be accessed by users who
|
||
are members special group that can be e.g.
|
||
+dialout+ or +uucp+. This can be verified by listing the appropriate
|
||
device permissions e.g. by +ls -l /dev/ttyUSB0+. Note that the number in
|
||
the file name depends on how many USB devices you have connected, and
|
||
must be adjusted appropriately.
|
||
If one is not root, one may not be a member of
|
||
that group and
|
||
won't be able to use the USB port. Let us assume one's username is 'johnB'.
|
||
|
||
- As root, type: +usermod -a -G dialout johnB+ (Ubuntu users: +sudo usermod
|
||
-a -G dialout johnB+)
|
||
This makes johnB a member of the +dialout+ group.
|
||
- Type: +id johnB+ This lists all the groups that johnB belongs to and
|
||
verifies that
|
||
the appropriate group membership has been created. The +dialout+ group should
|
||
be listed
|
||
among the different IDs.
|
||
- Under some circumstances this change takes only effect (eg. on Ubuntu) after
|
||
one logs out and then logs in again.
|
||
|
||
With the appropriate device name (e.g. +dev/ttyUSB3+) and with write permission
|
||
to the USB
|
||
port, the dive computer interface can connect and one should be able to import
|
||
dives.
|
||
|
||
|
||
[[S_HowFindBluetoothDeviceName]]
|
||
=== Manually setting up Bluetooth enabled devices
|
||
[icon="images/icons/bluetooth.jpg"]
|
||
[NOTE]
|
||
For dive computers communicating through Bluetooth like the Heinrichs
|
||
Weikamp Frog or the Shearwater Predator, Petrel and Nerd there is a
|
||
different procedure to get the device’s name to communicate with
|
||
_Subsurface_. Follow these steps:
|
||
|
||
* *For the dive computer, after enabling Bluetooth, be sure it is in Upload mode.*
|
||
|
||
For Bluetooth pairing of the dive computer, refer to the
|
||
manufacturer's user guide. When using a Shearwater Predator/Petrel/Nerd, select
|
||
_Dive Log -> Upload Log_ and wait for the _Wait PC_ message.
|
||
|
||
* *Pair the _Subsurface_ computer with the dive computer.*
|
||
|
||
==== On Windows:
|
||
|
||
Bluetooth is most likely already enabled. For pairing with the dive computer choose
|
||
_Control Panel -> Bluetooth Devices -> Add Wireless Device_.
|
||
This should bring up a dialog showing your dive computer (which should be in Bluetooth mode) and
|
||
allowing pairing. Right click on it and choose _Properties-> COM
|
||
Ports_ to identify the port used for your dive computer. If there are several
|
||
ports listed, use the one saying "Outgoing" instead of "Incoming".
|
||
|
||
For downloading to _Subsurface_, the _Subsurface_ drop-down list should contain
|
||
this COM port already. If not, enter it manually.
|
||
|
||
Note: If there are issues afterwards when downloading from the dive computer using
|
||
other software, remove the existing pairing with the dive computer.
|
||
|
||
==== On MacOS:
|
||
|
||
Click on the Bluetooth symbol in the menu bar and select _Set up
|
||
Bluetooth Device..._. The dive computer should then show up in the list of devices. Select it and go
|
||
through the pairing process. This step should only be needed once for
|
||
initial setup.
|
||
|
||
Once the pairing is complete, the correct device is shown in the
|
||
'Device or Mount Point' drop-down in the _Subsurface_ *Import* dialog.
|
||
|
||
==== On Linux
|
||
Be sure Bluetooth is enabled on the _Subsurface_ computer.
|
||
On most common distributions this should be true out of the box and
|
||
pairing should be straightforward. For instance, Gnome3 shows a
|
||
Bluetooth icon on the right of the toolbar at the top of the screen.
|
||
Users have reported difficulties with some Bluetooth controllers. If you have an onboard controller,
|
||
try that first. It is simplest if you remove any USB Bluetooth dongles. If you have a USB dongle that
|
||
came with your dive computer, try that before any others.
|
||
|
||
Setting up a connection to download dives from your Bluetooth-enabled device, such as the
|
||
_Shearwater Petrel_, is not yet an automated process and will generally require the command prompt.
|
||
It is essentially a three step process.
|
||
|
||
- Enable the Bluetooth controller and pair your dive computer
|
||
- Establish an RFCOMM connection
|
||
- Download the dives with Subsurface
|
||
|
||
Ensure the dive computer is in upload mode. On the _Shearwater Petrel_, _Petrel 2_ and _Nerd_
|
||
cycle through the menu, select 'Dive Log', then 'Upload Log'. The display will read 'Initializing', then
|
||
'Wait PC 3:00' and will countdown. Once the connection is established, the display reads 'Wait CMD ...'
|
||
and the countdown continues. When downloading the dive from Subsurface, the display reads 'Sending' then
|
||
'Sent Dive'.
|
||
|
||
To establish the connection, establish root access through +sudo+ or +su+.
|
||
The correct permission is required to download the dives in the computer. On most Linux systems this means becoming
|
||
a member of the dialout group (This is identical as for many dive computers using a Linux USB port, described
|
||
in the previous section). On the command terminal, enter:
|
||
|
||
+sudo usermod -a -G dialout username+
|
||
|
||
Then log out and log in for the change to take effect.
|
||
|
||
===== Enabling the Bluetooth controller and pairing your dive computer
|
||
|
||
Attempt to set up the Bluetooth controller and pair your dive computer using the graphical
|
||
environment of the operating system. After setting the dive computer to upload mode, click the Bluetooth icon in the system tray
|
||
and select 'Add new device'. The dive computer should appear. If asked for a password, enter 0000.
|
||
Write down or copy the MAC address of your dive computer - this needed later and should be in the form 00:11:22:33:44:55.
|
||
|
||
If the graphical method doesn't work, pair the device from the command line. Open a terminal
|
||
and use +hciconfig+ to check the Bluetooth controller status
|
||
|
||
$ hciconfig
|
||
hci0: Type: BR/EDR Bus: USB
|
||
BD Address: 01:23:45:67:89:AB ACL MTU: 310:10 SCO MTU: 64:8
|
||
*DOWN*
|
||
RX bytes:504 acl:0 sco:0 events:22 errors:0
|
||
TX bytes:92 acl:0 sco:0 commands:21 errors:0
|
||
|
||
This indicates a Bluetooth controller with MAC address 01:23:45:67:89:AB, connected as hci0.
|
||
Its status is 'DOWN', i.e. not powered. Additional controllers will appear as hci1, etc.
|
||
If there is not a Bluetooth dongle plugged in upon booting the computer, hci0 is probably the onboard.
|
||
Now power on the controller and enable authentication:
|
||
|
||
sudo hciconfig hci0 up auth+ (enter password when prompted)
|
||
hciconfig
|
||
hci0: Type: BR/EDR Bus: USB
|
||
BD Address: 01:23:45:67:89:AB ACL MTU: 310:10 SCO MTU: 64:8
|
||
*UP RUNNING PSCAN AUTH*
|
||
RX bytes:1026 acl:0 sco:0 events:47 errors:0
|
||
TX bytes:449 acl:0 sco:0 commands:46 errors:0
|
||
|
||
Check that the status now includes +'UP', 'RUNNING' AND 'AUTH'+.
|
||
|
||
If there are multiple controllers running, it's easiest to off the unused controller(s). For example, for +hci1+:
|
||
|
||
sudo hciconfig hci1 down
|
||
|
||
Next step is to 'trust' and 'pair' the dive computer. On distros with Bluez 5, such as Fedora 22,
|
||
one can use a tool called +blutootctl+, which will bring up its own command prompt.
|
||
|
||
bluetoothctl
|
||
[NEW] Controller 01:23:45:67:89:AB localhost.localdomain [default]
|
||
[bluetooth]# agent on
|
||
Agent registered
|
||
[bluetooth]# default-agent
|
||
Default agent request successful
|
||
[bluetooth]# scan on <----now set your dive computer to upload mode
|
||
Discovery started
|
||
[CHG] Controller 01:23:45:67:89:AB Discovering: yes
|
||
[NEW] Device 00:11:22:33:44:55 Petrel
|
||
[bluetooth]# trust 00:11:22:33:44:55 <----you can use the tab key to autocomplete the MAC address
|
||
[CHG] Device 00:11:22:33:44:55 Trusted: yes
|
||
Changing 00:11:22:33:44:55 trust succeeded
|
||
[bluetooth]# pair 00:11:22:33:44:55
|
||
Attempting to pair with 00:11:22:33:44:55
|
||
[CHG] Device 00:11:22:33:44:55 Connected: yes
|
||
[CHG] Device 00:11:22:33:44:55 UUIDs: 00001101-0000-1000-8000-0089abc12345
|
||
[CHG] Device 00:11:22:33:44:55 Paired: yes
|
||
Pairing successful
|
||
[CHG] Device 00:11:22:33:44:55 Connected: no
|
||
|
||
If asked for a password, enter 0000. It's ok if the last line says 'Connected: no'. The important part
|
||
is the line above, +Pairing successful+.
|
||
|
||
If the system has Bluez version 4 (e.g. Ubuntu 12.04 through to 15.04), there is probably not a
|
||
+bluetoothctl+, but a script called +bluez-simple-agent+ or just +simple-agent+.
|
||
|
||
hcitool -i hci0 scanning
|
||
Scanning ...
|
||
00:11:22:33:44:55 Petrel
|
||
bluez-simple-agent hci0 00:11:22:33:44:55
|
||
|
||
Once ther dive computer is pired, set up the RFCOMM connection
|
||
|
||
===== Establishing the RFCOMM connection
|
||
|
||
The command to establish an RFCOMM connection is:
|
||
|
||
+sudo rfcomm -i <controller> connect <dev> <bdaddr> [channel]+
|
||
|
||
- +<controller>+ is the Bluetooth controller, +hci0+.
|
||
- +<dev>+ is the RFCOMM device file, +rfcomm0+
|
||
- +<bdaddr>+ is the dive computer's MAC address, +00:11:22:33:44:55+
|
||
- +[channel]+ is the dive computer's Bluetooth channel we need to connect to.
|
||
|
||
If one omits it, channel 1 is assumed. Based on a limited number of user reports,
|
||
the appropriate channel for the dive computer is probably:
|
||
|
||
- _Shearwater Petrel 1_: channel 1
|
||
- _Shearwater Petrel 2_: channel 5
|
||
- _Shearwater Nerd_: channel 5
|
||
- _Heinrichs-Weikamp OSTC Sport_: channel 1
|
||
|
||
E.g. to connect a _Shearwater Petrel 2_, set the dive computer to upload mode and enter:
|
||
|
||
sudo rfcomm -i hci0 connect rfcomm0 00:11:22:33:44:55 5 (enter a password, probably 0000, when prompted)
|
||
|
||
This gives the response:
|
||
|
||
Connected /dev/rfcomm0 to 00:11:22:33:44:55 on channel 5
|
||
Press CTRL-C for hangup
|
||
|
||
To connect a _Shearwater Petrel 1+ or + HW OSTC Sport+, set the dive computer to upload mode and enter:
|
||
|
||
sudo rfcomm -i hci0 connect rfcomm0 00:11:22:33:44:55 (enter a password, probably 0000, when prompted)
|
||
Connected /dev/rfcomm0 to 00:11:22:33:44:55 on channel 1
|
||
Press CTRL-C for hangup
|
||
|
||
If the specific channel the dive computer needs is not known, or the channel in the list above doesn't
|
||
work, the command +sdptool records+ should help determine the appropriate channel. The output
|
||
below is for a _Shearwater Petrel 2_.
|
||
|
||
sdptool -i hci0 records 00:11:22:33:44:55
|
||
Service Name: Serial Port
|
||
Service RecHandle: 0x10000
|
||
Service Class ID List:
|
||
"Serial Port" (0x1101)
|
||
Protocol Descriptor List:
|
||
"L2CAP" (0x0100)
|
||
"RFCOMM" (0x0003)
|
||
Channel: 5
|
||
|
||
For a Bluetooth dive computer not in the list above, or if the channel listed is not correct, please
|
||
let the Subsurface developers know on the user forum or the developer mailing list _subsurface@subsurface-divelog.org_.
|
||
|
||
===== Download the dives with Subsurface
|
||
After establishing the RFCOMM connection and while the dive computer's upload mode countdown is still running, go to_Subsurface_, select _Import->Import from dive computer_ and enter appropriate Vendor (e.g. _Shearwater_), Dive Computer (_Petrel_), Device or Mount Point (_/dev/rfcomm0_) and click _Download_.
|
||
|
||
|
||
|
||
|
||
[[_appendix_b_dive_computer_specific_information_for_importing_dive_information]]
|
||
|
||
== APPENDIX B: Dive Computer specific information for importing dive data.
|
||
|
||
[[S_ImportUemis]]
|
||
=== Importing from Uemis Zurich
|
||
|
||
[icon="images/icons/iumis.jpg"]
|
||
[NOTE]
|
||
_Subsurface_ downloads the information
|
||
stored on the SDA (the built-in file system of the Uemis) including
|
||
information about dive spots and
|
||
equipment. Buddy information is not yet downloadable.
|
||
Things are very similar to a normal USB-connected dive computer
|
||
(the Uemis is one of those that recharge when connected to the USB port).
|
||
The main difference is that you don’t enter a
|
||
device name, but instead the location where the UEMISSDA file system is
|
||
mounted once connected to the dive computer. On Windows this is a drive letter (
|
||
often 'E:' or 'F:'), on a Mac this is
|
||
'/Volumes/UEMISSDA' and on Linux systems this differs depending on the
|
||
distribution. On Fedora it usually is
|
||
'/var/run/media/<your_username>/UEMISSDA'. In all cases _Subsurface_
|
||
should suggest the correct location in the drop down list.
|
||
|
||
After selecting the above device name, download the
|
||
dives from the Uemis Zurich. One technical issue with the Uemis Zurich
|
||
download implementation (this is a Uemis firmware limitation, not a
|
||
_Subsurface_ issue) is that you cannot download more than about 40-50
|
||
dives without running out of memory on the SDA. This will usually only
|
||
happen the very first time you download dives from the Uemis Zurich.
|
||
Normally when downloading at the end of a day or even after a dive
|
||
trip, the capacity is sufficient. If _Subsurface_ displays an error
|
||
that the dive computer ran out of space, the solution is straightforward.
|
||
Disconnect the SDA, turn it off and on again, and reconnect
|
||
it. You can now retry (or start a new download session) and the
|
||
download will continue where it stopped previously. You
|
||
may have to do this more than once, depending on how many dives are
|
||
stored on the dive computer.
|
||
|
||
[[S_ImportingGalileo]]
|
||
=== Importing from Uwatec Galileo
|
||
|
||
[icon="images/icons/Galileo.jpg"]
|
||
[NOTE]
|
||
The Uwatec Galileo dive computers use infra red (IrDA) communication
|
||
between the dive computer and Subsurface. The Uwatec hardware uses
|
||
a USB dongle based on the serial infra-red (SIR) protocol and the
|
||
MSC7780 IrDA controller manufactured by MosChip
|
||
and marketed by Scubapro and some electronics companies.
|
||
Under Linux, the kernel
|
||
already provides for communication using the IrDA protocol. However,
|
||
the user additionally needs to load a driver for the IrDA interface
|
||
with the dive computer. The easiest way is to load the *irda-tools*
|
||
package from the http://irda.sourceforge.net/docs/startirda.html[Linux IrDA Project].
|
||
After the installation of the irda-tools, the *root user* can specify a device name
|
||
from the console as follows:
|
||
+irattach irda0+
|
||
|
||
After executing this command, Subsurface will recognize the Galileo
|
||
dive computer and download dive information.
|
||
|
||
Under Windows, a similar situation exists. Drivers for the MCS7780 are
|
||
available from some Internet web sites e.g.
|
||
http://www.drivers-download.com/Drv/MosChip/MCS7780/[www.drivers-download.com]. Windows-based IrDA
|
||
drivers for the Uwatec can also be downloaded from the ScubaPro web site, with drivers located on
|
||
the download page for the ScubaPro SmartTrak software.
|
||
|
||
For the Apple Mac, IrDA communication via the MCS7780 link is not
|
||
available for OSX 10.6 or higher.
|
||
|
||
[[S_ImportingDR5]]
|
||
=== Importing from Heinrichs Weikamp DR5
|
||
|
||
[icon="images/icons/HW_DR5.jpg"]
|
||
[NOTE]
|
||
When mounted as a USB drive the Heinrichs Weikamp DR5 saves a single UDDF file
|
||
for every dive.
|
||
Mark all the dives you'd like to import or open.
|
||
Note: The DR5 does not seem to store gradient factors nor deco information, so
|
||
for _Subsurface_ it is not possible to display them. Adjust the gradient
|
||
factors in the _Graph Settings_ in _Subsurface_ to generate a deco overlay in the
|
||
_Subsurface_ *Dive Profile* panel but please note that the deco calculated by
|
||
_Subsurface_ will most likely differ from the one displayed on the DR5.
|
||
|
||
|
||
[[S_ImportingXDeep]]
|
||
=== Importing from xDEEP BLACK
|
||
|
||
[icon="images/icons/HW_xdeepblack.jpg"]
|
||
[NOTE]
|
||
Each dive has to be individually saved as UDDF file using "Export UDDF" option in BLACK's logbook menu.
|
||
When mounted as a USB drive UDDF files are available in LOGBOOK directory.
|
||
Note: The xDEEP BLACK saves NDL time but does not seem to store gradient factors nor deco information, so
|
||
for _Subsurface_ it is not possible to display them. Adjust the gradient
|
||
factors in the _Graph Settings_ in _Subsurface_ to generate a deco overlay in the
|
||
_Subsurface_ *Dive Profile* panel but please note that the deco calculated by
|
||
_Subsurface_ will most likely differ from the one displayed on the xDEEP BLACK.
|
||
|
||
|
||
=== Importing from Shearwater Predator/Petrel/Nerd using Bluetooth
|
||
|
||
[icon="images/icons/predator.jpg"]
|
||
[NOTE]
|
||
Specific instructions for downloading dives using Bluetooth are given in the section above, <<S_Bluetooth,_Connecting Subsurface to a Bluetooth-enabled dive computer_>>.
|
||
|
||
[[S_PoseidonMkVI]]
|
||
=== Importing from Poseidon MkVI Discovery
|
||
|
||
[icon="images/MkVI.jpeg"]
|
||
[NOTE]
|
||
Download of dive logs from the MkVI is performed using a custom communications
|
||
adapter and the _Poseidon PC Configuration Software_, obtained when purchasing
|
||
the MKVI equipment. The latter is a Windows application allowing configuration
|
||
of equipment and storage of dive logs. Communication between dive computer and
|
||
desktop computer utilizes the IrDA infra-red protocol. Only data for one dive
|
||
can be downloaded at a time, in three files:
|
||
|
||
- Setup configuration for the dive and key dive parameters (file with a .txt
|
||
extension)
|
||
- Dive log details (file with a .csv extension)
|
||
- Redbook format dive log (file with .cvsr extension). This is a compressed
|
||
version of the dive log using a proprietary format.
|
||
|
||
_Subsurface_ accesses the .txt and the .csv files to get dive log information.
|
||
|
||
|
||
=== Importing from APD Inspiration/Evolution CCR
|
||
|
||
[icon="images/APDComputer.jpg"]
|
||
[NOTE]
|
||
The dive logs of an APD Inspiration or similar CCR dive computer are downloaded using
|
||
a communications adapter and _AP Communicator_, obtained when
|
||
purchasing the equipment. The dive logs can be viewed using the _AP Log Viewer_,
|
||
within Windows or Mac/OS. However, APD logs can be viewed and managed from within
|
||
_Subsurface_ (together with dives using many other types of dive computer). The
|
||
APD inspiration dive logs are imported into _Subsurface_ as follows:
|
||
|
||
- Download the dive using _AP Communicator_.
|
||
- Open a dive within the _AP Log Viewer_.
|
||
- Select the tab at the top of the screen, entitled "_Data_".
|
||
- With the raw dive log data show on the screen, click on "_Copy to Clipboard_".
|
||
- Open a text editor, e.g. Notepad (Windows) or TextWrangler (Mac).
|
||
- Copy the contents of the clipboard into the text editor and save the text file
|
||
with a filename extension of _.apd_
|
||
- Within _Subsurface_, select _Import -> Import log files_ to open the xref:Unified_import[universal import dialogue].
|
||
- In the dropdown list towards the bottom right of the dialogue (labeled 'Filter:'), select "APD log viewer".
|
||
- On the list of file names select the _.apd_ file created. An import
|
||
dialogue opens showing the default settings for the data in the
|
||
_.apd_ file. If changes are required,
|
||
do this as for xref:S_ImportingCSVDives[CSV imports].
|
||
|
||
image::images/APD_CSVimportF22.jpg["Figure: APD log viewer import",align="center"]
|
||
|
||
- The top left hand dropdown box in the import panel lets you select the APD dive computer
|
||
for which the dive log needs to be imported. The default it is DC1, _i.e._ the
|
||
first of the two dive computers the APD uses. It is possible to sequentially
|
||
import the data for both dive computers by first importing CD1 and then DC2.(*Hint*: The logs
|
||
for the two dive computers are viewed by selecting _View -> Next DC_ from
|
||
the Main Menu after the uploading has been completed)
|
||
- Click the _Ok_ button at the bottom of the import panel.
|
||
|
||
The APD dive log will appear within _Subsurface_. The dive computer- generated ceiling
|
||
provided by the Inspiration can be viewed by selecting the appropriate
|
||
button on the left of the *Dive Profile*. Cylinder pressure data are not logged
|
||
by the APD equipment but can be manually entered in the _Equipment_ Tab.
|
||
|
||
== APPENDIX C: Exporting Dive log information from external dive log software.
|
||
|
||
The import of dive log data from external dive log software is mostly performed
|
||
using
|
||
the dialogue found by selecting _Import_ from the Main Menu, then clicking on
|
||
_Import Log Files_. This is a single-step process, more information about which
|
||
can be found
|
||
xref:Unified_import[here.]
|
||
However, in some cases, a two-step process may be required:
|
||
|
||
1. Export the foreign dive log data to format that is accessible from
|
||
_Subsurface_.
|
||
2. Import the accessible dive log data into _Subsurface_.
|
||
|
||
This appendix provides some information about approaches to export dive log
|
||
data from foreign
|
||
dive log software. The procedures below mostly apply to Linux and/or Windows.
|
||
|
||
[[S_ImportingDivesSuunto]]
|
||
=== Exporting from *Suunto Divemanager (DM3, DM4 or DM5)*
|
||
[icon="images/icons/suuntologo.jpg"]
|
||
[NOTE]
|
||
DiveManager is a MS Windows application for Suunto dive computers.
|
||
Divemanager 3 (DM3) is an older version of the Suunto software. More recent
|
||
Suunto dive computers use Divemanager version 4 or 5 (DM4 or DM5). The
|
||
different versions of Divemanager use different methods and different file naming
|
||
conventions to export dive log data.
|
||
|
||
*Divemanager 3 (DM3):*
|
||
|
||
1. Start 'Suunto Divemanager 3' and log in with the name containing the logs
|
||
2. Do not start the import wizard to import dives from the dive computer.
|
||
3. In the navigation tree on the left side of the program-window, select the appropriate
|
||
dives.
|
||
4. Within the list of dives, select the dives you would like to import later:
|
||
* To select certain dives: hold 'ctrl' and click the dive
|
||
* To select all dives: Select the first dive, hold down shift and
|
||
select the last dive
|
||
5. With the dives marked, use the program menu _File -> Export_
|
||
6. The export pop-up will show. Within this pop-up, there is one field called 'Export Path'.
|
||
* Click the browse button next to the field Export Path
|
||
** A file-manager like window pops up
|
||
** Navigate to the directory for storing the
|
||
Divelog.SDE file
|
||
** Optionally change the name of the file for saving
|
||
** Click 'Save'
|
||
* Back in the Export pop-up, press the button 'Export'
|
||
7. The dives are now exported to the file Divelog.SDE.
|
||
|
||
*Divemanager 4 (DM4) and Divemanager 5 (DM5):*
|
||
|
||
DM4 and DM5 use identical mechanisms for exporting dive logs.
|
||
To export a divelog from Divemanager you need to locate the DM4/DM5 database
|
||
where the dives are stored. You can either look for the original
|
||
database or make a backup of the dives. Both methods are described here.
|
||
|
||
Locating the Suunto DM4 (or DM5) database:
|
||
|
||
1. Start Suunto DM4/DM5
|
||
2. Select 'Help -> About'
|
||
3. Click 'Copy' after text 'Copy log folder path to clipboard'
|
||
4. Open Windows Explorer
|
||
5. Paste the address to the path box at the top of the File Explorer
|
||
6. The database is called DM4.db or DM5.db
|
||
|
||
Making a backup copy of the Suunto DM4/DM5 database:
|
||
|
||
1. Start Suunto DM4/DM5
|
||
2. Select 'File - Create backup'
|
||
3. From the file menu select the location and name for the backup, we'll
|
||
use DM4 (or DM5) in here with the default extension .bak
|
||
4. Click 'Save'
|
||
5. The dives are now exported to the file DM4.bak (or DM5.bak)
|
||
|
||
|
||
=== Exporting from Atomic Logbook
|
||
[[Atomic_Export]]
|
||
|
||
[icon="images/icons/atomiclogo.jpg"]
|
||
[NOTE]
|
||
Atomic Logbook is a Windows software by Atomic Aquatics. It allows
|
||
downloading of dive information from Cobalt and Cobalt 2 dive computers.
|
||
The divelog is kept in a SQLite database at
|
||
C:\ProgramData\AtomicsAquatics\Cobalt-Logbook\Cobalt.db. This file can
|
||
be directly imported to Subsurface.
|
||
|
||
|
||
=== Exporting from Mares Dive Organiser V2.1
|
||
[[Mares_Export]]
|
||
|
||
[icon="images/icons/mareslogo.jpg"]
|
||
[NOTE]
|
||
Mares Dive Organizer is a Windows application. The dive log is kept as a
|
||
Microsoft SQL Compact Edition database with a '.sdf' filename extension. The
|
||
database includes all Dive Organizer-registered divers on the particular
|
||
computer and all Mares dive computers used. The safest way to get a copy
|
||
of the dive database is to export the information to another compatible format
|
||
which can then be imported into _Subsurface_.
|
||
|
||
1. Within Dive Organizer, select
|
||
_Database -> Backup_ from the main menu and back up the database to the desk
|
||
top.
|
||
This creates a zipped file DiveOrganizerxxxxx.dbf.
|
||
2. Rename the file to
|
||
DiveOrganizerxxxxx.zip. Inside the zipped directory is a file
|
||
_DiveOrganizer.sdf_.
|
||
3. Extract the _.sdf_ file from the zipped folder to your Desktop.
|
||
4. The password for accessing the .zip file is _mares_.
|
||
|
||
[[S_ImportingDivingLog]]
|
||
=== Exporting from *DivingLog 5.0 and 6.0*
|
||
|
||
[icon="images/icons/divingloglogo.jpg"]
|
||
[NOTE]
|
||
The best way to bring your logs from DivingLog to Subsurface is to
|
||
convert the whole database. This is because other export formats do not
|
||
include all the details, and would lack, for example, gas switches and
|
||
information of what units are used. With database import, all this
|
||
information is included and readily available.
|
||
|
||
To transfer all files from DivingLog to Subsurface:
|
||
|
||
1. In DivingLog open the 'File -> Export -> SQLite' menu
|
||
2. Select 'Settings' button
|
||
3. Set the 'RTF2Plaintext' to 'true'
|
||
4. Close the Settings dialog
|
||
5. Click 'Export' button and select the filename
|
||
|
||
Once this is done, open the saved database file with Subsurface and the
|
||
dives are automatically converted to Subsurface’s own format. Last step to do is
|
||
save the log file in Subsurface.
|
||
|
||
== APPENDIX D: Exporting a spreadsheet to CSV format
|
||
[[S_Appendix_D]]
|
||
|
||
Many divers keep a dive log in some form of digital file, commonly a spreadsheet
|
||
with various fields of information. These logs can be easily imported into _Subsurface_ after the
|
||
spreadsheet is converted in a .CSV file.
|
||
This section explains the procedure to convert a diving logbook stored in a spreadsheet
|
||
to a .CSV file that will later be imported to _Subsurface_.
|
||
Creating a .CSV is straightforward, although the procedure is somewhat different
|
||
according to which spreadsheet program is used.
|
||
|
||
Organize the diving data in the spreadsheet, so the first row
|
||
contains the names (or titles) of each column and the information for each dive is stored in a single row.
|
||
_Subsurface_ supports many data items (Dive number, Date,
|
||
Time, Duration, Location, GPS, Max Depth, Mean Depth, Buddy, Notes, Weight and Tags).
|
||
Organize dive data following a few simple rules:
|
||
|
||
1. Date: use one of the following formats: yyyy-mm-dd, dd.mm.yyyy, mm/dd/yyyy
|
||
2. Duration: the format should be minutes:seconds.
|
||
3. Unit system: only one unit system should be used (no mix of imperial and metric units)
|
||
4. Tags and buddies: values should be separated using a comma.
|
||
5. GPS position: use decimal degrees, e.g. 30.22496 30.821798
|
||
=== _LibreOffice Calc_ and _OpenOffice Calc_
|
||
|
||
These are open source spreadsheet applications forming parts of larger open source office suite applications. The user interaction with _LibreOffice_ and _OpenOffice_ is very similar.
|
||
In Libreoffice Calc the time format should be set to minutes:seconds - [mm]:ss and dates should be set to one of: yyyy-mm-dd, dd.mm.yyyy, mm/dd/yyyy. A typical dive log may look like this:
|
||
|
||
image::images/LOffice_spreadsheetdata.jpg["FIGURE: Spreadsheet data",align="center"]
|
||
|
||
To export the data as a .CSV file from within LibreOffice click _File -> Save As_. On the dialogue that comes up, select the _Text CSV (.csv)_ as the file type and select the option _Edit filter settings_.
|
||
|
||
image::images/LOffice_save_as_options.jpg["FIGURE: Save as options",align="center"]
|
||
|
||
After selecting _Save_, select the appropriate field delimiter (choose _Tab_ to prevent conflicts with the comma when using this as a decimal point), then select _OK_.
|
||
|
||
image::images/LOffice_field_options.jpg["FIGURE: Field options",align="center"]
|
||
|
||
Double check the .CSV file by opening it with a text editor, and then import the dive data as explained on the section xref:S_ImportingCSVDives[Importing CSV dives].
|
||
|
||
=== Microsoft _Excel_
|
||
|
||
The field delimiter (called "_list separator_" in Microsoft manuals) is not accessible
|
||
from within _Excel_ and needs to be set through the _Microsoft Control Panel_. After changing the
|
||
separator character, all software on the Windows machine uses the new character as a separator.
|
||
You can change the character back to the default character by following the same procedure, outlined below.
|
||
|
||
- In Microsoft Windows, click the *Start* button, then select _Control Panel_ from the list on the right-hand side.
|
||
- Open the _Regional and Language Options_ dialog box.
|
||
- Do one of the following:
|
||
** In Windows 7, click the _Formats_ tab, and then click _Customize this format_.
|
||
** In Windows XP, click the _Regional Options_ tab, and then click _Customize_.
|
||
- Type a new separator in the _List separator_ box. To use a TAB-delimited file, type the word TAB in the box.
|
||
- Click _OK_ twice.
|
||
|
||
Below is an image of the _Control Panel_:
|
||
|
||
image::images/Win_SaveCSV2.jpg["FIGURE: Win List separator",align="center"]
|
||
|
||
To export the dive log in CSV format:
|
||
|
||
With the dive log opened in _Excel_, select the round Windows button at the top left, then _Save As_.
|
||
|
||
image::images/Win_SaveCSV1.jpg["FIGURE: Excel save as option",align="center"]
|
||
|
||
Click on the left-hand part of the _Save as_ option, NOT on the arrow on the right-hand. This brings up a dialogue for saving the
|
||
spreadsheet in an alternative format. From the dropdown list at the
|
||
bottom of the dialogue, marked _Save as Type:_, select _CSV(Comma delimited) (*.CSV)_. Be sure the appropriate folder has been
|
||
selected to save the CSV file into.
|
||
|
||
image::images/Win_SaveCSV3.jpg["FIGURE: Excel save CSV dialogue",align="center"]
|
||
|
||
Select the _Save_ button. The CSV-formatted file is saved into the
|
||
folder that was selected. You can double check the .CSV file by
|
||
opening it with a text editor, then import the dive data as
|
||
explained on the section xref:S_ImportingCSVDives[Importing CSV dives].
|
||
[[S_APPENDIX_E]]
|
||
== APPENDIX E: Writing a custom print template
|
||
|
||
_Subsurface_ has a way to create or modify templates for printing dive logs to
|
||
produce customized printouts of them. Templates written in HTML, as well as a simple
|
||
Grantlee instruction set, are rendered to the print device by _Subsurface_.
|
||
|
||
Templates are accessed using the print dialogue (see image *B* below).
|
||
|
||
image::images/Print1_f22.jpg["FIGURE: Print dialogue",align="center"]
|
||
|
||
The buttons under the _Template_ dropdown box lets you _Edit_, _Delete_,
|
||
_Import_ and _Export_ templates (see image *A* above). New or modified templates are stored as HTML
|
||
files in the same directory as the dive log being processed. In order to create or modify
|
||
a template, select one of the templates from the template dropdown list in the print dialogue
|
||
(see image *B* above). Choose an existing template that resembles the final desired printout. Then select _Edit_.
|
||
|
||
The Edit Panel has three tabs:
|
||
|
||
image::images/Template1_f22.jpg["FIGURE: template edit dialogue",align="center"]
|
||
|
||
1) The _Style_ tab (image *A* above) controls the font, line spacing and color template used for printing the dive log.
|
||
The style attributes are editable. Choose one of the four color palettes used for color printing.
|
||
|
||
2) The _Colors_ tab (image *B* above) allows editing the colors used for printing the dive log. The colors are highly
|
||
customizable: the _Edit_ buttons in the _Colors_ tab allows choosing arbitrary colors for different
|
||
components of the dive log printout.
|
||
|
||
3) The _Template_ tab of the Edit Panel (see image below) allows creating a template using HTML as well as a few
|
||
Grantlee programming primitives. Grantlee can create and format HTML code in
|
||
a highly simple but efficient way (see below). The HTML of the template can be edited and saved. The saved
|
||
template is stored in the same directory as the dive being processed. By default, a _Custom_
|
||
template is a skeleton with no specific print instructions. The information printed
|
||
needs to be specified and formatted in the template by replacing the section marked with:
|
||
"<!-- Template must be filled -->". Writing HTML code with Grantlee instructions allows unlimited
|
||
freedom in determining what is printed and in which way it should be rendered.
|
||
|
||
image::images/Template2_f22.jpg["FIGURE:Template tab",align="center"]
|
||
|
||
You can adapt any of the existing templates and save it to the dive log directory. The standard templates (e.g. One dive, Six dives,
|
||
Table) can be modified in this way. After completing the edits, use the _Export_ button in the print
|
||
dialogue to save the new template using a new template name.
|
||
|
||
To write a custom template, the following elements must exist so the template will be correctly handled and rendered.
|
||
|
||
=== Main dive loop
|
||
_Subsurface_ exports a dive list called (*dives*) to the _Grantlee_ back end. It is possible to iterate over the list as follows:
|
||
.template.html
|
||
....
|
||
{% for dive in dives %}
|
||
<h1> {{ dive.number }} </h1>
|
||
{% endfor %}
|
||
....
|
||
|
||
.output.html
|
||
....
|
||
<h1> 1 </h1>
|
||
<h1> 2 </h1>
|
||
<h1> 3 </h1>
|
||
....
|
||
|
||
Additional information about _Grantlee_ can be found at http://www.grantlee.org/apidox/for_themers.html[here]
|
||
|
||
=== Grantlee exported variables
|
||
Only a subset of the dive data is exported:
|
||
|====================
|
||
|*Name*|*Description*
|
||
|number| (*int*) dive number
|
||
|id| (*int*) unique dive ID, should be used to fetch the dive profile
|
||
|date| (*string*) date of the dive
|
||
|time| (*string*) time of the dive
|
||
|location| (*string*) location of the dive
|
||
|duration| (*string*) duration of the dive
|
||
|depth| (*string*) depth of the dive
|
||
|divemaster| (*string*) dive master for the dive
|
||
|buddy| (*string*) buddy for the dive
|
||
|airTemp| (*string*) air temperature of the dive
|
||
|waterTemp| (*string*) water temperature of the dive
|
||
|notes| (*string*) dive notes
|
||
|rating| (*int*) dive rating which ranges from 0 to 5
|
||
|sac| (*string*) SAC value for the dive
|
||
|tags| (*string*) list of dive tags for the dive
|
||
|gas| (*string*) list of gases used in the dive
|
||
|suit| (*string*) the suit used for the dive
|
||
|cylinders| (*string*) complete information of all used cylinders
|
||
|cylinder0-7| (*string*) information about a specific cylinder
|
||
|weights| (*string*) complete information of all used weight systems
|
||
|weight0-5| (*string*) information about a specific weight system
|
||
|maxcns| (*string*) maxCNS value for the dive
|
||
|otu| (*string*) OTU value for the dive
|
||
|=====================
|
||
|
||
_Subsurface_ also exports *template_options* data. This data must be used as _CSS_ values to provide a dynamically
|
||
editable template. The exported data is shown in the following table:
|
||
|====================
|
||
|*Name*|*Description*
|
||
|font| (*string*) font family
|
||
|borderwidth| (*int*) border-width value dynamically calculated as 0.1% of the page width with minimum value of 1px
|
||
|font_size| (*double*) size of fonts in vw, ranges between 1.0 and 2.0
|
||
|line_spacing| (*double*) distance between text lines, ranges between 1.0 and 3.0
|
||
|color1| (*string*) background color
|
||
|color2| (*string*) primary table cell color
|
||
|color3| (*string*) secondary table cell color
|
||
|color4| (*string*) primary text color
|
||
|color5| (*string*) secondary text color
|
||
|color6| (*string*) border colors
|
||
|=====================
|
||
|
||
.template.html
|
||
....
|
||
border-width: {{ template_options.borderwidth }}px;
|
||
....
|
||
|
||
.output.html
|
||
....
|
||
border-width: 3px;
|
||
....
|
||
|
||
Another variable that _Subsurface_ exports is *print_options*. This variable contains a single member:
|
||
|=====================
|
||
|*Name*|*Description*
|
||
|grayscale | Use _CSS_ filters to convert the page into grayscale (should be added to body style to enable printing grayscale prints)
|
||
|=====================
|
||
|
||
|
||
.template.html
|
||
....
|
||
body {
|
||
{{ print_options.grayscale }};
|
||
}
|
||
....
|
||
|
||
.output.html
|
||
....
|
||
body {
|
||
-webkit-filter: grayscale(100%);
|
||
}
|
||
....
|
||
|
||
=== Defined CSS selectors
|
||
As the dive profile is placed after rendering, _Subsurface_ uses special _CSS_ selectors to searche
|
||
in the HTML output. The _CSS_ selectors in the following table should be added.
|
||
|
||
|====================
|
||
|*Selector*|*Type*|*Description*
|
||
|dive_{{ dive.id }} | id | is used to fetch the relevant dive profile
|
||
|diveProfile | class | each dive that will contain a dive profile should have this class selector in addition to the dive_{{ dive.id }} id selector
|
||
|dontbreak | class | prevents the dive with this class from being divided into two pages. This can be used
|
||
in flow layout templates only (when data-numberofdives = 0)
|
||
|=====================
|
||
|
||
IMPORTANT: Rendering dive profiles is not supported for flow layout templates (when data-numberofdives = 0).
|
||
|
||
=== Special attributes
|
||
|
||
There are two ways of rendering- either rendering a specific number of dives in each page or make _Subsurface_ try to
|
||
fit as many dives as possible into one page (_flow_ rendering).
|
||
|
||
The *data-numberofdives* data attribute is added to the body tag to set the rendering mode.
|
||
|
||
- render 6 dives per page:
|
||
|
||
....
|
||
<body data-numberofdives = 6>
|
||
....
|
||
|
||
- render as much dives as possible:
|
||
|
||
....
|
||
<body data-numberofdives = 0>
|
||
....
|
||
|
||
IMPORTANT: All CSS units should be in relative lengths only, to support printing on any page size.
|
||
|
||
== APPENDIX F: FAQs.
|
||
[[S_APPENDIX_F]]
|
||
=== Subsurface appears to miscalculate gas consumption and SAC
|
||
[[SAC_CALCULATION]]
|
||
'Question': I dived with a 12.2 l tank, starting with 220 bar and ending with 100 bar, and I calculate a different SAC compared what _Subsurface_ calculates. Is _Subsurface_
|
||
miscalculating?
|
||
|
||
'Answer': Not really. What happens is that _Subsurface_ actually calculates gas
|
||
consumption differently - and better - than you expect.
|
||
In particular, it takes the incompressibility of the gas into account.
|
||
Traditionally, gas consumption and SAC should be:
|
||
+consumption = tank size x (start pressure - end pressure)+
|
||
|
||
and that's true for an ideal gas, and it's what you get taught in dive theory.
|
||
But an "ideal gas" doesn't actually exist, and real gases actually don't compress
|
||
linearly with pressure. Also, you are missing the fact that one atmosphere of
|
||
pressure isn't actually one bar.
|
||
So the *real* calculation is:
|
||
|
||
+consumption = (amount_of_air_at_beginning - amount_of_air_at_end)+
|
||
|
||
where the amount of air is *not* just "tank size times pressure in bar".
|
||
It's a combination of: "take compressibility into account" (which is a fairly
|
||
small issue under 220 bar - you'll see more differences when you do high-pressure
|
||
tanks with 300bar) and "convert bar to atm" (which is the majority of your discrepancy).
|
||
Remember: one ATM is ~1.013 bar, so without the compressibility, your gas use is:
|
||
|
||
+12.2*((220-100)/1.013)+
|
||
|
||
which is about 1445, not 1464. So there was 19 l too much in your simple
|
||
calculation that ignored the difference between 1 bar and one ATM.
|
||
The compressibility does show up above 200 bar, and takes that 1445 down
|
||
about eight litres more, so you really did use only about 1437 l of air at surface pressure.
|
||
|
||
So be happy: your SAC really is better than your calculations indicated.
|
||
Or be sad: your cylinder contains less air than you thought it did.
|
||
And as mentioned, the "contains less air than you thought it did" really
|
||
starts becoming much more noticeable at high pressure. A 400 bar really does not
|
||
contain twice as much air as a 200 bar one. At lower pressures, air acts pretty much like an ideal gas.
|
||
|
||
=== Some dive profiles have time discrepancies with the recorded samples from my dive computer...
|
||
|
||
_Subsurface_ ends up ignoring surface time for many things (average depth, divetime, SAC, etc).
|
||
'Question': Why do dive durations in my dive computer differ from that given by _Subsurface_?
|
||
|
||
'Answer': For example, if you end up doing a weight check (deep enough to trigger the "dive started")
|
||
but then come back up and wait five minutes for your buddies, your dive computer may say
|
||
that your dive is 50 minutes long - because you have fifty minutes worth of samples - but
|
||
subsurface will say it's 45 minutes - because you were actually diving for 45 minutes.
|
||
It's even more noticeable if you do things like divemastering the initial OW dives, when
|
||
you may stay in the water for a long time, but spend most of it at the surface. And then
|
||
you don't want that to count as some kind of long dive”.
|
||
|
||
=== Some dive profiles are missing from the download
|
||
|
||
[[DC_HISTORY]]
|
||
'Question': I cannot download all my dives, only the most recent ones,
|
||
even though my dive computer's manual states that it records history of
|
||
e.g. 999 dives?
|
||
'Answer': Dive history is different than the dive profiles on the log.
|
||
The history only keeps track of the total number of dives and total
|
||
amount of time spent below surface. The logs, on the other hand, store
|
||
the dive profile, but they have a limited amount of memory to do so. The
|
||
exact amount of dive profiles that can be stored on the device depends on
|
||
sample interval and duration of the dives. Once the memory is full the
|
||
oldest dives get overwritten with new dives. Thus we are only able to
|
||
download the last 13, 30 or 199 dives.
|
||
|
||
If you have downloaded your dives to different dive logging software
|
||
before they were overwritten, there is a good chance that Subsurface can
|
||
import these. However, if the logs are only on your dive computer, they
|
||
cannot be salvaged after being overwritten by new dives.
|