/*! \page page_usrpctl Usrpctl

\tableofcontents

\section usrpctl_description Description

usrpctl is the central and universal tool to 
query, update or configure USRP devices. The command structure is:

    usrpctl $ID $COMMAND $OPTIONS

`usrpctl` will run `$COMMAND` on the devices identified by `$ID`. `$OPTIONS`
is dependend on the chosen command.

\section usrpctl_id $ID

`$ID` is the optional device argument. It is used to define a set
of USRP devices that `$COMMAND` should be applied to. If `$ID` is omitted
`$COMMAND` is applied to all reachable devices.

`usrpctl` understands the device args argument used by other UHD
tools like `uhd_find_devices`.

\section usrpctl_command $COMMAND
Is the action the tool is to take. Every command can be either applied to a
single device or a group of devices. Commands that run on a group of
devices repeat the command for every device.

- Single device commands:
    - `config`: Read/write configuration variables (e.g., IP address)
    - `probe`: reads extended information about the USRP
- Multi device commands:
    - `update`: Update binaries (e.g., FPGA image)
    - `reset`: Reset the specified subcomponent(s) of the USRP
    - `find`: finds all available USRPs in this network

\section usrpctl_options $OPTIONS

The options depend on the chosen command. Optional arguments are prepended
with a dash, mandatory are not.

\section usrpctl_commands Available commands

\subsection usrpctl_find find

The find command takes no further options. If `$ID` is not given it scans the
system for available, supported devices and prints a list of discovered devices.
The print out is compatible to \ref id_identifying_cmdline "`uhd_find_devices`".
`$ID` can be used to narrow down the list of discovered devices.

Examples:

- `usrpctl find` find all supported devices
- `usrpctl type=x300,product=X310 find` find all x310 devices
- `usrpctl name=my_usrp find` find a device named my_usrp
- `usrpctl addr=192.168.10.2 find` find a device with the given IP.

\subsection usrpctl_probe probe
Arguments:
-`-tree`: print a list of the device property tree
 
The probe command can only be applied to a single device so make sure that
`$ID` identifies exactly one device. Without arguments it displays detailed
information about the device such as name, serial, revision numbers, 
firmware version sensor information on attached motherboard and daughterboards.

Examples:
- `usrpctl addr=192.168.10.2 probe` display device information for USRP with the given ID
- `usprctl name=my_usrp probe -tree` display property tree of device with the name my_usrp

\subsection usrpctl_reset reset
Arguments:
-`-mpm`: reset MPM of USRP device (requires python package rpc-msgpack or msgpack-rpc-python)
 
The reset command resets specified subcomponents of a device. If `$ID` is not
given, it scans the system for available, supported devices and resets the
specified subcomponent of all discovered devices.

Examples:
- `usrpctl addr=192.168.10.2 -mpm` reset MPM for USRP with the given ID

*/
// vim:ft=doxygen:
