# Various features of dmrconf

Beside reading and writing codeplugs or writing the call-sign DB, there are some more commands and features that mainly concern the debugging of the codeplug and call-sign DB encoding and decoding. If you are interested in the codeplug internals, you may use these commands to study them.

As usual for command line tools, a brief help text about the commands and options gets written to `stdout` when the `--help` or `-h` option is passed. No other commands passed are executed then.

Similar to the `--help` option, it is possible to print the version number of `dmrconf` using the `--version` or `-v` option. Like for the `--help`, no other commands passed get executed.

To get a list of keys identifying radio models when specified using the `--radio` option, `--list-radios` can be passed. This will print a small table to `stdout` that lists the keys for each known radio as well as the model and manufacturer name.

The command `detect` solely detects the radio. No data is written or read from the device (except of the radio model information). This command can be used to check whether a radio is detected correctly.

    dmrconf detect

This command will try to detect the connected radio. If a known radio is found, the model and manufacturer name is written to `stdout`. If no radio is detected or if the model is unknown or unsupported, an error message is written to `stderr`.

The `encode`, `encode-db` and `read` commands can store the codeplug and call-sign DB in binary form in a DFU file. The generated file is a valid DFU (device firmware update) file, that can be handled with other DFU tools.

A DFU file may contains several so-called images. Each image may contains several so-called elements. The latter represents a segment of memory with an associated memory address.

The `info` command produces a hex-dump of the DFU file that is written to `stdout`. It can then be inspected using `more` or `less`.

    dmrconf info codeplug.dfu | less

This example will generate a hex dump of the encoded codeplug in the specified DFU file `codeplug.dfu`. The result is piped to `less` for easy reading. The hex dump also prints some information about the file structure as well as memory addresses. It also collapses repetitive memory sections (similar to `hexdump -C`). To this end, this command is a helpful tool for debugging the encoding of codeplugs and call-sign DBs.