Basics of the RAILtest Application#

The RAILtest application provides a simple tool for testing the radio and the functionality of the RAIL library. For any advanced usage you must write your own software against the RAIL library and create a custom radio configuration. The RAILtest application is further described in RAILtest User's Guide.

Note: If you are going to use the WSTK as a mobile device to run the RAILtest application, it is recommended that you connect an external AA battery pack or a USB power bank to the WSTK board. The coin cell battery will not have enough power to do long-term testing using sample applications like RAILtest.

CLI#

The most powerful way to interact with the sample application is using the provided command line interface. The setup instructions in earlier sections describes how to connect to this interface.

Command Input#

The syntax for this interface is the standard command [arg0, arg1, ...] syntax, where the number and type of arguments depend on the specific command. Numeric values can be prefixed with 0x to indicate hexadecimal values. Note that the maximum number of arguments to any command is 9 and the maximum length of a command line is 255 characters.

Use the help command to see a full listing of available command options.

Command Output#

All responses to commands are formatted in a human readable yet parsable format. There are two variations of this format: single- and multi-line. Both of these follow these rules.

  • Start and end with curly braces { }.

  • List the command name, enclosed in parentheses ( ).

  • Contain any number of tag/value pairs enclosed in curly braces { }.

  • Carriage returns and line feeds are treated as whitespace by any parser.

Single Response#

Used when there is only a single response to a command.

  • There is a single start/end curly brace wrapper.

  • Tag/value pairs are wrapped in a single set of curly braces, separated by a colon {tag:value}.

Example:

> getchannel
{{(getchannel)}{channel:4}}

Multi Response#

Used when a command may have multiple responses, for example when reading a block of memory or receiving multiple packets.

  • Response starts with a header, delimited by a hash # at the start of the line.

  • Header includes the command name, followed by any tags individually wrapped with curly braces { }.

  • Following the header, any number of responses can be provided.

  • Data lines do not contain the command name or tags, only the values that correspond to the tags in the order described in the header.

Example:

> getmemw 0x20000000 4
#{{(getmemw)}{address}{value}}
{{0x20000000}{0x0000e530}}
{{0x20000004}{0x000051c6}
{{0x20000008}{0x0000c939}
{{0x2000000c}{0x0000e090}}