# Radio Diagnostics Application
[Applications based on Radio functions]

## Detailed Description

This application provides a framework for testing the radio functions.

The basic functions of the transceiver, e.g. setting channel, adjusting power and transmission/reception of frames can be done with hotkeys. The application is usefull to check if a new board definition is valid or a hardware platform works as expected.

     avr-size install/bin/rdiag_rdk230.hex
       text    data     bss     dec     hex filename
          0    7960       0    7960    1f18 install/bin/rdiag_rdk230.hex

## Usage

- Load the file `"install/bin/rdiag_<board>.hex"` to your hardware.
- After starting a terminal and connecting the hardware

    Radio Diag 0.12                                                                                                                                                 >RADIO INIT: OK
    >RADIO INIT: OK

- Press h to display a help screen

    i/I : show / show and reset statistic
    +/- : incr./decr. channel
    P/p : incr./decr. power
    C/c : incr./decr. CCA mode
    o   : set state OFF
    t   : set state TX
    r   : set state RX
    s   : send a test frame
    R   : toggle RXON_IDLE parameter
    V/v : incr./decr. verbosity (0...2)

- Press i to display a statistic of the radio.
  If the key I is pressed, the statistic values are reset to 0 after printing.

    >STAT duration: 33 ticks
     RX: frames: 12 crcerr: 12
     RX: channel 26 avg rssi: 0 avg lqi:  0
     TX: frames: 0

- with the keys o (TRX_OFF), r (TRX_RX), t (TRX_TX), the radio can be set into the basic states

    >SATE_OFF
    >SATE_RX
    >SATE_TX

- with the keys + and - the radio channel can be selected (11...26). The initial channel after chip reset is 11 (hardware feature).

    >CHAN: 12
    >CHAN: 11
    >CHAN: 26

- with p and P the transmit power is modified. The numbers 0 ... 15 represent the power values given in the data sheet of the AT86RF230
- with c and C the CCA mode is switched (0...3)

    >PWR: 9
    >PWR: 10
    >CCA: 0
    >CCA: 3

- with s a single test frame is send.
- with S a test frame is send continously (until S is pressed).

    >SEND len=42
    0000  01 00 02 55 55 55 55 55 55 55 55 55 55 55 55 55
    0010  55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
    0020  55 55 55 55 55 55 55 55 00 00
    >SEND CONTINOUS START
    >SEND CONTINOUS STOP

- with R the transceiver state, while idle is selected
  - 1 after sending a frame, the transceiver is set to state TRX_RX
  - 0 after sending a frame, the transceiver is set to state TRX_OFF

    >RXON_IDLE: 1
    >RXON_IDLE: 0

- with V and v the verbose level can be changed between 0..2
  - at 0 : nothing about TX and RX events is printed
  - at 1 : frame parameters for TX and RX events are printed
  - at 1 : the frame contents is also dumped
- in case of many events, not all messages can be printed and display will miss information

    >VERBOSE: 0
    >VERBOSE: 1
    ++FRAME len=117, crc=238, lqi=0 rssi=0
    ++FRAME len=31, crc=192, lqi=0 rssi=0
    >SEND len=42
    >VERBOSE: 2
    ++FRAME len=71, crc=119, lqi=0 rssi=0
    0000  24 d9 80 79 eb b1 91 cf 6a ab 14 21 f7 f0 ce 6c
    0010  6e a6 6c a1 16 37 72 e4 e7 60 56 20 66 27 31 42
    0020  41 db 82 66 36 54 88 37 57 37 47 73 1c 7a d7 72
    0030  6a 3f 40 82 17 c5 27 24 1d 1e 16 a6 52 71 59 64
    0040  66 22 4c 32 71 37 53
    >SEND len=42
    0000  01 00 03 55 55 55 55 55 55 55 55 55 55 55 55 55
    0010  55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
    0020  55 55 55 55 55 55 55 55 00 00

## Files
file | diagradio.c
| Implementation of the Radio Diagnostics Application.