/* Copyright (c) 2007 Axel Wachtler
   All rights reserved.

   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions
   are met:

   * Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.
   * Neither the name of the authors nor the names of its contributors
     may be used to endorse or promote products derived from this software
     without specific prior written permission.

   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   POSSIBILITY OF SUCH DAMAGE. */

/* $Id: trx.dox,v 1.13 2009/12/16 21:11:04 awachtler Exp $ */

/**
 @page pgUracoliIntro Introduction

 @section secOverview Overview

 @uracoli provides low level driver routines, example code and demo applications
 on^different hardware platforms with Atmels 8-bit-AVR-microcontrollers and IEEE 802.15.4
 radio transceivers AT86RF{230,231,212}.

 The project consists of the following components:
  - The library @ref grpLibRadio "libradio_[board.a]", which provides basic
    functions for controlling the radio transceivers AT86RF{230,231,212}.
  - The library @ref grpLibIoutil "libio_[board].a", which provides functions for
    using hardware resources like UART, timer, and general purpose IO control.
  - A set of @ref pgXmplMain "examples", which illustrate the use of the libraries.
  - The @ref pgAppMain "demo applications", which show, how the libraries are
    used in a slightly more complex context.

 @note
 Nevertheless the library @libradio can be used sole, without any
 need for @libio. For operating a transceiver just the SPI interface
 of the microcontroller, two GPIO ports and one IRQ line are necessarry..

 @section secQuickStart Getting Started

*/

/*
 @page pgUracoliIntro Introduction

 @section secOverview Overview

 @uracoli provides low level driver routines, example code and demo applications
 on^different hardware platforms with Atmels 8-bit-AVR-microcontrollers and IEEE 802.15.4
 radio transceivers AT86RF{230,231,212}.

 The project consists of the following components:
  - The library @ref grpLibRadio "libradio_[board.a]", which provides basic
    functions for controlling the radio transceivers AT86RF{230,231,212}.
  - The library @ref grpLibIoutil "libio_[board].a", which provides functions for
    using hardware resources like UART, timer, and general purpose IO control.
  - A set of @ref pgXmplMain "examples", which illustrate the use of the libraries.
  - The @ref pgAppMain "demo applications", which show, how the libraries are
    used in a slightly more complex context.

 @note
 Nevertheless the library @libradio can be used sole, without any
 need for @libio. For operating a transceiver just the SPI interface
 of the microcontroller, two GPIO ports and one IRQ line are necessarry..

 @section secQuickStart Getting Started


 @par @l1usr

 <table border="0"><tr><td width="85%">

 You just got some boards, e.g. a Raven-Kit and want to start with wireless communication

 Before flashing any of the µracoli applications you should try out the
 software that comes with your hardware and of course have a look
 in the documentation. That gives you the impression, that your hardware
 is working and you have a starting point, where you can go back if
 at a time later a situation occurs where nothing more seems to work.

 Additionally you can download the precompiled package for your plattform
 and flash some of the application hex files, e.g. xmpl_trx_rx_[board].hex
 and xmpl_trx_tx_[board].hex and see, if the application behaves as expected.
 (see @ref pgXmplMain).

 As a basic prequisite you need some AVR programming tool, like
 AVR-ISP, AvrDragon, JTAG-ICE or one of the other available AVR programmer.

 ... @subpage pgGstartL1 "read more"

 </td><td><img src="l1.png" width="5%"/></td></tr></table>

 @par @l2usr

 <table border="0"><tr><td width="85%">

 You are interested in some of the @uracoli applications, like wireless UART,
 packet capturing with wireshark or you want to modify the existing
 example applications for your particular purposes.

 In this case you need usually to install some additional tools on your PC, like
 AvrStudio, avr-gcc, Python, Wirehark, ... (see @subpage pgGstartL2).

... @subpage pgGstartL2 "read more"

 </td><td><img src="l2.png" width="5%"/></td></tr></table>

 @par @l3usr

 <table border="0"><tr><td width="85%">



 @b Attidude: The applications I checked durig my L2 phase need some
 improvements and adaptations to for my project.

 @b Benefit: Do a anonymous check out the @uracoli sources from the
    CVS, <a href="dev/pgToolChain.html">install the tool chain</a>,
    compile the code and test your modifications.

    ... @subpage pgGstartL3 "read more"

 </td><td><img src="l3.png" width="5%"/></td></tr></table>

 @par @l4usr



 <table border="0"><tr><td width="85%">


 </td><td><img src="l4.png" width="5%"/></td></tr></table>

  @par @l5usr

  <table border="0"><tr><td width="85%">


  </td><td><img src="l5.png" width="5%"/></td></tr></table>

<div style="background-color:lightgrey">

 With the help of the following table, you can quickly find your entry point to @uracoli.

<table>

 <tr><td><b>@l3usr</b>
  @image html l3.png
 </td><td>
 @b Attidude: The applications I checked durig my L2 phase need some
 improvements and adaptations to for my project.

 @b Benefit: Do a anonymous check out the @uracoli sources from the
    CVS, <a href="dev/pgToolChain.html">install the tool chain</a>,
    compile the code and test your modifications.

    ... @subpage pgGstartL3 "more"
 </td></tr>

 <tr><td><b>@l4usr</b>
  @image html l4.png
 </td><td>
  @b Attitude: I need to add new board, fixed a bug or implemented some
     new functionality in the sources, that will be usefull for others.

  @b Benefit: Make a patch against the CVS repository and put it as
      enhancement in the bug tracking system.

    ... @subpage pgGstartL4 "more"
 </td></tr>

 <tr><td><b>@l5usr</b>
  @image html l5.png
 </td><td>
 @b Attitude: I maintain a part of the project, document and test it.

 @b Benefit: You get the @uracoli developer status and will be able
    to directly commit code into the repository.

    ... @subpage pgGstartL5 "more"

 </td></tr>
 </table>





 In order to compile the libraries, applications and this documentation,
 install the required @ref pgToolChain "tool chain" and type in uracoli
 directory:
 @code
 scons all doc
 @endcode
 This creates a directory @em install under @em uracoli, which
 has the following structure.
<pre>
  uracoli
  `-- install
      |-- bin .............. *.hex and *.elf files of the demo applications
      |-- lib .............. static libraries
      |-- inc .............. interface include files for static libraries
      |   |-- boards
      |   `-- rf230
      `-- doc .............. package documentation
</pre>
@note The directory uracoli/build contains
       the object and other intermediate files of the build.


 @section secFurtherReading Further Reading
  - @subpage pgUracoliStart
   - <em>Description of Demo Applications</em>
    - @ref grpAppTrx
    - @ref grpAppRadio
   - <em>Examples for own applications</em>
    - @ref pgXmplMain
   - <em>Development</em>
    - @ref pgToolChain
    - @ref grpBoard
    - @ref pgNewHw

</div>



 */
