\page HOWTO HOWTO

\section HOWTOIWantTo I want to...

\subsection HOWTOGettingStarted Getting Started

* See the detailed documentation...
    -# Make sure Doxygen is installed on your build system by running "doxygen -v"
    -# In the top level directory of the toolkit (where the Doxyfile resides), run doxygen.
    -# In a web browser, open $TKROOT/gnsstk_doc_dir/html/index.html

* Build the toolkit...
    -# Refer to \ref INSTALL

\subsection HOWTOCode Library Use

* Use time data in my code...
    -# Refer to \ref TimeHandlingGuide for guidance.
    -# Refer to the classes in the \ref TimeHandling module for reference documentation.

* Generate correlation codes...
    -# Refer to the \ref CodeGen module for reference documentation.

* Decode as-broadcast navigation messages...
    -# Refer to the guidance in \ref navlibrary for a detailed guide of how to use the NavLibrary classes.  Matching reference documentation can be found in the \ref NavFactory module documentation.
    -# Refer to the classes in the \ref GNSSEph module for reference documentation.

* Get satellite position/velocity/clock offset or health...
    -# Refer to the guidance in \ref navlibrary for a detailed guide of how to use the NavLibrary classes.  Matching reference documentation can be found in the \ref NavFactory module documentation.

* Get offsets between time systems...
    -# For getting a precise offset (usually in milliseconds or better) between time systems the information may be extracted from navigation message data.  Refer to the guidance in \ref navlibrary for a detailed guide of how to use the NavLibrary classes.  Matching reference documentation can be found in the \ref NavFactory module documentation.
    -# Refer to gnsstk::CommonTime::changeTimeSystem(), gnsstk::TimeSystemConverter, gnsstk::BasicTimeSystemConverter (for second-resolution offsets), and/or gnsstk::NavTimeSystemConverter (for ms-resolution offsets).

* Use trace debugging...
    -# When writing code, include the file DebugTrace.hpp.
    -# Use the DEBUGTRACE_FUNCTION() macro at the start of methods you wish to trace.
    -# Use the DEBUGTRACE_ENABLE() macro to enable tracing in a particular application (recommended to enable when the -d/--debug command-line option is used).
    -# Use the DEBUGTRACE() macro to output debugging information.  The argument is a stream output statement, e.g. <br/> <tt>DEBUGTRACE("foo = " << foo);</tt>
    -# Trace debugging is disabled by default.  To enable it, either use the -a option with build.sh, or specify -DDEBUGTRACE=ON if running cmake manually.  This is done to minimize the performance impact of having trace code available for development on deployed binaries.

Note: switching between DEBUGTRACE=ON and OFF will likely require both
a clean build and removing CMakeCache.txt from the build output
directory before the change will take effect.

Additional details can be found in the documentation for the gnsstk::DebugTrace
class.

Refer to core/tests/Utilities/DebugTrace_T.cpp for example use.

\subsection HOWTOContribute Contribute Code

* Contribute code...
   -# Follow the style guide, if we ever add it from the wiki to the code base.
   -# Document your code using doxygen as described in \ref DoxygenGuide

\internal
Defining some pages here so that they will appear after all of the
super-important stuff that we want at the top of the navigation bar,
but before the other pages.
\endinternal

\page APIguide API Guides
