mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
ed9e5fe0f3
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
813 lines
34 KiB
Text
813 lines
34 KiB
Text
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
|
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
|
|
<meta name="generator" content="AsciiDoc 8.6.9" />
|
|
<title></title>
|
|
<style type="text/css">
|
|
/*
|
|
* compact_subsurface.css, a special style sheet for Subsurface,
|
|
* modified by Willem Ferguson and derived from:
|
|
* compact.css, version 1.3 by Alex Efros <powerman@powerman.name>
|
|
* Licence: Public Domain
|
|
*
|
|
* Usage: asciidoc -a theme=compact_subsurface ...
|
|
*/
|
|
|
|
* { padding: 0; margin: 0; }
|
|
img { border: 0; }
|
|
|
|
/*** Layout ***/
|
|
|
|
body { margin: 10px 20px; }
|
|
#header br { display: none; }
|
|
#revnumber { display: block; }
|
|
#toc { margin: 1em 0; }
|
|
.toclevel2 { margin-left: 1em; }
|
|
.toclevel3 { margin-left: 2em; }
|
|
#footer { margin-top: 2em; }
|
|
|
|
#preamble .sectionbody,
|
|
h2,
|
|
h3,
|
|
h4,
|
|
h5 { margin: 1em 0 0 0; }
|
|
|
|
.admonitionblock,
|
|
.listingblock,
|
|
.sidebarblock,
|
|
.exampleblock,
|
|
.tableblock,
|
|
.literalblock { margin: 1em 0; }
|
|
.admonitionblock td.icon { padding-right: 0.5em; }
|
|
.admonitionblock td.content { padding-left: 0.5em; }
|
|
.listingblock .content { padding: 0.5em; }
|
|
.sidebarblock > .content { padding: 0.5em; }
|
|
.exampleblock > .content { padding: 0 0.5em; }
|
|
.tableblock caption { padding: 0 0 0.5em 0; }
|
|
.tableblock thead th,
|
|
.tableblock tbody td,
|
|
.tableblock tfoot td { padding: 0 0.5em; }
|
|
.quoteblock { padding: 0 2.0em; }
|
|
|
|
.paragraph { margin: 1em 0 0 0; }
|
|
.sidebarblock .paragraph:first-child,
|
|
.exampleblock .paragraph:first-child,
|
|
.admonitionblock .paragraph:first-child { margin: 0; }
|
|
|
|
.ulist, .olist, .dlist, .hdlist, .qlist { margin: 1em 0; }
|
|
li .ulist, li .olist, li .dlist, li .hdlist, li .qlist,
|
|
dd .ulist, dd .olist, dd .dlist, dd .hdlist, dd .qlist { margin: 0; }
|
|
ul { margin-left: 1.5em; }
|
|
ol { margin-left: 2em; }
|
|
dd { margin-left: 3em; }
|
|
td.hdlist1 { padding-right: 1em; }
|
|
|
|
/*** Fonts ***/
|
|
|
|
body { font-family: Verdana, sans-serif; }
|
|
#header { font-family: Arial, sans-serif; }
|
|
#header h1 { font-family: Arial, sans-serif; }
|
|
#footer { font-family: Georgia, serif; }
|
|
#email { font-size: 0.85em; }
|
|
#revnumber { font-size: 0.75em; }
|
|
#toc { font-size: 0.9em; }
|
|
#toctitle { font-weight: bold; }
|
|
#footer { font-size: 0.8em; }
|
|
|
|
h2, h3, h4, h5, .title { font-family: Arial, sans-serif; }
|
|
h2 { font-size: 1.5em; }
|
|
.sectionbody { font-size: 0.85em; }
|
|
.sectionbody .sectionbody { font-size: inherit; }
|
|
h3 { font-size: 159%; } /* 1.35em */
|
|
h4 { font-size: 141%; } /* 1.2em */
|
|
h5 { font-size: 118%; } /* 1em */
|
|
.title { font-size: 106%; /* 0.9em */
|
|
font-weight: bold;
|
|
}
|
|
|
|
tt, .monospaced { font-family: monospace; font-size: 106%; } /* 0.9em */
|
|
dt, td.hdlist1, .qlist em { font-family: Times New Roman, serif;
|
|
font-size: 118%; /* 1em */
|
|
font-style: italic;
|
|
}
|
|
.tableblock tfoot td { font-weight: bold; }
|
|
|
|
/*** Colors and Backgrounds ***/
|
|
|
|
h1 { color: #527bbd; border-bottom: 2px solid silver; }
|
|
#footer { border-top: 2px solid silver; }
|
|
|
|
h2 { color: #527bbd; border-bottom: 2px solid silver; }
|
|
h3 { color: #5D7EAE; border-bottom: 2px solid silver; }
|
|
h3 { display: inline-block; }
|
|
h4,h5 { color: #5D7EAE; }
|
|
|
|
.admonitionblock td.content { border-left: 2px solid silver; }
|
|
.listingblock .content { background: #f4f4f4; border: 1px solid silver; border-left: 5px solid #e0e0e0; }
|
|
.sidebarblock > .content { background: #ffffee; border: 1px solid silver; border-left: 5px solid #e0e0e0; }
|
|
.exampleblock > .content { border-left: 2px solid silver; }
|
|
.quoteblock { border-left: 5px solid #e0e0e0; }
|
|
.tableblock table {
|
|
border-collapse: collapse;
|
|
border-width: 3px;
|
|
border-color: #527bbd;
|
|
}
|
|
.tableblock table[frame=hsides] { border-style: solid none; }
|
|
.tableblock table[frame=border] { border-style: solid; }
|
|
.tableblock table[frame=void] { border-style: none; }
|
|
.tableblock table[frame=vsides] { border-style: none solid; }
|
|
.tableblock table[rules=all] tbody tr *,
|
|
.tableblock table[rules=rows] tbody tr * {
|
|
border-top: 1px solid #527bbd;
|
|
}
|
|
.tableblock table[rules=all] tr *,
|
|
.tableblock table[rules=cols] tr * {
|
|
border-left: 1px solid #527bbd;
|
|
}
|
|
.tableblock table tbody tr:first-child * {
|
|
border-top: 1px solid white; /* none don't work here... %-[] */
|
|
}
|
|
.tableblock table tr *:first-child {
|
|
border-left: none;
|
|
}
|
|
.tableblock table[frame] thead tr *,
|
|
.tableblock table[frame] thead tr * {
|
|
border-top: 1px solid white;
|
|
border-bottom: 2px solid #527bbd;
|
|
}
|
|
.tableblock table tr td p.table,
|
|
.tableblock table tr td p.table * {
|
|
border: 0px;
|
|
}
|
|
|
|
tt, .monospaced { color: navy; }
|
|
|
|
li { color: #a0a0a0; }
|
|
li > * { color: black; }
|
|
|
|
span.aqua { color: aqua; }
|
|
span.black { color: black; }
|
|
span.blue { color: blue; }
|
|
span.fuchsia { color: fuchsia; }
|
|
span.gray { color: gray; }
|
|
span.green { color: green; }
|
|
span.lime { color: lime; }
|
|
span.maroon { color: maroon; }
|
|
span.navy { color: navy; }
|
|
span.olive { color: olive; }
|
|
span.purple { color: purple; }
|
|
span.red { color: red; }
|
|
span.silver { color: silver; }
|
|
span.teal { color: teal; }
|
|
span.white { color: white; }
|
|
span.yellow { color: yellow; }
|
|
|
|
span.aqua-background { background: aqua; }
|
|
span.black-background { background: black; }
|
|
span.blue-background { background: blue; }
|
|
span.fuchsia-background { background: fuchsia; }
|
|
span.gray-background { background: gray; }
|
|
span.green-background { background: green; }
|
|
span.lime-background { background: lime; }
|
|
span.maroon-background { background: maroon; }
|
|
span.navy-background { background: navy; }
|
|
span.olive-background { background: olive; }
|
|
span.purple-background { background: purple; }
|
|
span.red-background { background: red; }
|
|
span.silver-background { background: silver; }
|
|
span.teal-background { background: teal; }
|
|
span.white-background { background: white; }
|
|
span.yellow-background { background: yellow; }
|
|
|
|
span.big { font-size: 2em; }
|
|
span.small { font-size: 0.6em; }
|
|
|
|
span.underline { text-decoration: underline; }
|
|
span.overline { text-decoration: overline; }
|
|
span.line-through { text-decoration: line-through; }
|
|
|
|
/*** Misc ***/
|
|
|
|
.admonitionblock td.icon { vertical-align: top; }
|
|
.attribution { text-align: right; }
|
|
|
|
ul { list-style-type: disc; }
|
|
ol.arabic { list-style-type: decimal; }
|
|
ol.loweralpha { list-style-type: lower-alpha; }
|
|
ol.upperalpha { list-style-type: upper-alpha; }
|
|
ol.lowerroman { list-style-type: lower-roman; }
|
|
ol.upperroman { list-style-type: upper-roman; }
|
|
.hdlist td { vertical-align: top; }
|
|
|
|
|
|
</style>
|
|
<script type="text/javascript">
|
|
/*<![CDATA[*/
|
|
var asciidoc = { // Namespace.
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
// Table Of Contents generator
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
/* Author: Mihai Bazon, September 2002
|
|
* http://students.infoiasi.ro/~mishoo
|
|
*
|
|
* Table Of Content generator
|
|
* Version: 0.4
|
|
*
|
|
* Feel free to use this script under the terms of the GNU General Public
|
|
* License, as long as you do not remove or alter this notice.
|
|
*/
|
|
|
|
/* modified by Troy D. Hanson, September 2006. License: GPL */
|
|
/* modified by Stuart Rackham, 2006, 2009. License: GPL */
|
|
|
|
// toclevels = 1..4.
|
|
toc: function (toclevels) {
|
|
|
|
function getText(el) {
|
|
var text = "";
|
|
for (var i = el.firstChild; i != null; i = i.nextSibling) {
|
|
if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
|
|
text += i.data;
|
|
else if (i.firstChild != null)
|
|
text += getText(i);
|
|
}
|
|
return text;
|
|
}
|
|
|
|
function TocEntry(el, text, toclevel) {
|
|
this.element = el;
|
|
this.text = text;
|
|
this.toclevel = toclevel;
|
|
}
|
|
|
|
function tocEntries(el, toclevels) {
|
|
var result = new Array;
|
|
var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
|
|
// Function that scans the DOM tree for header elements (the DOM2
|
|
// nodeIterator API would be a better technique but not supported by all
|
|
// browsers).
|
|
var iterate = function (el) {
|
|
for (var i = el.firstChild; i != null; i = i.nextSibling) {
|
|
if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
|
|
var mo = re.exec(i.tagName);
|
|
if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
|
|
result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
|
|
}
|
|
iterate(i);
|
|
}
|
|
}
|
|
}
|
|
iterate(el);
|
|
return result;
|
|
}
|
|
|
|
var toc = document.getElementById("toc");
|
|
if (!toc) {
|
|
return;
|
|
}
|
|
|
|
// Delete existing TOC entries in case we're reloading the TOC.
|
|
var tocEntriesToRemove = [];
|
|
var i;
|
|
for (i = 0; i < toc.childNodes.length; i++) {
|
|
var entry = toc.childNodes[i];
|
|
if (entry.nodeName.toLowerCase() == 'div'
|
|
&& entry.getAttribute("class")
|
|
&& entry.getAttribute("class").match(/^toclevel/))
|
|
tocEntriesToRemove.push(entry);
|
|
}
|
|
for (i = 0; i < tocEntriesToRemove.length; i++) {
|
|
toc.removeChild(tocEntriesToRemove[i]);
|
|
}
|
|
|
|
// Rebuild TOC entries.
|
|
var entries = tocEntries(document.getElementById("content"), toclevels);
|
|
for (var i = 0; i < entries.length; ++i) {
|
|
var entry = entries[i];
|
|
if (entry.element.id == "")
|
|
entry.element.id = "_toc_" + i;
|
|
var a = document.createElement("a");
|
|
a.href = "#" + entry.element.id;
|
|
a.appendChild(document.createTextNode(entry.text));
|
|
var div = document.createElement("div");
|
|
div.appendChild(a);
|
|
div.className = "toclevel" + entry.toclevel;
|
|
toc.appendChild(div);
|
|
}
|
|
if (entries.length == 0)
|
|
toc.parentNode.removeChild(toc);
|
|
},
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
// Footnotes generator
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
/* Based on footnote generation code from:
|
|
* http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
|
|
*/
|
|
|
|
footnotes: function () {
|
|
// Delete existing footnote entries in case we're reloading the footnodes.
|
|
var i;
|
|
var noteholder = document.getElementById("footnotes");
|
|
if (!noteholder) {
|
|
return;
|
|
}
|
|
var entriesToRemove = [];
|
|
for (i = 0; i < noteholder.childNodes.length; i++) {
|
|
var entry = noteholder.childNodes[i];
|
|
if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
|
|
entriesToRemove.push(entry);
|
|
}
|
|
for (i = 0; i < entriesToRemove.length; i++) {
|
|
noteholder.removeChild(entriesToRemove[i]);
|
|
}
|
|
|
|
// Rebuild footnote entries.
|
|
var cont = document.getElementById("content");
|
|
var spans = cont.getElementsByTagName("span");
|
|
var refs = {};
|
|
var n = 0;
|
|
for (i=0; i<spans.length; i++) {
|
|
if (spans[i].className == "footnote") {
|
|
n++;
|
|
var note = spans[i].getAttribute("data-note");
|
|
if (!note) {
|
|
// Use [\s\S] in place of . so multi-line matches work.
|
|
// Because JavaScript has no s (dotall) regex flag.
|
|
note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
|
|
spans[i].innerHTML =
|
|
"[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
|
|
"' title='View footnote' class='footnote'>" + n + "</a>]";
|
|
spans[i].setAttribute("data-note", note);
|
|
}
|
|
noteholder.innerHTML +=
|
|
"<div class='footnote' id='_footnote_" + n + "'>" +
|
|
"<a href='#_footnoteref_" + n + "' title='Return to text'>" +
|
|
n + "</a>. " + note + "</div>";
|
|
var id =spans[i].getAttribute("id");
|
|
if (id != null) refs["#"+id] = n;
|
|
}
|
|
}
|
|
if (n == 0)
|
|
noteholder.parentNode.removeChild(noteholder);
|
|
else {
|
|
// Process footnoterefs.
|
|
for (i=0; i<spans.length; i++) {
|
|
if (spans[i].className == "footnoteref") {
|
|
var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
|
|
href = href.match(/#.*/)[0]; // Because IE return full URL.
|
|
n = refs[href];
|
|
spans[i].innerHTML =
|
|
"[<a href='#_footnote_" + n +
|
|
"' title='View footnote' class='footnote'>" + n + "</a>]";
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
install: function(toclevels) {
|
|
var timerId;
|
|
|
|
function reinstall() {
|
|
asciidoc.footnotes();
|
|
if (toclevels) {
|
|
asciidoc.toc(toclevels);
|
|
}
|
|
}
|
|
|
|
function reinstallAndRemoveTimer() {
|
|
clearInterval(timerId);
|
|
reinstall();
|
|
}
|
|
|
|
timerId = setInterval(reinstall, 500);
|
|
if (document.addEventListener)
|
|
document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
|
|
else
|
|
window.onload = reinstallAndRemoveTimer;
|
|
}
|
|
|
|
}
|
|
asciidoc.install(3);
|
|
/*]]>*/
|
|
</script>
|
|
</head>
|
|
<body class="article">
|
|
<div id="header">
|
|
</div>
|
|
<div id="content">
|
|
<div class="imageblock" style="text-align:center;">
|
|
<div class="content">
|
|
<img src="mobile-images/banner.jpg" alt="Banner" />
|
|
</div>
|
|
</div>
|
|
<div class="paragraph"><p><span class="big">Subsurface-mobile para Android: MANUAL DE USUARIO</span></p></div>
|
|
<div class="paragraph"><p><strong>Manual author</strong>: Willem Ferguson</p></div>
|
|
<div id="toc">
|
|
<div id="toctitle">Table of Contents</div>
|
|
<noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
|
|
</div>
|
|
<div class="paragraph"><p><span class="blue"><em>Version 1.0, Marzo 2016</em></span></p></div>
|
|
<div class="paragraph"><p>Bienvenido a <em>Subsurface</em> un avanzado programa de registro de inmersiones con
|
|
extensa infraestructura para describir, organizar, interpretar e imprimir
|
|
inmersiones, con botella o a pulmón. <em>Subsurface</em> ofrece muchas ventajas sobre
|
|
otras soluciones de software similares, entre ellas se incluye la
|
|
compatibilidad con Windows, Mac-OS/X, Linux (muchas distribuciones) y también
|
|
Android (en desarrollo un versión para iOS). Además, <em>Subsurface</em> es un
|
|
software de código abierto que permite descargar información de inmersiones
|
|
desde la mayoría de los ordenadores de buceo.</p></div>
|
|
<div class="sect1">
|
|
<h2 id="_presentación_de_subsurface_mobile">1. Presentación de Subsurface-mobile</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph"><p><em>Subsurface-mobile</em> es una extensión del <em>Subsurface</em> que ejecutamos en
|
|
ordenadores portátiles o de sobremesa. Corre en teléfonos y tabletas Android y
|
|
es una herramienta para ver o compartir información de buceo en el mismo lugar
|
|
de la inmersión, donde no suele ser posible disponer de un ordenador completo.
|
|
También permite recoger las posiciones GPS donde se realizan las inmersiones.</p></div>
|
|
<div class="paragraph"><p>Está en desarrollo una versión de <em>Subsurface-mobile</em> para iOS pero aún no
|
|
está lista para probarla.</p></div>
|
|
<div class="paragraph"><p>Aunque <em>Subsurface-mobile</em> nos permite introducir y guardar información de
|
|
buceo utilizando un dispositivo android, los usuarios de <em>Subsurface-mobile</em>
|
|
utilizan, habitualmente, la app como una extension de la versión para
|
|
ordenadores de <em>Subsurface</em>. Esto permite el almacenamiento de divelogs en
|
|
Internet, que pueden compartirse entre las versiones para Android y PC. Aunque
|
|
la versión para ordenador muestra una información mucho más detallada de cada
|
|
inmersión, la versión para móvil nos permite tener esta información más
|
|
accesible durante un viaje, lo que puede resultar util para demostrar nuestra
|
|
experiencia de buceo en tiendas o centros, o simplemente revisar inmersiones
|
|
anteriores.</p></div>
|
|
<div class="paragraph"><p><em>Subsurface-mobile</em> nos permite:</p></div>
|
|
<div class="ulist"><ul>
|
|
<li>
|
|
<p>
|
|
Descargar la información del divelog desde internet.
|
|
</p>
|
|
</li>
|
|
<li>
|
|
<p>
|
|
Visualizar esta información en un dispositivo Android.
|
|
</p>
|
|
</li>
|
|
<li>
|
|
<p>
|
|
Editar muchos de los campos de datos del registro, por ejemplo, el
|
|
dive-master, el compañero, las anotaciones, etc.
|
|
</p>
|
|
</li>
|
|
<li>
|
|
<p>
|
|
Crear y añadir nuevas inmersiones a nuestro divelog. Guardar el divelog
|
|
actualizado en Internet.
|
|
</p>
|
|
</li>
|
|
<li>
|
|
<p>
|
|
Registrar y aplicar las posiciones GPS de las inmersiones.
|
|
</p>
|
|
</li>
|
|
<li>
|
|
<p>
|
|
Visualizar las localizaciones de las posiciones GPS en un mapa.
|
|
</p>
|
|
</li>
|
|
</ul></div>
|
|
<div class="paragraph"><p>Todas estas posibilidades se comentan con más detalle en el texto siguiente.</p></div>
|
|
<div class="paragraph"><p>Lo que <em>Subsurface-mobile</em> no soporta (en estos momentos) es descargar datos
|
|
directamente desde el ordenador de buceo. Esto aún debe realizarse desde un
|
|
PC. Estamos investigando formas de descargar desde una parte de los
|
|
ordenadores de buceo soportados a los dispositivos Android, pero esta parte
|
|
aún no esta lista para ser probada.</p></div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_instalar_em_subsurface_mobile_em_en_un_dispositivo_android">2. Instalar <em>Subsurface-mobile</em> en un dispositivo Android</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph"><p>Encuentra Subsurface-mobile_ en el Play Store de Google. Busca
|
|
<em>Subsurface-mobile</em> e instalalo.</p></div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_utilizar_em_subsurface_mobile_em_por_primera_vez">3. Utilizar <em>Subsurface-mobile</em> por primera vez</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph"><p>Al iniciar <em>Subsurface-mobile</em> se muestra una pantalla de presentación
|
|
mientras se carga el programa. En algunos dispositivos esto puede llevar
|
|
algunos segundos. Tras haber cargado, aparecerá una <em>pantalla de credenciales
|
|
de la nube</em> (ver la imagen de la izquierda, a continuación).</p></div>
|
|
<div class="imageblock" style="text-align:center;">
|
|
<div class="content">
|
|
<img src="mobile-images/landingscreen.jpg" alt="FIGURA: Pantalla inicial" />
|
|
</div>
|
|
</div>
|
|
<div class="paragraph"><p>Dado que <em>Subsurface-mobile</em> es totalmente dependiente del registro guardado
|
|
en Internet, introduce una dirección de correo electrónico y la password para
|
|
acceder al servidor de almacenamiento en la nube de <em>Subsurface</em>. Estas
|
|
credenciales se obtienen abriendo la versión de <em>Subsurface</em> para ordenador y
|
|
pulsando <em>Archivo → Preferencias → Red</em>, y se explica en detalle en el manual
|
|
de la versión de ordenador de <em>Subsurface</em>. Una vez que se ha creado y
|
|
verificado utilizando la versión de ordenador, se puede utilizar
|
|
<em>Subsurface-mobile</em>.</p></div>
|
|
<div class="paragraph"><p>Al introducir la password, es posible seleccionar la casilla "Recordar" que
|
|
permite a <em>Subsurface-mobile</em> guardar las credenciales para próximas
|
|
conexiones (ver la imagen anterior), Tras haber introducido las credenciales,
|
|
pulsa el icono del disco, en la parte inferior de la pantalla.
|
|
<em>Subsurface-mobile</em> intentará descargar la información guardada en el servidor
|
|
y, finalmente, se mostrará una lista de inmersiones (imagen a la izquierda a
|
|
continuación).</p></div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_copia_local_del_divelog_y_sincronización_con_internet">4. Copia local del divelog y sincronización con Internet</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph"><p>Una vez que se haya descargado la lista de inmersiones desde Internet,
|
|
<em>Subsurface-mobile</em> guardará una copia en el dispositivo móvil. Esto
|
|
significa que, si no hay conexión a Internet en el punto de buceo, aún se
|
|
puede acceder a la copia local y manipular la información. Si existe conexión
|
|
a Internet, <em>Subsurface-mobile</em> accede al registro guardado en la nube para
|
|
verificar si la copia local es aún la misma que la remota. Si no fuera así, la
|
|
copia local se sincronizará con la versión del servidor.</p></div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_algunas_observaciones_sobre_la_interfaz_de_usuario">5. Algunas observaciones sobre la interfaz de usuario</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph"><p>En la parte inferior de muchas de las pantallas de <em>Subsurface-mobile</em>,
|
|
aparece un botón redondo que habilita varias acciones y permite la selección
|
|
de la principal acción afirmativa (ver las imágenes anterior y a
|
|
continuación). En dispositivos Android, se utiliza el botón "Volver" para
|
|
realizar las acciones de cancelar, descartar o volver. Por ejemplo, al editar
|
|
una inmersión, pulsar el <em>botón de acciones</em> guarda los cambios, mientras que
|
|
el botón "Volver" de Android, puede utilizarse para cancelar la edición sin
|
|
guardar los cambios.</p></div>
|
|
<div class="imageblock" style="text-align:center;">
|
|
<div class="content">
|
|
<img src="mobile-images/actionbutton.jpg" alt="FIGURE: Action Button" />
|
|
</div>
|
|
</div>
|
|
<div class="paragraph"><p>Para abrir menús, en vez del tradicional botón tipo "hamburgesa" en la esquina
|
|
superior derecha de la pantalla, <em>Subsurface-mobile</em> utiliza una filosofía de
|
|
interacción con el usuario diferente, basada en el sistema Kirigami, diseñado
|
|
por el equipo de desarrolladores de Plasma. Para abrir el menú principal se
|
|
dispone de tres opciones:</p></div>
|
|
<div class="ulist"><ul>
|
|
<li>
|
|
<p>
|
|
Pulsar el símbolo de flecha-derecha en la parte inferior izquierda de la
|
|
pantalla (fácil de alcanzar con una sola mano en dispositivos tipo
|
|
smartphone).
|
|
</p>
|
|
</li>
|
|
<li>
|
|
<p>
|
|
Desplazar hacia la derecha desde el borde de la pantalla.
|
|
</p>
|
|
</li>
|
|
<li>
|
|
<p>
|
|
Arrastrar hacia la derecha el <em>botón de acciones</em> visible en la mayoría de
|
|
pantallas.
|
|
</p>
|
|
</li>
|
|
</ul></div>
|
|
<div class="imageblock" style="text-align:center;">
|
|
<div class="content">
|
|
<img src="mobile-images/menu.jpg" alt="FIGURE: Dive management subpanel" />
|
|
</div>
|
|
</div>
|
|
<div class="paragraph"><p>Las imágenes anteriores muestran algunas de las características más
|
|
importantes del sistema de menús. A la izquierda está el menú principal que
|
|
se activa como se ha explicado antes. En el centro está el menú que se abre al
|
|
pulsar la opción <em>GPS</em> desde el principal. A la derecha, el menú que se abre
|
|
al pulsar la opción _Manage Dives_desde el principal.</p></div>
|
|
<div class="paragraph"><p>De forma similar, el menú contextual (actualmente solo disponible en la
|
|
pantalla de detalles de la inmersión) puede abrirse de una de estas tres
|
|
formas:</p></div>
|
|
<div class="ulist"><ul>
|
|
<li>
|
|
<p>
|
|
Pulsando en el símbolo de la flecha-izquierda en la esquina inferior derecha
|
|
de la pantalla.
|
|
</p>
|
|
</li>
|
|
<li>
|
|
<p>
|
|
Desplazando hacia la izquierda desde el borde de la pantalla.
|
|
</p>
|
|
</li>
|
|
<li>
|
|
<p>
|
|
Arrastrando el "botón de acciones" hacia la izquierda.
|
|
</p>
|
|
</li>
|
|
</ul></div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_visualizar_la_lista_de_inmersiones">6. Visualizar la lista de inmersiones</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph"><p>La mayoría de las acciones de <em>Subsurface-mobile</em> se centran alrededor de las
|
|
inmersiones de la lista. Mientras se carga la lista desde la nube, aparece un
|
|
mensaje en la parte inferior de la pantalla, indicando que se está accediendo
|
|
a la misma (ver imagen izquierda a continuación). Una vez que la lista se ha
|
|
cargado, nos podemos desplazar arriba y abajo.
|
|
Al pulsar una inmersión de la lista aparecerá una pantalla de <em>Vista de
|
|
Detalles</em> para dicho buceo (ver imagen derecha a continuación). En ella se
|
|
incluye el perfil de la inmersión, información adicional y notas.</p></div>
|
|
<div class="imageblock" style="text-align:center;">
|
|
<div class="content">
|
|
<img src="mobile-images/divelist.jpg" alt="FIGURE: Dive list screen" />
|
|
</div>
|
|
</div>
|
|
<div class="paragraph"><p>Se pueden visualizar otras inmersiones desplazando la <em>Vista de Detalles</em>
|
|
hacia la derecha, para el buceo posterior, o hacia la izquierda para el
|
|
anterior.</p></div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_editar_los_detalles_de_la_inmersión">7. Editar los detalles de la inmersión.</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph"><p>En la parte inferior de la pantalla, el <em>Botón de Acciones</em> contiene un lápiz
|
|
(imagen anterior derecha).
|
|
Pulsar el botón hará que se muestre un panel con casillas de edición que nos
|
|
permitirán modificar la información existente, p.e. añadiendo texto a las
|
|
notas o cambiando nombres o valores en otras casillas (ver imagen a
|
|
continuación). Puede ser necesario desplazar la ventana para poder acceder a
|
|
toda la información. En la parte inferior de la pantalla de edición, el
|
|
<em>Botón de Acciones</em> mostrará un icono de <em>Guardar</em>. Púlsalo para guardar los
|
|
cambios efectuados. Tras haberlos guardado, la pantalla de la lista de
|
|
inmersiones se actualizará y mostrará. Si se desea cancelar la edición se
|
|
pulsa el botón "Volver" de Android.</p></div>
|
|
<div class="imageblock" style="text-align:center;">
|
|
<div class="content">
|
|
<img src="mobile-images/editdive.jpg" alt="FIGURE: Dive edit screen" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_añadir_una_nueva_inmersión_a_la_lista">8. Añadir una nueva inmersión a la lista</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph"><p>También es posible añadir una inmersión adicional a la lista existente. Desde
|
|
el menú principal, pulsar <em>Manage dives → Add dive manually</em>. Esto abrirá una
|
|
pantalla idéntica a la de edición comentada anteriormente. Al añadir
|
|
manualmente una inmersión, no se puede añadir un perfil del ordenador de
|
|
buceo. Sin embargo, si no se usa un ordenador de buceo, la duración,
|
|
profundidad y varias otras informaciones pueden ser introducidas.
|
|
El <em>Botón de acciones</em>, en la parte inferior de la pantalla, contendrá el
|
|
icono de un disco. Púlsalo para guardar la nueva inmersión. Para cancelar las
|
|
ediciones pulsa el botón "Volver" de Android.
|
|
La imagen de la izquierda, a continuación, muestra una captura de pantalla de
|
|
una inmersión que está siendo creada, y la imagen de la derecha muestra la
|
|
misma inmersión en la <em>Vista de detalles</em>.</p></div>
|
|
<div class="imageblock" style="text-align:center;">
|
|
<div class="content">
|
|
<img src="mobile-images/createdive.jpg" alt="FIGURE: Dive edit screen" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_borrar_una_inmersión">9. Borrar una inmersión</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph"><p>La <em>Vista de detalles</em> de una inmersión tiene un menú contextual en el lado
|
|
derecho que puede activarse como se ha descrito anteriormente (p.e. pulsando
|
|
el icono de flecha en la parte inferior derecha de la pantalla o arrastrando
|
|
el <em>Botón de acciones</em> hacia la izquierda).
|
|
El menú contextual contiene una sola opción: "Delete dive". Si se pulsa esta
|
|
opción, la inmersión mostrada en la <em>Vista de detalles</em> será borrada. Se
|
|
dispone de una breve posibilidad de anular el borrado pulsando el botón <em>undo</em>
|
|
en el mensaje que aparecerá en la parte inferior de la pantalla. Si no se
|
|
pulsa dicho botón la inmersión se borrará.</p></div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_mantenimiento_del_divelog">10. Mantenimiento del divelog</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph"><p>Una parte central de <em>Subsurface-mobile</em> es su capacidad para guardar la
|
|
información de buceo haciendo uso del almacenamiento en la nube de
|
|
<em>Subsurface</em>. Esto proporciona seguridad frente a los daños o la perdida de
|
|
la copia del divelog guardada localmente y permite a la versión de sobremesa
|
|
de <em>Subsurface</em> acceder a los cambios realizados con el dispositivo móvil.
|
|
Se accede a esta capacidad a través del menú principal (arrastrando el <em>Botón
|
|
de acciones</em> hacia la derecha, o pulsando la flecha en la parte inferior
|
|
izquierda de la pantalla).
|
|
Pulsa la opción <em>Manage dives</em> que nos permitirá un nuevo número de acciones:</p></div>
|
|
<div class="sect2">
|
|
<h3 id="_añadir_manualmente_una_nueva_inmersión">10.1. Añadir manualmente una nueva inmersión</h3>
|
|
<div class="paragraph"><p>Se ha descrito anteriormente en la sección referida a la lista de inmersiones.</p></div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_subir_el_divelog_al_almacenamiento_en_la_nube_de_em_subsurface_em">10.2. Subir el divelog al almacenamiento en la nube de <em>Subsurface</em></h3>
|
|
<div class="paragraph"><p>Se pueden subir las inmersiones contenidas en el dispositivo móvil al
|
|
almacenamiento en la nube de <em>Subsurface</em> pulsando la opción <em>Upload to
|
|
cloud</em>. Esto sincronizará los cambios efectuados localmente con el divelog en
|
|
el almacenamiento en la nube.</p></div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_descargar_el_divelog_desde_internet">10.3. Descargar el divelog desde internet</h3>
|
|
<div class="paragraph"><p>En el subpanel <em>Dive managements</em>, pulsa la opción <em>Refresh</em> . Con esto se
|
|
consigue que la copia local del dispositivo Android se sincronice con la copia
|
|
del divelog en la nube.</p></div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_cambiar_las_credenciales_de_acceso_a_la_nube_de_em_subsurface_em">10.4. Cambiar las credenciales de acceso a la nube de <em>Subsurface</em></h3>
|
|
<div class="paragraph"><p>Puede que sea necesario cambiar las credenciales de acceso, por ejemplo si
|
|
nuestro correo electrónico (usado como credencial) ha cambiado. Para modificar
|
|
los datos en <em>Subsuface-mobile</em>, abre el menú principal y pulsa <em>Cloud
|
|
credentials</em>. Esto abrirá la pantalla de ajustes para especificar las nuevas
|
|
credenciales.</p></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_registrar_puntos_de_buceo_usando_el_gps">11. Registrar puntos de buceo usando el GPS</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph"><p>El hecho de que la mayoría de smartphones dispongan de GPS nos permite
|
|
registrar las ubicaciones de las inmersiones. Se puede llevar el teléfono en
|
|
el barco de buceo durante la inmersión y se registrarán automáticamente
|
|
posiciones a intervalos regulares.
|
|
Estas posiciones pueden ser aplicadas a inmersiones de la lista. A
|
|
continuación se explica como:</p></div>
|
|
<div class="sect2">
|
|
<h3 id="_ajustar_el_gps">11.1. Ajustar el GPS</h3>
|
|
<div class="paragraph"><p>Abre el menú principal y pulsa <em>GPS → Preferences</em>. Ahora especifica la forma
|
|
en que se deben recoger automáticamente las posiciones (imagen derecha a
|
|
continuación). Se puede especificar que los datos se recojan a intervalos
|
|
regulares, p.e. cada 10 minutos, o a distancias regulares, p.e. después de que
|
|
el barco se haya desplazado más de 200 metros, o una combinación de ambas
|
|
opciones. Introduce los parámetros deseados y pulsa el botón "Guardar". El
|
|
app está preparada para recoger posiciones GPS.</p></div>
|
|
<div class="imageblock" style="text-align:center;">
|
|
<div class="content">
|
|
<img src="mobile-images/gpssetup.jpg" alt="FIGURE: GPS setup screen" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_recoger_posiciones_gps">11.2. Recoger posiciones GPS</h3>
|
|
<div class="paragraph"><p>Asegúrate de que el GPS del dispositivo Android está activado. En la parte
|
|
inferior del menú principal y del submenú <em>GPS</em> hay una casilla seleccionable
|
|
<em>Run location service</em> (imagen derecha a continuación). Selecciona la casilla y
|
|
<em>Subsurface-mobile</em> comenzará a tomar lecturas de las posiciones GPS siguiendo
|
|
las indicaciones guardadas en las preferencias, como se ha indicado
|
|
anteriormente. Despues de la inmersión se puede detener el servicio,
|
|
deseleccionando la misma casilla que se había marcado antes.</p></div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_guardar_los_datos_del_gps_en_la_nube_de_em_subsurface_em">11.3. Guardar los datos del GPS en la nube de <em>Subsurface</em></h3>
|
|
<div class="paragraph"><p>Activa el menú principal y selecciona la opción <em>GPS</em> que despliega el menú de
|
|
acciones relacionadas con el GPS (imagen anterior izquierda). Pulsa <em>Upload
|
|
GPS data</em> con ello, los datos recogidos en el dispositivo móvil se guardarán
|
|
en la nube de <em>Subsurface</em>. Estas posiciones GPS se guardan <strong>separadamente</strong>
|
|
del resto de datos del divelog. Todas las posiciones GPS recogidas se
|
|
conservan en el dispositivo móvil, independientemente de que se hayan subido o
|
|
no.</p></div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_visualizar_datos_gps">11.4. Visualizar datos GPS</h3>
|
|
<div class="paragraph"><p>Desde el menú GPS (imagen izquierda anterior) seleccionar <em>Show GPS fixes</em>.
|
|
Esto mostrará una lista de posiciones GPS recogidas usando en servicio de
|
|
ubicación (imagen izquierda a continuación). Se pueden efectuar dos acciones
|
|
para cada una de las posiciones, habilitadas si se pulsa el botón (las tres
|
|
bandas horizontales de la derecha, ver imagen izquierda a continuación) y se
|
|
arrastra la posición hacia la izquierda (imagen derecha a continuación). Esta
|
|
acción muestra dos opciones. Pulsar la papelera borra esta posición GPS en
|
|
concreto. Pulsar el icono con forma de lágrima (un pin de Google maps) abre
|
|
Google Maps en el navegador con un pin que indica la posición exacta en el
|
|
mapa de las coordenadas GPS que se están visualizando. Las dos opciones
|
|
indicadas, pueden ocultarse de nuevo arrastrando el registro de posición hacia
|
|
la derecha.</p></div>
|
|
<div class="imageblock" style="text-align:center;">
|
|
<div class="content">
|
|
<img src="mobile-images/gpsmanagement.jpg" alt="FIGURE: GPS management" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_aplicar_los_datos_gps_a_las_inmersiones_del_divelog">11.5. Aplicar los datos GPS a las inmersiones del divelog</h3>
|
|
<div class="paragraph"><p>Suponiendo que se hayan introducido a mano o descargado desde la nube de
|
|
<em>Subsurface</em> todas las inmersiones del divelog, se pueden aplicar las
|
|
posiciones GPS a dichas inmersiones. Las posiciones GPS solo pueden aplicarse
|
|
a inmersiones que estén en la lista de inmersiones.
|
|
Desde el subpanel <em>GPS</em>, pulsar <em>Apply GPS fixes</em>. La lista de inmersiones
|
|
contiene la hora de inicio y fin de cada inmersión. <em>Subsurface-mobile</em>
|
|
aplicará la primera posición que se encuentre dentro del periodo de duración
|
|
del buceo, o la inmediatamente anterior al inicio si no hubiera ninguna dentro
|
|
del periodo.</p></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="footnotes"><hr /></div>
|
|
<div id="footer">
|
|
<div id="footer-text">
|
|
Last updated 2016-03-13 12:43:54 PDT
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|