Subversion Repositories public

Rev

Rev 212 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 212 Rev 273
Line 1... Line 1...
1
<?xml version="1.0" ?>
1
<?xml version="1.0" ?>
2
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
2
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
3
  <!ENTITY sportwatcher "<application>sportwatcher 0.4</application>">
3
  <!ENTITY sportwatcher "<application>SportWatcher 0.6</application>">
4
  <!ENTITY kappname "&sportwatcher;"><!-- Do *not* replace kappname-->
4
  <!ENTITY kappname "&sportwatcher;"><!-- Do *not* replace kappname-->
5
  <!ENTITY package "kde-module"><!-- kdebase, kdeadmin, etc -->
5
  <!ENTITY package "kde-module"><!-- kdebase, kdeadmin, etc -->
6
  <!ENTITY % addindex "IGNORE">
6
  <!ENTITY % addindex "IGNORE">
7
  <!ENTITY % English "INCLUDE"><!-- change language only here -->
7
  <!ENTITY % English "INCLUDE"><!-- change language only here -->
8
  
-
 
9
  
-
 
10
  <!-- Do not define any other entities; instead, use the entities
-
 
11
       from kde-genent.entities and $LANG/user.entities. -->
-
 
12
]>
-
 
13
<!-- kdoctemplate v0.8 October 1 1999 
-
 
14
     Minor update to "Credits and Licenses" section on August 24, 2000
-
 
15
     Removed "Revision history" section on 22 January 2001
-
 
16
     Changed to Installation/Help menu entities 18 October 2001
-
 
17
     Other minor cleanup and changes 18 October 2001 -->
-
 
18
 
8
 
-
 
9
 ]>
19
 
10
 
20
<!--
-
 
21
This template was designed by: David Rugge davidrugge@mindspring.com
-
 
22
with lots of help from: Eric Bischoff ebisch@cybercable.tm.fr
-
 
23
and Frederik Fouvry fouvry@sfs.nphil.uni-tuebingen.de
-
 
24
of the KDE DocBook team.
-
 
25
 
-
 
26
You may freely use this template for writing any sort of KDE documentation.
-
 
27
If you have any changes or improvements, please let us know.
-
 
28
 
-
 
29
Remember:
-
 
30
- in XML, the case of the <tags> and attributes is relevant ;
-
 
31
- also, quote all attributes.
11
<!-- XML file was created by LyX 1.6.3
32
 
-
 
33
Please don't forget to remove all these comments in your final documentation,
-
 
34
thanks ;-).
-
 
35
-->
-
 
36
 
-
 
37
<!-- ................................................................ -->
-
 
38
 
-
 
39
<!-- The language must NOT be changed here. -->
12
  See http://www.lyx.org/ for more information -->
40
 
-
 
41
<book lang="&language;">
13
<book lang="&language;">
42
 
-
 
43
<!-- This header contains all of the meta-information for the document such
-
 
44
as Authors, publish date, the abstract, and Keywords -->
-
 
45
 
-
 
46
<bookinfo>
14
<bookinfo>
47
<title>The &sportwatcher; Handbook</title>
15
<title>The user manual for &sportwatcher;</title>
48
 
16
 
49
<authorgroup>
17
<authorgroup>
50
<author>
18
<author>
51
<firstname>Andreas</firstname>
19
<firstname>Andreas</firstname>
52
<othername></othername>
20
<othername></othername>
Line 55... Line 23...
55
<address><email>andreas@theosys.at</email></address>
23
<address><email>andreas@theosys.at</email></address>
56
</affiliation>
24
</affiliation>
57
</author>
25
</author>
58
</authorgroup>
26
</authorgroup>
59
 
27
 
60
<!-- TRANS:ROLES_OF_TRANSLATORS -->
-
 
61
 
-
 
62
<copyright>
28
<copyright>
63
<year>2007</year>
29
<year>2007</year>
64
<year>2008</year>
30
<year>2008</year>
-
 
31
<year>2009</year>
65
<holder>Andreas Theofilu</holder>
32
<holder>Andreas Theofilu</holder>
66
</copyright>
33
</copyright>
67
<!-- Translators: put here the copyright notice of the translation -->
34
<!-- Translators: put here the copyright notice of the translation -->
68
<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
35
<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
69
     and in the FDL itself on how to use it. -->
36
     and in the FDL itself on how to use it. -->
70
<legalnotice>&FDLNotice;</legalnotice>
37
<legalnotice>&FDLNotice;</legalnotice>
71
 
38
 
72
<!-- Date and version information of the documentation
-
 
73
Don't forget to include this last date and this last revision number, we
-
 
74
need them for translation coordination !
-
 
75
Please respect the format of the date (YYYY-MM-DD) and of the version
-
 
76
(V.MM.LL), it could be used by automation scripts.
-
 
77
Do NOT change these in the translation. -->
-
 
78
 
-
 
79
<date>2008-11-01</date>
39
<date>2009-07-30</date>
80
<releaseinfo>0.4</releaseinfo>
40
<releaseinfo>0.6</releaseinfo>
81
 
-
 
82
<!-- Abstract about this handbook -->
-
 
83
 
41
 
84
<abstract>
42
<abstract>
85
<para>
-
 
86
&sportwatcher; is an application specially designed to get out the data of
43
<para>&sportwatcher; is program to read out aktivities from a Garmin Forerunner. It support all sport watches connected over the USB port, like Garmin Forerunner305.</para>
87
the Garmin Forerunner 305 over USB port. It may also work for other Garmin
-
 
88
devices, unsing the same interface.
-
 
89
</para>
-
 
90
</abstract>
44
</abstract>
91
 
45
 
92
<!-- This is a set of Keywords for indexing by search engines.
-
 
93
Please at least include KDE, the KDE package it is in, the name
-
 
94
 of your application, and a few relevant keywords. -->
-
 
95
 
-
 
96
<keywordset>
46
<keywordset>
97
<keyword>KDE</keyword>
47
<keyword>KDE</keyword>
98
<keyword>SportWatcher</keyword>
48
<keyword>SportWatcher</keyword>
99
<keyword>Garmin</keyword>
49
<keyword>Garmin</keyword>
100
<keyword>GDAL</keyword>
50
<keyword>GDAL</keyword>
101
</keywordset>
51
</keywordset>
102
 
52
 
103
</bookinfo>
53
</bookinfo>
104
 
-
 
105
<!-- The contents of the documentation begin here.  Label
54
<chapter id='cha.Introduction-1' >
106
each chapter so with the id attribute. This is necessary for two reasons: it
55
<title>Introduction<!-- anchor id="cha.Introduction-1" --></title>
107
allows you to easily reference the chapter from other chapters of your
56
<para>In the first place, SportWatcher is a program to get out some GPS data from a GPS receiver. I started developing this program when I realized, that there was no support for my new Garmin Forerunner305 under Linux. Because I use Linux only, I was not able to use the software who came with the watch, because it was for Windows only. So I looked closer to this GPS receiver, made for sport and training. Like most GPS receivers from Garmin, this one uses also the NMEA protocol to transfer data. By accident I found the garmintools, written by "Dave Bailey" (&lt;dave &lt;at&gt; daveb &lt;dot&gt; net&gt;). This tools contain a library to read out the data over the USB port. I used the source by courtesy of Dave as the basic of SportWatcher and used it to get out everything of my Forerunner 305 and hopefully every compatible GPS receiver.</para><sect1 id='sec:Supported-GPS-receiver' >
108
document, and if there is no ID, the name of the generated HTML files will vary
57
<title>Supported GPS receiver<!-- anchor id="sec:Supported-GPS-receiver" --></title>
-
 
58
<para>Basically every GPS receiver, who uses the NMEA protocol and has an USB port, should be supported. However. Only the following receivers are tested:</para><itemizedlist>
109
from time to time making it hard to manage for maintainers and for the CVS
59
<listitem><para>Garmin Forerunner305</para></listitem><listitem><para>Garmin Forerunner205</para></listitem></itemizedlist><para>If you own another type of GPS receiver and when it works with SportWatcher, please send an e−mail to <emphasis>andreas &lt;at&gt; theosys &lt;dot&gt; at</emphasis>.</para></sect1></chapter><chapter id='cha.Installation' >
110
system. Any chapter labelled (OPTIONAL) may be left out at the author's
60
<title>Installation<!-- anchor id="cha.Installation" --></title>
111
discretion. Other chapters should not be left out in order to maintain a
61
<para>&sportwatcher; was written in C++ and is made for the desktop <ulink url="http://www.kde.org">KDE</ulink>. The program was developed exclusive under Linux. SportWatcher is open source! This means, that the whole source is available to you and you are allowed to use it for your own. The source code, and with it the whole program, is licensed under the <ulink url="http://www.gnu.org/licenses/gpl.html">GNU General Public License version 3</ulink>.</para><sect1 id='sec.Download' >
112
consistent documentation style across all KDE apps. -->
62
<title>Download<!-- anchor id="sec.Download" --></title>
-
 
63
<para>SportWatcher is available as a binary package for some Linux distributions. Of course, ther is also the source code available. Get the stable source code or the package for your distribution from one of the following sources:</para><itemizedlist>
113
 
64
<listitem><para>Sourceforge: <ulink url="http://sourceforge.net/projects/sportwatcher/">Sourceforge</ulink></para></listitem><listitem><para>TheoSys: <ulink url="http://www.theosys.at/download">TheoSys</ulink></para></listitem></itemizedlist><para>If you like to help develop SportWatcher, or simply want to have the latest, untested code, with all available bells and whistles, then you can get the code out of one of the subversion archives. The source code in the subversion archives, is for developers and is not tested! There is no garanty, that this code will even compile!</para>
-
 
65
<para>Type on the command line (shell), one of the following commands, dependig from what archive you want to download the code:</para><screen>
-
 
66
<![CDATA[# svn checkout https://sportwatcher.svn.sourceforge.net/svnroot/sportwatcher
114
<chapter id="introduction">
67
]]></screen><para>or</para><screen>
115
<title>Introduction</title>
68
<![CDATA[# svn checkout svn://www.theosys.at/sportwatcher/trunk
116
 
69
]]></screen><para>It is possible to access the <ulink url="http://www.theosys.at/websvn/listing.php?repname=repos+1&amp;path=/sportwatcher/trunk/&amp;rev=0&amp;sc=0">Repository</ulink>, containing the latest code, with your WEB browser too.</para><sect2 id='sec.Necessary-components' >
117
<!-- The introduction chapter contains a brief introduction for the
70
<title>Necessary components<!-- anchor id="sec.Necessary-components" --></title>
-
 
71
<para>To be able to compile SportWatcher you need the following components:</para><itemizedlist>
-
 
72
<listitem><para><ulink url="http://www.kde.org">KDE 4.1.x</ulink></para></listitem><listitem><para><ulink url="http://www.gdal.org">GDAL 1.5.x</ulink> (optional)</para></listitem></itemizedlist><sect3 id='sec.KDE-4.1.x' >
118
application that explains what it does and where to report
73
<title>KDE 4.1.x<!-- anchor id="sec.KDE-4.1.x" --></title>
-
 
74
<para>Since version 0.6 SportWatcher needs at least version 4.1.0 of KDE. It will not compile with older versions of it!</para></sect3><sect3 id='sec.GDAL-1.5.x' >
119
problems. Basically a long version of the abstract.  Don't include a
75
<title>GDAL 1.5.x<!-- anchor id="sec.GDAL-1.5.x" --></title>
120
revision history. (see installation appendix comment) -->
76
<para>SportWatcher is able to display a map underneath a track. This is made with the help of the GDAL library. But this library is optional. It is possible, to compile SportWatcher even without GDAL installed. Though the ability to display maps is missing then.</para>
121
 
77
<para>Debian testing (Squeeze) supports currently version 1.5.4 of GDAL. Up to version 8.04 TLS of Ubuntu (Hardy Heron), only version 1.4.x of GDAL is supported. This version of GDAL is not appropriate for SportWatcher. It is no problem to use the newer version 1.6.0 of GDAL. SportWatcher will compile and function very well with the newest version.</para>
122
<para>
78
<para>openSUSE 11.0 doesn't support GDAL out of the box. There are some easy to find places, where you can download GDAL for openSUSE, but it's not easy to satisfy the dependencies, GDAL needs. Therefore I've forgone to include GDAL. This means, that version 0.5 of SportWatcher does not support maps on openSUSE 11.0.</para>
-
 
79
<para>Also openSUSE 11.1 does not support GDAL. I decided to compile the binary version with it. To make it simple to compile SprortWatcher yourself, you can download GDAL for openSUSE 11.1 from here:</para><itemizedlist>
123
&sportwatcher; is a program that lets you load the data from a Garmin
80
<listitem><para><ulink url="http://www.theosys.at/download/gdal-1.6.1-0.pm.1.i586.rpm">gdal-1.6.1-0.pm.1.i586.rpm</ulink></para></listitem><listitem><para><ulink url="http://www.theosys.at/download/geotiff-1.2.5-0.pm.1.i586.rpm">geotiff-1.2.5-0.pm.1.i586.rpm</ulink></para></listitem><listitem><para><ulink url="http://www.theosys.at/download/libgdal1-1.6.1-0.pm.1.i586.rpm">libgdal1-1.6.1-0.pm.1.i586.rpm</ulink></para></listitem><listitem><para><ulink url="http://www.theosys.at/download/libgdal-devel-1.6.1-0.pm.1.i586.rpm">libgdal-devel-1.6.1-0.pm.1.i586.rpm</ulink></para></listitem><listitem><para><ulink url="http://www.theosys.at/download/libgeos1-3.1.0-0.pm.1.i586.rpm">libgeos1-3.1.0-0.pm.1.i586.rpm</ulink></para></listitem><listitem><para><ulink url="http://www.theosys.at/download/libgeos-devel-3.1.0-0.pm.1.i586.rpm">libgeos-devel-3.1.0-0.pm.1.i586.rpm</ulink></para></listitem><listitem><para><ulink url="http://www.theosys.at/download/libgeotiff1-1.2.5-0.pm.1.i586.rpm">libgeotiff1-1.2.5-0.pm.1.i586.rpm</ulink></para></listitem><listitem><para><ulink url="http://www.theosys.at/download/libgeotiff-devel-1.2.5-0.pm.1.i586.rpm">libgeotiff-devel-1.2.5-0.pm.1.i586.rpm</ulink></para></listitem></itemizedlist></sect3></sect2></sect1><sect1 id='sec.Compile-Install' >
124
Forerunner 305 and similar products, over the USB port. &sportwatcher;
81
<title>Compile / Install<!-- anchor id="sec.Compile-Install" --></title>
-
 
82
<sect2 id='sec.Install-the-binary' >
125
displays the laps, track, heart beats per minute and the profile of the
83
<title>Install the binary pakage<!-- anchor id="sec.Install-the-binary" --></title>
-
 
84
<para>After downloading the pakage, open a shell and become root. Then type in the following command:</para><screen>
-
 
85
<![CDATA[]]># dpkg -i sportwatcher_<emphasis>X.X-x</emphasis>.i386.deb
-
 
86
<![CDATA[]]></screen><para>or</para><screen>
126
surface. It is able to put a satellite image underneath the track or, if
87
<![CDATA[]]># dpkg -i sportwatcher_<emphasis>X.X-x</emphasis>.amd64.deb 
-
 
88
<![CDATA[]]></screen><para>or </para><screen>
-
 
89
<![CDATA[]]># dpkg -i sportwatcher_<emphasis>X.X-x</emphasis>_ubuntu_i386.deb 
-
 
90
<![CDATA[]]></screen><para>or </para><screen>
127
available, a map. To do this, it can use raster images or the WMS service,
91
<![CDATA[]]># rpm -ivh sportwatcher-<emphasis>X.X-x</emphasis>.i586.rpm 
-
 
92
<![CDATA[]]></screen><para>Where X.X-x represents the version and may look like 0.6-1, or the like. After successfull installation you can use the program immediately.</para></sect2><sect2 id='sec.Compile' >
-
 
93
<title>Compile<!-- anchor id="sec.Compile" --></title>
-
 
94
<para>After downloading the source, and after it was uncompressed into a directory, change to this new directory. On a command line, type the following commands:</para><screen>
128
provided by the GDAL library.
95
<![CDATA[$ mkdir build 
-
 
96
$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
129
 
97
]]></screen><para>This program checks now for all necessary components. In case something is missing, the script stops and displays an error message. Common reason for errors are, that something is not installed. In most cases, this is the developer version of a package. With Debian, the name of the developer packages ends with <emphasis>dev</emphasis>. Install the missing packages, if necessary.</para>
130
Please report any problems or feature requests to andreas@theosys.at.
98
<para>With the following command, you start the compiler:</para><screen>
131
</para>
99
<![CDATA[$ make 
-
 
100
]]></screen><para>In case it stops and display an error message, it is mostly because something is not installed, or there is a wrong version installed. Check out what version Debian supports, and install it.</para><sect3 id='sec.Installation' >
-
 
101
<title>Installation<!-- anchor id="sec.Installation" --></title>
132
</chapter>
102
<para>To install &sportwatcher; for all users on your system, you need root priviledges. Otherwise you can install the program into your home directory too. With SportWatcher you got a file called INSTALL. It contains a detailed description of how to install the program. If you've troubles installing SportWatcher, read this file first! To install SportWatcher for all users on your system, become root and type in the following command:</para><screen>
-
 
103
<![CDATA[# make install
133
 
104
]]></screen><para>After successfull installation of the program, you can start it with the command sportwatcher directly from the command line, or you can open the menu "<guimenu>Utilities</guimenu>--&gt;<guimenuitem>Sportwatcher</guimenuitem>" and start it from there (this is for KDE only!).</para></sect3></sect2></sect1><sect1 id='sec.Settings-for-Linux' >
134
<chapter id="using-sportwatcher">
105
<title>Settings for Linux<!-- anchor id="sec.Settings-for-Linux" --></title>
135
<title>Using &sportwatcher;</title>
106
<para>SportWatcher tries to find out the USB port, where you've connected your GPS device itself and then it accesses this port directly. Unfortunately this is often forbidden for normal users. To grant access to the USB port for SportWatcher, you've to tell the UDEV system, that it should set the access rights of the USB port in a way, that a normal user is allowed to read and write. While it's possible to run SportWatcher with root priviledges, what is not recomended, you can add some lines to a configuration file of UDEV.</para>
136
 
107
<para>&sportwatcher;greift direkt auf das USB-Port zu, an dem Sie Ihren <hardware>Forerunner 305</hardware> angeschlossen haben. Allerdings fehlen einem normalen Anwender daf&uuml;r in der Regel die Berechtigungen, so das beim Versuch die Daten aus der Uhr auszulesen, eine Fehlermeldung erscheint. Startet man das Programm jedoch als Benutzer root, funktioniert das Auslesen von Daten einwandfrei. Diesem Problem kann man nun auf zwei Arten begegnen. Man kann SportWatcher immer als <emphasis>root</emphasis> ausf&uuml;hren, wovon ich jedoch dringend abrate, oder man manipuliert einmal die Einstellungen von <emphasis>udev</emphasis> und vergibt die notwendigen Berechtigungen. Im Folgenden wird Schritt f&uuml;r Schritt erkl&auml;rt, wie man die ben&ouml;tigten Berechtigungen einstellt. </para><sect2 id='sec.For-Debian-and' >
137
<!-- This chapter should tell the user how to use your app. You should use as
108
<title>For Debian and (K)Ubuntu<!-- anchor id="sec.For-Debian-and" --></title>
138
many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document
109
<para>Open a shell and become root. Then type in the following commands:</para><screen>
-
 
110
<![CDATA[# cd /etc/udev/rules.d
139
your application. -->
111
# vi z60-garmin.rules
-
 
112
]]></screen><para>Instead of <command>vi</command> you can use any other text editor, of course. Enter the following lines into the new created file:</para><screen>
-
 
113
<![CDATA[SYSFS{idVendor}=="091e", SYSFS{idProduct}=="0003", MODE="0666"
-
 
114
ATTRS{idVendor}=="091e", ATTRS{idProduct}=="0003", MODE="0666"
-
 
115
]]></screen><para>Save the file and restart UDEV by typing the following command on the command line:</para><screen>
-
 
116
<![CDATA[# /etc/init.d/udev restart
-
 
117
]]></screen><para>From now on, the access to the USB port - only for your Garmin Forerunner, regardless on which of the connectors you conected it - should be granted.</para></sect2><sect2 id='sec.Other-distributions' >
-
 
118
<title>Other distributions<!-- anchor id="sec.Other-distributions" --></title>
140
 
119
<para>As long as your Linux distribution uses UDEV, the description above should work. In case your distribution uses something else, ask your system administrator, or read the documentation of your system. Especialy the chapter about setting rights on USB ports.</para></sect2><sect2 id='sec.It-still-doesn' >
-
 
120
<title>It still doesn't work<!-- anchor id="sec.It-still-doesn" --></title>
141
<para>
121
<para>In case of troubles, if the above instruction doesn't work, you should check the vendor and product number of your GPS device. If they differ from the ones above, type in the correct ones. You can find out this numbers with the command:</para><screen>
-
 
122
<![CDATA[$ lsusb
-
 
123
]]></screen></sect2></sect1></chapter><chapter id='cha.Working-with' >
-
 
124
<title>Working with &sportwatcher;<!-- anchor id="cha.Working-with" --></title>
-
 
125
<sect1 id='sec.The-menu-File' >
-
 
126
<title>The menu <guimenu>File</guimenu><!-- anchor id="sec.The-menu-File" --></title>
-
 
127
<sect2 id='sec.Read-in-aktivities' >
-
 
128
<title>Read in aktivities<!-- anchor id="sec.Read-in-aktivities" --></title>
-
 
129
<para>To visualize anything, SportWatcher must read some informations from a GPS receiver. To do this, SportWatcher offers a menu point:</para>
142
 
130
<screenshot>
-
 
131
<screeninfo>The menu "File"</screeninfo>
-
 
132
   <mediaobject>
-
 
133
      <imageobject>
143
<!-- Note that all graphics should be in .png format. Use no gifs because of
134
         <imagedata fileref="menuFile.png" format="PNG"></imagedata>
144
patent issues. -->
135
      </imageobject>
145
 
-
 
-
 
136
      <textobject>
-
 
137
         <phrase>Menu File</phrase>
-
 
138
      </textobject>
-
 
139
   </mediaobject>
-
 
140
</screenshot><sect3 id='sec.Der-Menu-Read' >
-
 
141
<title>Der Menu item <guimenuitem>Read data</guimenuitem><!-- anchor id="sec.Der-Menu-Read" --></title>
-
 
142
<para>With the menu item <guimenuitem>Read data</guimenuitem>, it reads out all aktivities currently stored on the watch. After clicking on this menu point, a window appears, showing the progress of the read process.</para>
146
<screenshot>
143
<screenshot>
147
<screeninfo>Here's a screenshot of &sportwatcher;</screeninfo>
144
<screeninfo>Progress dialog</screeninfo>
148
	<mediaobject>
145
   <mediaobject>
149
	  <imageobject>
146
      <imageobject>
150
	    <imagedata fileref="screenshot.png" format="PNG"/>
147
         <imagedata fileref="Progress.png" format="PNG"></imagedata>
151
	  </imageobject>
-
 
152
	  <imageobject>
-
 
153
	    <imagedata fileref="screenshot.eps" format="EPS"/>
-
 
154
	  </imageobject>
148
      </imageobject>
155
	  <textobject>
149
      <textobject>
156
	    <phrase>Screenshot</phrase>
150
         <phrase>Progress dialog</phrase>
157
	  </textobject>
151
      </textobject>
158
	</mediaobject>
152
   </mediaobject>
159
</screenshot>
153
</screenshot>
160
</para>
154
<para>Depending on the set of data in the watch, this may take up to several minutes. As soon as everything was read successful, the progress dialog disappears, and one or more new entries appear at the left of the program window. Everything is saved in files on your disk at this time. SportWatcher allways reads the complete memory of the watch, but it saves only new aktivities. Existent activities are never overwritten.</para>
161
 
155
<para>At least the Garmin Forerunner305 reorganizes the aktivities, if memory is nearly full. It deletes messure points and leaves only the laps. If SportWatcher would overwrite already saved activities, the meassure point would be lost.</para>
162
 
156
<para>In case you've trouble getting the activities out of the watch, read the section <xref linkend="sec.Settings-for-Linux" />.</para></sect3><sect3 id='sec.The-menu-Open' >
163
<sect1 id="sportwatcher-features">
157
<title>The menu item <guimenu>Open</guimenu><!-- anchor id="sec.The-menu-Open" --></title>
164
<title>More &sportwatcher; features</title>
158
<para>After clicking on this item, a dialog window appears. There is a filter installed, showing only files with the extension <literal role="extension">.gmn</literal>. This files are in the format, &sportwatcher; uses internal. In case you've files in this format, you can read them in here. If you selected a valid file, &sportwatcher; reads the file and saves it in it own directory structure. Then the activity appear in the list of activities on the left side of the main window.</para></sect3><sect3 id='sec.The-Menu-Import' >
165
 
159
<title>The Menu item <guimenuitem>Import</guimenuitem><!-- anchor id="sec.The-Menu-Import" --></title>
166
<para>It slices! It dices! and it comes with a free toaster!</para>
160
<para>&sportwatcher; is able to read files created from Garmin <command>Trainingcenter</command>. This files have usually the file extension <literal role="extension">.tcx</literal> and are simple XML files. There is also other software who can output activities in this format.</para>
167
<para>
161
<para>After clicking on this item, a file dialog box appears. The filter is set to files with the extension <literal role="extension">.tcx</literal>. Select the wanted file and click on button <guibutton>Open</guibutton>. &sportwatcher; reads the file, evaluates it and parses it. If it's valid, it will be stored as a new activity.</para></sect3></sect2><sect2 id='sec.Export-activities' >
168
The Squiggle Tool <guiicon><inlinemediaobject>
162
<title>Export activities<!-- anchor id="sec.Export-activities" --></title>
169
	  <imageobject>
163
<para>&sportwatcher; can save the activities in several formats. Not every format can contain all informations of an activity. Most of them can hold only the GPS informations. The export features of SportWatcher allows other programs to visualize a track, for example, in special ways. &sportwatcher; currently supports the following formats:</para><itemizedlist>
170
	    <imagedata fileref="squiggle.png" format="PNG"/>
164
<listitem><para>TCX - Garmin Trainig Center</para></listitem><listitem><para>GPX - GPS Exchange Format</para></listitem><listitem><para>OSM - Open Street Map Format</para></listitem><listitem><para>HRM - Polar Heart Rate Monitor Format</para></listitem></itemizedlist><sect3 id='sec.The-menu-HR' >
171
	  </imageobject>
165
<title>The menu item <guimenuitem>Save heart rate</guimenuitem><!-- anchor id="sec.The-menu-HR" --></title>
172
	  <imageobject>
166
<para>The software comming with the sport watches of Polar support the proprietary format <acronym>HRM</acronym> (Heart Rate Monitor). &sportwatcher; can export an activity in this format. Unfortunately this format can hold only the heart rate information, the laps, and the total time of the activity.</para>
173
	    <imagedata fileref="squiggle.eps" format="EPS"/>
167
<para>After clicking the item <guimenuitem>Save heart rate</guimenuitem> a file dialog box appears. Choose the directory where you wand to save the file and type in the wanted file name. There is allready a filename ther in the notation Polar uses. If you like, you can change it. Click on the button <guibutton>Save</guibutton> to save the file.</para>
174
	  </imageobject>
168
<note><para>Allthough &sportwatcher; can save to the <acronym>HRM</acronym> format, it can't import it.</para></note></sect3><sect3 id='sec.The-menu-Save' >
175
	  <textobject>
169
<title>The menu <guimenuitem>Save as</guimenuitem><!-- anchor id="sec.The-menu-Save" --></title>
176
	    <phrase>Squiggle</phrase>
170
<para>After clicking to this item, a file dialog box appears. It allows to save the activity in one of the formats <acronym>TCX</acronym>, <acronym>GPX</acronym> and <acronym>OSM</acronym>.</para>
177
	  </textobject>
171
<screenshot>
178
</inlinemediaobject></guiicon> is used to draw squiggly lines all over
172
<screeninfo>Save as</screeninfo>
179
the &sportwatcher; main window. It's not a bug, it's a feature!
173
   <mediaobject>
180
</para>
174
      <imageobject>
181
 
175
         <imagedata fileref="SaveAs.png" format="PNG"></imagedata>
182
</sect1>
176
      </imageobject>
183
</chapter>
177
      <textobject>
184
 
178
         <phrase>Save as</phrase>
185
<chapter id="commands">
179
      </textobject>
186
<title>Command Reference</title>
180
   </mediaobject>
187
 
181
</screenshot>
188
<!-- (OPTIONAL, BUT RECOMMENDED) This chapter should list all of the
182
<para>Select the wanted directory and type in the file name. Select the wanted format at the filter line and click on the button <guibutton>Save</guibutton>. If the file allready exists, SportWatcher ask you to overwrite the file. Decide what you want to do and click the appropriate button.</para><sect4>
189
application windows and their menubar and toolbar commands for easy reference.
183
<title>The format TCX</title>
190
Also include any keys that have a special function but have no equivalent in the
184
<para>This is the format Garmins <command>Trainingcenter</command> uses. It contains the complete information of an activity and can be used by several programs. It is also used by the TheoSys sport logger you'll find at</para><screen>
191
menus or toolbars. This may not be necessary for small apps or apps with no tool
185
<![CDATA[]]><ulink url="https://www.theosys.at/splog/index.php?lang=eng"></ulink>
192
or menu bars. -->
186
<![CDATA[]]></screen><para>This WEB application completes the records of your activities. Try it out. It's free!</para></sect4><sect4>
193
 
187
<title>The format GPX</title>
194
<sect1 id="sportwatcher-mainwindow">
188
<para>This format is for transporting routes, based on GPS coordinates. It holds the GPS coordinates of every meassure point. Together this is a route representing the track.</para></sect4><sect4>
195
<title>The main &sportwatcher; window</title>
189
<title>The format OSM</title>
196
 
190
<para>This format describes a complete map. It is used by the <ulink url="http://www.openstreetmap.org">Open Street Map</ulink> project to hold maps. Because the maps are free, they are available for everybody and everybody can add parts to the map. If the way you was running or byking, is currently not part of Open Street Map and you want it be part of the map, you can use this format to add the way to the map. There is more information on there WEB site.</para></sect4></sect3></sect2><sect2 id='sec.The-menu-Print' >
197
<sect2>
191
<title>The menu item <guimenuitem>Print</guimenuitem><!-- anchor id="sec.The-menu-Print" --></title>
198
<title>The File Menu</title>
192
<para>After clicking on this item, the currently loaded activity will be printed. If possible, everything is printed on one page.</para>
199
<para>
193
<note><para>This function is not implemented with &sportwatcher;!</para></note></sect2></sect1><sect1 id='sec.The-menu-Edit' >
200
<variablelist>
194
<title>The menu <guimenu>Edit</guimenu><!-- anchor id="sec.The-menu-Edit" --></title>
201
<varlistentry>
195
<screenshot>
202
<term><menuchoice>
196
<screeninfo>Menu Edit</screeninfo>
203
<shortcut>
197
   <mediaobject>
204
<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>
198
      <imageobject>
205
</shortcut>
199
         <imagedata fileref="menuEdit.png" format="PNG"></imagedata>
206
<guimenu>File</guimenu>
200
      </imageobject>
207
<guimenuitem>New</guimenuitem>
201
      <textobject>
208
</menuchoice></term>
202
         <phrase>Menu Edit</phrase>
209
<listitem><para><action>Creates a new document</action></para></listitem>
203
      </textobject>
210
</varlistentry>
204
   </mediaobject>
211
<varlistentry>
205
</screenshot><sect2 id='sec.The-menu-Rename' >
212
<term><menuchoice>
206
<title>The menu item <guimenuitem>Rename</guimenuitem><!-- anchor id="sec.The-menu-Rename" --></title>
213
<shortcut>
207
<para>This menu item allows to rename an activity. After clicking on this item, a small dialog box, with an edit line in it, appears. The line contails the actual name of the activity. In case this is the default name, consisting of the date and time, the time may be somewhat shortened. This is because there are only 15 characters allowed. Type in the name you want and them click on the button <guibutton>Ok</guibutton>. This saves the new name and it shows up in the list of activities on the left side of the main window.</para></sect2></sect1><sect1 id='sec.The-menu-Settings' >
214
<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo>
208
<title>The menu <guimenu>Settings</guimenu><!-- anchor id="sec.The-menu-Settings" --></title>
215
</shortcut>
209
<para>You must not setup SportWatcher to make use of it. After successful installation, it should work out of the box. But as allways, there are some settings available. The following items show step by step the possible settings and their meaning.</para>
216
<guimenu>File</guimenu>
210
<screenshot>
217
<guimenuitem>Save</guimenuitem>
211
<screeninfo>Menu Settings</screeninfo>
218
</menuchoice></term>
212
   <mediaobject>
219
<listitem><para><action>Saves the document</action></para></listitem>
213
      <imageobject>
220
</varlistentry>
214
         <imagedata fileref="menuSettings.png" format="PNG"></imagedata>
221
<varlistentry>
215
      </imageobject>
222
<term><menuchoice>
216
      <textobject>
223
<shortcut>
217
         <phrase>Menu Settings</phrase>
224
<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
218
      </textobject>
225
</shortcut>
219
   </mediaobject>
226
<guimenu>File</guimenu>
220
</screenshot><sect2 id='sec.The-menu-ConfSPW' >
227
<guimenuitem>Quit</guimenuitem>
221
<title>The menu item <guimenuitem>Configure SportWatcher</guimenuitem><!-- anchor id="sec.The-menu-ConfSPW" --></title>
228
</menuchoice></term>
222
<para>This item opens a dialog box, where you can set sevaral things.</para>
229
<listitem><para><action>Quits</action> &sportwatcher;</para></listitem>
223
<screenshot>
230
</varlistentry>
224
<screeninfo>Configure SportWatcher</screeninfo>
231
</variablelist>
225
   <mediaobject>
232
</para>
226
      <imageobject>
233
 
227
         <imagedata fileref="ConfigureSportWatcher.png" format="PNG"></imagedata>
234
</sect2>
228
      </imageobject>
235
 
229
      <textobject>
236
<sect2>
230
         <phrase>Configure SportWatcher</phrase>
237
<title>The <guimenu>Help</guimenu> Menu</title>
231
      </textobject>
238
 
232
   </mediaobject>
239
<!-- Assuming you have a standard help menu (help, what's this, about -->
233
</screenshot><sect3 id='sec.Heart-rate-limits' >
240
<!-- &sportwatcher;, about KDE) then the documentation is already written. -->
234
<title>Heart rate limits<!-- anchor id="sec.Heart-rate-limits" --></title>
241
<!-- The following entity is valid anywhere that a variablelist is -->
235
<para>This part contains the limits of your personal heart rate range. You can find out this ranges with an expensive lactat test, where you have to repeat this test several times to get the real limits. If you want to do that, ask the doctor of trust.</para>
242
<!-- valid.  -->
236
<para>A simpler method is the following formular:</para><screen>
243
 
237
<![CDATA[<Max. HR> = 220 - <age>
244
&help.menu.documentation;
238
]]></screen><para>From the maximum heart rate you can calculate the levels (or zones). The following table shows how:</para>
245
 
239
<informaltable><tgroup cols="4" colsep="1" rowsep="1">
246
</sect2>
240
<colspec colname="col0" align="left"/>
247
 
241
<colspec colname="col1" align="left"/>
248
</sect1>
242
<colspec colname="col2" align="left"/>
249
</chapter>
243
<colspec colname="col3" align="left"/>
250
 
244
<tbody>
251
<chapter id="developers">
245
<row>
252
<title>Developer's Guide to &sportwatcher;</title>
246
<entry align="left" valign="top">Level</entry>
253
 
247
<entry align="left" valign="top">Intensity</entry>
254
<!-- (OPTIONAL) A Programming/Scripting reference chapter should be
248
<entry align="left" valign="top">Running</entry>
255
used for apps that use plugins or that provide their own scripting hooks
249
<entry align="left" valign="top">Bike</entry>
256
and/or development libraries. -->
250
</row>
257
 
251
<row>
258
<para>
252
<entry align="left" valign="top">0 (&lt;1)</entry>
259
Programming &sportwatcher; plugins is a joy to behold. Just read through the next
253
<entry align="left" valign="top">very low</entry>
260
66 pages of API's to learn how!
254
<entry align="left" valign="top">&lt; 65% (Regular run)</entry>
261
</para>
255
<entry align="left" valign="top">&lt; 52% (CO --&gt; Compensation)</entry>
262
 
256
</row>
263
<!-- Use refentries to describe APIs.  Refentries are fairly complicated and you
257
<row>
264
should consult the docbook reference for further details. The example below was
258
<entry align="left" valign="top">1</entry>
265
taken from that reference and shortened a bit for readability. -->
259
<entry align="left" valign="top">low</entry>
266
 
260
<entry align="left" valign="top">65% - 80% (Ext run --&gt; extensive run)</entry>
267
<refentry id="re-1007-unmanagechildren-1">
261
<entry align="left" valign="top">52% - 65% (SP1 --&gt; Basic staying power 1)</entry>
268
<refmeta>
262
</row>
269
<refentrytitle>XtUnmanageChildren</refentrytitle>
263
<row>
270
<refmiscinfo>Xt - Geometry Management</refmiscinfo>
264
<entry align="left" valign="top">2</entry>
271
</refmeta>
265
<entry align="left" valign="top">middle</entry>
272
<refnamediv>
266
<entry align="left" valign="top">80% - 85% (Int run --&gt; intensive run)</entry>
273
<refname>XtUnmanageChildren
267
<entry align="left" valign="top">65% - 77% (SP2 --&gt; Basic staying power 2)</entry>
274
</refname>
268
</row>
275
<refpurpose>remove a list of children from a parent widget's managed
269
<row>
276
list.
270
<entry align="left" valign="top">3</entry>
277
<indexterm id="ix-1007-unmanagechildren-1"><primary>widgets</primary><secondary>removing</secondary></indexterm>
271
<entry align="left" valign="top">high</entry>
278
<indexterm id="ix-1007-unmanagechildren-2"><primary>XtUnmanageChildren</primary></indexterm> 
272
<entry align="left" valign="top">85% - 90% (SPR --&gt; speed run)</entry>
279
</refpurpose>
273
<entry align="left" valign="top">77% - 90% (PO--&gt; Power)</entry>
280
 
274
</row>
281
</refnamediv>
275
<row>
282
<refsynopsisdiv>
276
<entry align="left" valign="top">4 (&gt;3)</entry>
283
<refsynopsisdivinfo>
277
<entry align="left" valign="top">very high</entry>
284
<date>4 March 1996</date>
278
<entry align="left" valign="top">&gt; 90% (R --&gt; Race)</entry>
285
</refsynopsisdivinfo>
279
<entry align="left" valign="top">&gt; 90% (HP --&gt; High power)</entry>
286
<synopsis>
280
</row>
287
void XtUnmanageChildren(<replaceable class="parameter">children</replaceable>, <replaceable class="parameter">num_children</replaceable>)
281
</tbody>
288
    WidgetList <replaceable class="parameter">children</replaceable>;
282
</tgroup></informaltable></sect3><sect3 id='sec.Other-limits' >
289
    Cardinal <replaceable class="parameter">num_children</replaceable>;
283
<title>Other limits<!-- anchor id="sec.Other-limits" --></title>
290
</synopsis>
284
<para>The <guilabel>VO2max</guilabel> gives the maximum oxygen saturation in percent. This indicator is also found during a lactat test. Unfortunately there is no simple formula to calculate this, as far as I know. The second value <guilabel>weight</guilabel> is the the weight of your body in <emphasis>kilogramm</emphasis>.</para></sect3><sect3 id='sec.Device-and-file' >
291
 
285
<title>Device and file settings<!-- anchor id="sec.Device-and-file" --></title>
292
<refsect2 id="r2-1007-unmanagechildren-1">
286
<para>The settings in this block defines the path and files, where SportWatcher stores it data.</para><sect4 id='sec.Even-surface-contour' >
293
<title>Inputs</title>
287
<title>Even surface contour line<!-- anchor id="sec.Even-surface-contour" --></title>
294
<variablelist>
288
<para>If the meassure of height is not very exact, and you get big fluctuations especially when there are only small differences in height, you can check this. It will slightly even the contour line.</para></sect4><sect4 id='sec.Use-serial-port' >
295
<varlistentry>
289
<title>Use serial port instead of USB port<!-- anchor id="sec.Use-serial-port" --></title>
296
<term><replaceable class="parameter">children</replaceable>
290
<para>If your GPS receiver has only a serial port, you can set this here. You can set the name of the device as described under <xref linkend="sec.Serial-device" />.</para>
297
</term>
291
<note><para>This function is not tested and it's very likely that it will not work!</para></note></sect4><sect4 id='sec.Serial-device' >
298
<listitem>
292
<title>Serial device<!-- anchor id="sec.Serial-device" --></title>
299
<para>Specifies an array of child widgets. Each child must be of
293
<para>The name of the serial device your GPS receiver is connected to. This is only enabled, if you've checked <guilabel>Use serial port instead of USB port</guilabel> (look at <xref linkend="sec.Use-serial-port" />).</para></sect4><sect4 id='sec.Data-files' >
300
class RectObj or any subclass thereof.
294
<title>Data files<!-- anchor id="sec.Data-files" --></title>
301
</para>
295
<para>&sportwatcher; save the data files, containing the activities in the directory, you specify here. Standard is <literal role="extension">.sportwatcher</literal> in your home directory. After the first start, and after you've downloaded your first activity, &sportwatcher; creates this directory, in case it does not already exist, and saves the activities there.</para></sect4><sect4 id='sec.HRM-files' >
302
</listitem>
296
<title>HRM files<!-- anchor id="sec.HRM-files" --></title>
303
</varlistentry>
297
<para>SportWatcher is able to save the heart rate data of an activity into Polars <acronym>HRM</acronym> format. If you do that (look at <xref linkend="sec.The-menu-HR" />), the file dialog box opens with the directory you set here. In case you use the software from Polar, than you can set this directory to the one your Polar software uses. SportWatcher sets the file name to the same notation Polar uses. This makes the files from SportWatcher fit seamlessly into the ones of Polar.</para>
304
<varlistentry>
298
<note><para>Because the format from Polar can only hold heard rate data with a fixed sample rate (5, 15, 30 or 60 seconds) the meassure points are averaged to fit the sample rate (look at <xref linkend="sec.Other-limits" />)</para></note></sect4><sect4 id='sec.Map-file' >
305
<term><replaceable class="parameter">num_children</replaceable>
299
<title>Map file<!-- anchor id="sec.Map-file" --></title>
306
</term>
300
<para>Enter in this line the path and name of a file that is a raster image of a map or a control file. It depends on the type of map (look at <xref linkend="sec.Map-type" />) you've set.</para><sect5>
307
<listitem>
301
<title>Raster images</title>
308
<para>Specifies the number of elements in <replaceable class="parameter">children</replaceable>.
302
<para>A raster image is a simple picture file. You can view such files with nearly every graphic program (<command>GIMP</command>, <command>Gwenview</command>, etc.). These files have extensions like <literal role="extension">.gif</literal>, <literal role="extension">.png</literal>, <literal role="extension">.tiff</literal> and the like. To make use of such images, you've to know the geo coordinates of the upper left and the lower right corner. Only the format <acronym>TIFF</acronym> allows to save the geo coordinates directly in the file header. But this is an optional information and you can't be sure that it's there. These raster images have the drawback, that they have a fixed resolution. They also show only a particular area and if your training session is partly or completely off this area, you get only a part or even no map. The advantage of a raster image is, that you need no external server or network connection to get them. Because they are local on your disc, they are allways available.</para></sect5><sect5>
309
</para>
303
<title>Other sources of maps</title>
310
</listitem>
304
<para>To not have the dawback of a raster image, you can use a <acronym>WMS</acronym> server as a source of maps. Unless this server isn't running on your local machine, you need an internet connection to access it. If you've set a <acronym>WMS</acronym> server, you must enter here the path and the name of the control file. SportWatcher creates this control file itself, so you don't have to bother with it. Entering the name here makes sure, it will be created in a directory, where SportWatcher have read and write access to.</para>
311
</varlistentry>
305
<para>Allthoug you can select <acronym>Shape</acronym> files as a source too, this is currently not supported. In case of a <acronym>Shape</acronym> file you've to enter here only the path where the <acronym>Shape</acronym> files are. In future SportWatcher will be able to read them and draw a map out of them. This will combine the advantages of vector maps with the advantages of local raster images, because a <acronym>Shape</acronym> file is a local file, containing a map, or a part of it, in vector coordinates.</para></sect5></sect4><sect4 id='sec.Map-type' >
312
</variablelist>
306
<title>Map type<!-- anchor id="sec.Map-type" --></title>
313
</refsect2></refsynopsisdiv>
307
<para>This sets the type of map. Basicly you can distinguish between raster images and vector based maps. Most vector based maps (<acronym>WMS</acronym> servers, <acronym>Shape</acronym> files) need the name and location where SportWatcher can create a control file (look at <xref linkend="sec.Map-file" />). For raster images you've to set the path and name of the file containing the raster image.</para>
314
 
308
<para>The setting here is necessary to allow SportWatcher to decide which settings dialog to show (look at <xref linkend="sec.The-menu-ConfMap" />).</para></sect4></sect3><sect3 id='sec.Units' >
315
<refsect1 id="r1-1007-unmanagechildren-1">
309
<title>Units<!-- anchor id="sec.Units" --></title>
316
<title>Description
310
<para>Here you can set metric units or U.S. statute.</para>
317
</title>
311
<para>In case of metric units, SportWatcher shows meters, kilometers, kilometer per hour. If you still used to the old U.S. statute units, SportWatcher shows feets, miles and miles per hour.</para></sect3></sect2><sect2 id='sec.The-menu-ConfMap' >
318
<para><function>XtUnmanageChildren()</function> unmaps the specified widgets
312
<title>The menu item <guimenuitem>Configure map</guimenuitem><!-- anchor id="sec.The-menu-ConfMap" --></title>
319
and removes them from their parent's geometry management.
313
<para>Dependend on the set map type (look at <xref linkend="sec.Map-type" />), SportWatcher displays an individual dialog to set the necessary settings for the selected map. Currently there are two dialog boxes. One to set everything for a <acronym>WMS</acronym> server and one to define the corners of a map in geo coordinates.</para><sect3 id='sec.WMS' >
320
The widgets will disappear from the screen, and (depending
314
<title>WMS<!-- anchor id="sec.WMS" --></title>
321
on its parent) may no longer have screen space allocated for
315
<screenshot>
322
them.
316
<screeninfo>Configure WMS</screeninfo>
323
</para>
317
   <mediaobject>
324
<para>Each of the widgets in the <replaceable class="parameter">children</replaceable> array must have
318
      <imageobject>
325
the same parent.
319
         <imagedata fileref="ConfigureWMS.png" format="PNG"></imagedata>
326
</para>
320
      </imageobject>
327
<para>See the &ldquo;Algorithm&rdquo; section below for full details of the
321
      <textobject>
328
widget unmanagement procedure.
322
         <phrase>Configure WMS</phrase>
329
</para>
323
      </textobject>
330
</refsect1>
324
   </mediaobject>
331
 
325
</screenshot>
332
<refsect1 id="r1-1007-unmanagechildren-2">
326
<para>This dialog contains all necessary controls to set up the <acronym>WMS</acronym> client. You can access a WMS server over the <acronym>HTTP</acronym> protocol. To get a map, you can use a simple <acronym>URL</acronym>. You can use your internet browser to try that out. Type in the following URL:</para><screen>
333
<title>Usage</title>
327
<![CDATA[http://onearth.jpl.nasa.gov/wms.cgi?VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG:4326&LAYERS=modis,global_mosaic&STYLES=&FORMAT=image/png&WIDTH=800&HEIGHT=600&BBOX=14.200104,46.612177,14.307995,46.633730
334
<para>Unmanaging widgets is the usual method for temporarily
328
]]></screen><para>You should get a satelite picture of a part of <emphasis>Klagenfurt</emphasis>, a city in austria, and a piece of the <emphasis>W&ouml;rtersee</emphasis>, a lake. <emphasis>Klagenfurt</emphasis> is on the bank of this lake. This example shows how easy it is to access a WMS server. SportWatcher sets all necessary parameters, including the wanted boundaries for you, so you don't have to bother with that. Beside the WMS server in our example, there are many others available. Look at</para><screen>
335
making them invisible.  They can be re-managed with
329
<![CDATA[]]><ulink url="http://www.skylab-mobilesystems.com/ger/wms_serverlist.html">http://www.skylab-mobilesystems.com/ger/wms_serverlist.html</ulink>
336
<function>XtManageChildren()</function>.
330
<![CDATA[]]></screen><para>for a large list of free WMS servers.</para><sect4 id='sec.Server-URL' >
337
</para>
331
<title>Server URL<!-- anchor id="sec.Server-URL" --></title>
338
<para>You can unmap a widget, but leave it under geometry
332
<para>Enter the <acronym>URL</acronym> of the WMS server. Related to our example above, this would be:</para><screen>
339
management by calling <function>XtUnmapWidget()</function>.  You can
333
<![CDATA[http://onearth.jpl.nasa.gov/wms.cgi
340
destroy a widget's window without destroying the widget by
334
]]></screen><para>You can omit the extra parameters, as shown in the above example, because SportWatcher will set them for you.</para></sect4><sect4 id='sec.Layer-name' >
341
calling <function>XtUnrealizeWidget()</function>.  You can destroy a
335
<title>Layer name<!-- anchor id="sec.Layer-name" --></title>
342
widget completely with <function>XtDestroyWidget()</function>.
336
<para>A WMS server can provide several <emphasis>layers</emphasis> to distinguish between parts of a map. Imagine a street map, for example. There one layer could contain the streets, another contains the rivers and another the rail ways. Putting this three layer together results in a complete street map. If you enter some layer names, you have to separate them with commas. Thing about the order of the maps! For example: Should the streets be drawn over the rivers or the other way?</para></sect4><sect4 id='sec.SRS' >
343
</para>
337
<title>SRS<!-- anchor id="sec.SRS" --></title>
344
<para>If you are only going to unmanage a single widget, it is
338
<para>To get a map with correct dimensions, the WMS server have to know the wanted geodetic date. If you want to learn more about geoids and projections, look at:</para><screen>
345
more convenient to call <function>XtUnmanageChild()</function>.  It is
339
<![CDATA[]]><ulink url="http://en.wikipedia.org/wiki/Geoid">http://en.wikipedia.org/wiki/Geoid</ulink>
346
often more convenient to call <function>XtUnmanageChild()</function>
340
<![CDATA[]]></screen><para>SportWatcher provides several geodetic dates. You must choose one, that is supported by the WMS server. Otherwise the map will not exactly fit under the tracks. In doubt take <emphasis>EPSG:4326</emphasis>, also known as <emphasis>WGS84</emphasis>.</para></sect4><sect4 id='sec.CRS' >
347
several times than it is to declare and initialize an array
341
<title>CRS<!-- anchor id="sec.CRS" --></title>
348
of widgets to pass to <function>XtUnmanageChildren()</function>.  Calling
342
<para>CRS is mostly the same as SRS (look at <xref linkend="sec.SRS" />). But this parameter is optional. In doubt, take <emphasis>WGS84</emphasis>.</para></sect4><sect4>
349
<function>XtUnmanageChildren()</function> is more efficient, however,
343
<title>Bands</title>
350
because it only calls the parent's <function>change_managed()</function>
344
<para>A WMS server returns a raster image, representing the requested map. Every digital picture consist of informations for every of the three color channels red, green and blue. Such a channel is also called a band (because of the method the information of the picture is managed internally). In case of a color picture, there are at least three bands. However. Such a picture could contain a fourth band, called the alpha channel. The alpha channels defines the transparency of every pixel of the picture. It is important to set the correct number of bands, because you'll get an error if this is set wrong!</para>
351
method once.
345
<note><para>If you get an error stating wrong band count, start &sportwatcher; from the command line and try to get the map again. &sportwatcher; puts out some error messages where you can find out the needed band count.</para></note></sect4><sect4 id='sec.Version' >
352
</para>
346
<title>Version<!-- anchor id="sec.Version" --></title>
353
</refsect1>
347
<para>There are more than one version of communication protocol for WMS servers. A WMS server should be backward compatible and should support version 1.1.0 at least. Today most of the WMS server support version 1.1.1. Only newer servers also support protocol version 1.3.0. In doubt set this to 1.1.1.</para></sect4><sect4 id='sec.Stile' >
354
 
348
<title>Stile<!-- anchor id="sec.Stile" --></title>
355
<refsect1 id="r1-1007-unmanagechildren-3">
349
<para>Beside the above mentioned layers (look at <xref linkend="sec.Layer-name" />), styles are also supported. For most WMS servers styles are optional. A style is a variant or part of a layer. One layer could consist, for example, of the styles country road, interstate road and highway. Every kind of street can be a style. This allows you to filter particular types of roads. But it's only allowed to give the name of one style per layer. Be carefull to define exactly the same number of styles, as you've defined layers and pay attention of the order of the styles. They must apperar in the same order like the layers (one style per layer).</para></sect4><sect4 id='sec.Tile-size' >
356
<title>Algorithm
350
<title>Tile size<!-- anchor id="sec.Tile-size" --></title>
357
</title>
351
<para>To save band width, SportWatcher groups the map into several quadrats with equal size. This tiles are stored on the disk in a temporary cache. If some parts can be reused later, SportWatcher will take them out of the cache rather than downloading them again.</para>
358
<para><function>XtUnmanageChildren()</function> performs the following:
352
<para>This setting allows to set the size of such a tile. The optimal size depends on the WMS server. You may test this to find out what works fastest.</para></sect4><sect4 id='sec.Depth' >
359
</para>
353
<title>Depth<!-- anchor id="sec.Depth" --></title>
360
<variablelist>
354
<para>Number of directory layers. 2 will result in files being written as &lt;cache_path&gt;/A/B/ABCDEF... (defaults to 2).</para></sect4><sect4 id='sec.Overview-count' >
361
<varlistentry>
355
<title>Overview count<!-- anchor id="sec.Overview-count" --></title>
362
<term>-
356
<para>Count of reduced resolution layers each having 2 times lower resolution. In doubt set to 10.</para></sect4><sect4 id='sec.WMS-squarepixel' >
363
</term>
357
<title>WMS Server uses square pixels<!-- anchor id="sec.WMS-squarepixel" --></title>
364
<listitem>
358
<para>In case you find a WMS server that is not able to calculate the projection correct, you can try to set this option.</para></sect4><sect4 id='sec.Offline-mode' >
365
<para>Ignores the child if it already is unmanaged or is being
359
<title>Offline mode<!-- anchor id="sec.Offline-mode" --></title>
366
destroyed.
360
<para>If you set this option, SportWatcher will not try to get a map from a WMS server. It only looks into the local cache and if it finds a map there, it displays ist. Otherwise the track appears with a black background.</para></sect4><sect4 id='sec.Advice-read' >
367
</para>
361
<title>Advice read<!-- anchor id="sec.Advice-read" --></title>
368
</listitem>
362
<para>Download images into cache. This saves time and brings a map faster to screen.</para></sect4><sect4 id='sec.Verify-advice-read' >
369
</varlistentry>
363
<title>Verify advice read<!-- anchor id="sec.Verify-advice-read" --></title>
370
<varlistentry>
364
<para>Open each downloaded image and do some basic checks before writing into cache. Disabling can save some CPU cycles if server is trusted to always return correct images.</para></sect4><sect4 id='sec.Add-meters-longitude' >
371
<term>-
365
<title>Add meters to longitude<!-- anchor id="sec.Add-meters-longitude" --></title>
372
</term>
366
<para>In case the map is moved a little in x direction, you can correct it here. Type in the number of meters, the map is moved.</para></sect4><sect4 id='sec.Add-meters-latitude' >
373
<listitem>
367
<title>Add meters to latitude<!-- anchor id="sec.Add-meters-latitude" --></title>
374
<para>Otherwise, if the child is realized, it makes it nonvisible
368
<para>In case the map is moved a little in y direction, you can correct it here. Type in the number of meters, the map is moved.</para></sect4></sect3><sect3 id='sec.Image-coordinates' >
375
by unmapping it.
369
<title>Image coordinates<!-- anchor id="sec.Image-coordinates" --></title>
376
</para>
370
<screenshot>
377
</listitem>
371
<screeninfo>SportWatcher coordinates</screeninfo>
378
</varlistentry>
372
   <mediaobject>
379
</variablelist>
373
      <imageobject>
380
<para>
374
         <imagedata fileref="ConfigureCoordinates.png" format="PNG"></imagedata>
381
</para>
375
      </imageobject>
382
</refsect1>
376
      <textobject>
383
 
377
         <phrase>SportWatcher coordinates</phrase>
384
<refsect1 id="r1-1007-unmanagechildren-4">
378
      </textobject>
385
<title>Structures</title>
379
   </mediaobject>
386
<para>The <type>WidgetList</type> type is simply an array of widgets:
380
</screenshot>
387
</para>
381
<para>In case you've choosen a kind of raster image as your map, this dialog appears. Here you can set the corners in geographical format. One drawback of raster formats is, that they contain no geographical information. To allow SportWatcher to use such raster images, it must know the dimensions of the map. An even bigger drawback is the fixed resolution of the map. Depending of the magnifier, the map may look blurred or it looks coarse-grained. One benefit of such maps is, that they are available offline and they are faster than every vector format.</para><sect4 id='sec.Upper-left-corner' >
388
<screen id="sc-1007-unmanagechildren-1">typedef Widget *WidgetList;
382
<title>Upper left corner<!-- anchor id="sec.Upper-left-corner" --></title>
389
</screen>
383
<para>This defines the upper left corner. Define this values in the format of the set <link linkend="sec.Projection">projection</link>.</para></sect4><sect4 id='sec.Lower-right-corner' >
390
</refsect1>
384
<title>Lower right corner<!-- anchor id="sec.Lower-right-corner" --></title>
391
</refentry>
385
<para>his defines the lower right corner. Define this values in the format of the set <link linkend="sec.Projection">projection</link>.</para></sect4><sect4 id='sec.Projection' >
392
 
386
<title>Projection<!-- anchor id="sec.Projection" --></title>
393
</chapter>
387
<para>This setting defines the <ulink url="http://en.wikipedia.org/wiki/Graphical_projection">graphical projection</ulink> of the map. Graphical projection is a protocol by which an image of an imaginary three-dimensional object is projected onto a planar surface without the aid of mathematical calculation. The projection is achieved by the use of imaginary "projectors". The projected, mental image becomes the technician's vision of the desired, finished picture. By following the protocol the technician may produce the envisioned picture on a planar surface such as drawing paper. The protocols provide a uniform imaging procedure among people trained in technical graphics (mechanical drawing, computer aided design, etc.).</para>
394
 
388
<para>SportWatcher allows to set some of the possible projections. Choose the one, used for your map.</para></sect4></sect3></sect2></sect1><sect1 id='sec.The-menu-Help' >
395
<chapter id="faq">
389
<title>The menu <guimenu>Help</guimenu><!-- anchor id="sec.The-menu-Help" --></title>
396
<title>Questions and Answers</title>
390
&help.menu.documentation;</sect1></chapter><chapter id='cha.Display-a-map' >
397
 
391
<title>Display a map underneath a track<!-- anchor id="cha.Display-a-map" --></title>
398
<!-- (OPTIONAL but recommended) This chapter should include all of the silly
392
<para>SportWatcher is able to display a map underneath a track. A track consists of several messure points who are connected with a line. It represents the path you were running or biking. SportWatcher supports differnt sources for maps. Setting the map source (look at <xref linkend="sec.The-menu-ConfSPW" />) is the precondition to get a map. Another precondition is the availability of GPS coordinates. If you train in the open, the Garmin Forerunner will record the GPS coordinates.</para>
399
(and not-so-silly) newbie questions that fill up your mailbox. This chapter
393
<para>SportWatcher paints in a first step the map and then draws the track over it. If you've set everything correct, the track should fit perfect on the map.</para><sect1 id='sec.WMS-Server' >
400
should be reserved for BRIEF questions and answers! If one question uses more
394
<title>WMS Server<!-- anchor id="sec.WMS-Server" --></title>
401
than a page or so then it should probably be part of the
395
<para>The <ulink url="http://en.wikipedia.org/wiki/Web_Map_Service">Web Map Service</ulink> (WMS) is an interface to request parts of a map. Such an interface could also be called a WEB service. The specification was designed by the <ulink url="http://en.wikipedia.org/wiki/Open_Geospatial_Consortium">Open Geospatial Consortium</ulink> (OGC). It describes the parameters needed for a request. It also defines, how a WMS server should generate a map out of the request.</para>
402
"Using this Application" chapter instead. You should use links to
396
<para>SportWatcher supports the access to any WMS server out of the box. Just choose WMS server as the source for maps and set everything necessary as described at <xref linkend="sec.WMS" />.</para></sect1><sect1 id='sec.Map-out-of' >
403
cross-reference questions to the parts of your documentation that answer them.
397
<title>Map out of a raster image<!-- anchor id="sec.Map-out-of" --></title>
404
This is also a great place to provide pointers to other FAQ's if your users
398
<para>In case you have a picture representing a map, SportWatcher needs geographical reference points. Formats like PNG (Portable Network Graphics), BMP (Bitmap), GIF (Graphics Image Format), and so on, are called raster images. First, you have to find a map of the wanted area in the wanted resolution. Once this is done, you must find out the geodetic date of th map. This may be difficult, but is absolutely needed! Once this is also done, you should know the upper left and the lower right corner in geographical coordinates. With all this informations, you can start to enter the needed parameters. Part <xref linkend="sec.Map-file" /> let you define the path to the map and the file name of the map. With <xref linkend="sec.Map-type" /> you can define the type of the map. Now most of the work is done. Now only the definations of the corners is left. Look at <xref linkend="sec.Image-coordinates" /> for an explanation of how to do that. Once this is done, SportWatcher should display a map underneath the track. The map must not have exactly the size of the track. In fact it should be bigger (maybe a lot bigger). I recomend to find a map about your whole training area. SportWatcher will cut the needed piece and stretch and push it to fit into the given drawing space.</para></sect1><sect1 id='sec.Shape-files' >
405
must do some complicated configuration on other programs in order for your
399
<title>Shape files<!-- anchor id="sec.Shape-files" --></title>
406
application work. -->
400
<para>The ESRI Shapefile or simply a shapefile is a popular geospatial vector data format for geographic information systems software. It is developed and regulated by <ulink url="http://en.wikipedia.org/wiki/ESRI">ESRI</ulink> as a (mostly) open specification for data interoperability among ESRI and other software products. A "shapefile" commonly refers to a collection of files with extensions of <literal role="extension">.shp</literal>, <literal role="extension">.shx</literal>, <literal role="extension">.dbf</literal>, and other extensions on a common prefix name (e.g., "lakes.*"). The actual shapefile relates specifically to files with the <literal role="extension">.shp</literal> extension, however this file alone is incomplete for distribution, as the other supporting files are required.</para>
407
 
401
<note><para>This format is currently not implemented!</para></note></sect1><sect1 id='sec.PostGIS-database' >
408
&reporting.bugs;
402
<title>PostGIS database<!-- anchor id="sec.PostGIS-database" --></title>
409
&updating.documentation;
403
<para>PostGIS (<emphasis>/post'-jis/</emphasis>) is an open source software program that adds support for geographic objects to the PostgreSQL object-relational database. PostGIS follows the Simple Features for SQL specification from the Open Geospatial Consortium. As such, PostGIS includes:</para><itemizedlist>
410
 
404
<listitem><para>Geometry types for points, linestrings, polygons, multipoints, multilinestrings, multipolygons and geometry collections.</para></listitem><listitem><para>Spatial predicates for determining the interactions of geometries using the 3x3 Egenhofer matrix (provided by GEOS).</para></listitem><listitem><para>Spatial operators for determining geospatial measurements like area, distance, length and perimeter.</para></listitem><listitem><para>Spatial operators for determining geospatial set operations, like union, difference, symmetric difference and buffers (provided by GEOS).</para></listitem><listitem><para>R−tree spatial indexes for high speed spatial querying.</para></listitem><listitem><para>Index selectivity support, to provide high performance query plans for mixed spatial/non-spatial queries.</para></listitem></itemizedlist><para>The PostGIS implementation is based on "light-weight" geometries and indexes optimized to reduce disk and memory footprint. Using light-weight geometries helps servers increase the amount of data migrated up from physical disk storage into RAM, improving query performance substantially.</para>
411
<qandaset id="faqlist">
405
<note><para>This function is currently not implemented!</para></note></sect1></chapter><chapter id='cha.Credits' >
412
<qandaentry>
406
<title>Credits<!-- anchor id="cha.Credits" --></title>
413
<question>
407
<sect1 id='sec.Danksagung-und-Lizenz' >
414
<para>My Mouse doesn't work. How do I quit &sportwatcher;?</para>
408
<title>Credits and License<!-- anchor id="sec.Danksagung-und-Lizenz" --></title>
415
</question>
409
<para>&sportwatcher;</para>
416
<answer>
410
<para>Program <trademark class="copyright">Copyright </trademark> 2007 - 2009 by Andreas Theofilu <email>andreas@theosys.at</email></para>
417
<para>You silly goose! Check out the <link linkend="commands">Commands
411
<para>Based on <command>garmin-tools</command> from Dave Bailey <email>dave@daveb.net</email></para>
418
Section</link> for the answer.</para>
412
<para>Based on <command>GANT</command> from Paul <email>paul@ant.sbrk.co.uk</email></para>
419
</answer>
-
 
420
</qandaentry>
-
 
421
<qandaentry>
-
 
422
<question>
-
 
423
<para>Why can't I twiddle my documents?</para>
-
 
424
</question>
-
 
425
<answer>
-
 
426
<para>You can only twiddle your documents if you have the foobar.lib
-
 
427
installed.</para>
-
 
428
</answer>
-
 
429
</qandaentry>
-
 
430
</qandaset>
-
 
431
</chapter>
-
 
432
 
-
 
433
<chapter id="credits">
-
 
434
 
-
 
435
<!-- Include credits for the programmers, documentation writers, and
-
 
436
contributors here. The license for your software should then be included below
-
 
437
the credits with a reference to the appropriate license file included in the KDE
-
 
438
distribution. -->
-
 
439
 
-
 
440
<title>Credits and License</title>
-
 
441
 
-
 
442
<para>
-
 
443
&sportwatcher;
-
 
444
</para>
-
 
445
<para>
-
 
446
Program copyright 2007 Andreas Theofilu <email>andreas@theosys.at</email>
-
 
447
</para>
-
 
448
<para>
-
 
449
Contributors:
-
 
450
<itemizedlist>
-
 
451
<listitem><para>Konqui the KDE Dragon <email>konqui@kde.org</email></para>
-
 
452
</listitem>
-
 
453
<listitem><para>Tux the Linux Penguin <email>tux@linux.org</email></para>
-
 
454
</listitem>
-
 
455
</itemizedlist>
-
 
456
</para>
-
 
457
 
-
 
458
<para>
-
 
459
Documentation copyright 2007 Andreas Theofilu <email>andreas@theosys.at</email>
-
 
460
</para>
-
 
461
 
-
 
462
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
413
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
463
 
-
 
464
&underFDL;               <!-- FDL: do not remove -->
414
&underFDL;               <!-- FDL: do not remove -->
465
 
-
 
466
<!-- Determine which license your application is licensed under, 
-
 
467
     and delete all the remaining licenses below:
-
 
468
 
-
 
469
     (NOTE:  All documentation are licensed under the FDL, 
-
 
470
     regardless of what license the application uses) -->
-
 
471
 
-
 
472
&underGPL;        	 <!-- GPL License -->
415
&underGPL;               <!-- GPL License --></sect1></chapter></book>
473
&underBSDLicense;        <!-- BSD License -->
-
 
474
&underArtisticLicense;   <!-- BSD Artistic License -->
-
 
475
&underX11License;        <!-- X11 License  -->
-
 
476
 
-
 
477
</chapter>
-
 
478
 
-
 
479
<appendix id="installation">
-
 
480
<title>Installation</title>
-
 
481
 
-
 
482
<sect1 id="getting-sportwatcher">
-
 
483
<title>How to obtain &sportwatcher;</title>
-
 
484
 
-
 
485
<!-- This first entity contains boiler plate for applications that are
-
 
486
part of KDE CVS.  You should remove it if you are releasing your
-
 
487
application --> 
-
 
488
 
-
 
489
&install.intro.documentation;
-
 
490
 
-
 
491
</sect1>
-
 
492
 
-
 
493
<sect1 id="requirements">
-
 
494
<title>Requirements</title>
-
 
495
 
-
 
496
<!--
-
 
497
List any special requirements for your application here. This should include:
-
 
498
.Libraries or other software that is not included in kdesupport,
-
 
499
kdelibs, or kdebase.
-
 
500
.Hardware requirements like amount of RAM, disk space, graphics card
-
 
501
capabilities, screen resolution, special expansion cards, etc.
-
 
502
.Operating systems the app will run on. If your app is designed only for a
-
 
503
specific OS, (you wrote a graphical LILO configurator for example) put this
-
 
504
information here.
-
 
505
-->
-
 
506
 
-
 
507
<para>
-
 
508
In order to successfully use &sportwatcher;, you need &kde; 1.1. Foobar.lib is
-
 
509
required in order to support the advanced &sportwatcher; features. &sportwatcher; uses
-
 
510
about 5 megs of memory to run, but this may vary depending on your
-
 
511
platform and configuration.
-
 
512
</para>
-
 
513
 
-
 
514
<para>
-
 
515
All required libraries as well as &sportwatcher; itself can be found
-
 
516
on <ulink url="ftp://ftp.sportwatcher.org">The &sportwatcher; home page</ulink>.
-
 
517
</para>
-
 
518
 
-
 
519
<!-- For a list of updates, you may refer to the application web site
-
 
520
or the ChangeLog file, or ... -->
-
 
521
<para>
-
 
522
You can find a list of changes at <ulink
-
 
523
url="http://apps.kde.org/sportwatcher">http://apps.kde.org/sportwatcher</ulink>.
-
 
524
</para>
-
 
525
</sect1>
-
 
526
 
-
 
527
<sect1 id="compilation">
-
 
528
<title>Compilation and Installation</title>
-
 
529
 
-
 
530
<!-- This entity contains the boilerplate text for standard -->
-
 
531
<!-- compilation instructions.  If your application requires any -->
-
 
532
<!-- special handling, remove it, and replace with your own text. -->
-
 
533
 
-
 
534
&install.compile.documentation;
-
 
535
 
-
 
536
</sect1>
-
 
537
 
-
 
538
<sect1 id="configuration">
-
 
539
<title>Configuration</title>
-
 
540
 
-
 
541
<para>Don't forget to tell your system to start the <filename>dtd</filename>
-
 
542
dicer-toaster daemon first, or &sportwatcher; won't work !</para>
-
 
543
 
-
 
544
</sect1>
-
 
545
 
-
 
546
</appendix>
-
 
547
 
-
 
548
&documentation.index;
-
 
549
</book>
-
 
550
 
-
 
551
<!--
-
 
552
Local Variables:
-
 
553
mode: sgml
-
 
554
sgml-minimize-attributes:nil
-
 
555
sgml-general-insert-case:lower
-
 
556
sgml-indent-step:0
-
 
557
sgml-indent-data:nil
-
 
558
End:
-
 
559
 
-
 
560
vim:tabstop=2:shiftwidth=2:expandtab 
-
 
561
-->
-
 
562
 
-