======DBG-interface======
=====Command-syntax=====
====list_modules====
\index{DBG!list_modules}
returns a list of all available modules
**Arguments**
none
**Returns**
a module_id,name list of all modules available, where module_id is to be
used for reference, while name reflects the spc-name of the module. The
returned list is sorted on module_id.
====list_tag_modules====
\index{DBG!list_tag_modules}
returns a list of all available modules and tags all modules as 'seen'. See
also //list_new_modules//.
**Arguments**
none
**Returns**
a module_id,name list of all modules available, where module_id is to be
used for reference, while name reflects the spc-name of the module. The
returned list is sorted on module_id.
====list_new_modules====
\index{DBG!list_new_modules}
only returns modules that are not tagged as 'seen'. Useful only in conjunction
with //list_tag_modules//. All returned modules are tagged as 'seen', too.
**Arguments**
none
**Returns**
a module_id,name list of all modules available, where module_id is to be
used for reference, while name reflects the spc-name of the module. The
returned list is sorted on module_id.
====show_all====
\index{DBG!show_all}
gives the whole description of a module
**Arguments**
the id of the module
**Returns**
inputnumber of inputs, followed by a type,len - list for every inputoutputnumber of outputs, followed by a conn_id,conn_index,type,len list for every output, where conn_id and conn_index point to the module and port connected. If this port is not connected, conn_id and conn_index are both -1.confignumber of configs, followed by a name,type,value - list for every configuration-item.statsnumber of stats, followed by a name,type,value - list for every configuration-item.
====show_*====
\index{DBG!show_input}\index{DBG!show_output}\index{DBG!show_config}\index{DBG!show_stats}
Returns only part of the description. "*" can be one of {input, output,
config, stats} and will return the corresponding information.
**Arguments**
the id of the module
**Returns**
Like //show_all//, but only the asked argument
====get_output====
\index{DBG!get_output}
returns a given output of a given module
**Arguments**
module_id,port_nbr
**Returns**
size,type,values where values are decimal, comma-seperated values. For complex
numbers, each value is a (real,imag)-pair.
====get_block====
\index{DBG!get_block}
Returns the values of a block. Contrary to "show_stats" and "show_config",
"get_block" returns the values in their binary form.
**Arguments**
module_id, stats_index
**Returns**
The block of data in binary representation.
====get_image====
\index{DBG!get_image}
Returns an image that is stored in a stats. Read //Returns// for a
description of the values returned.
**Arguments**
module_id, stats_index
**Returns**
The image in binary representation. The size of the returned block is of
width \cdot height \cdot \lceil\frac{bpp + 7}{8}\rceil. That means that a 20 x 20
black/white image (bpp=1) will return 400 bytes.
====set_config====
\index{DBG!set_config}
Sends a new config-value
**Arguments**
module_id, config_index, value
value is in human-readable form.
**Returns**
"Reconfigured" on success
====new_list====
\index{DBG!new_list}
A list is used when one wants to track a certain value in the software-radio,
or a value-pair. The software-radio tries its best to make sure that all
value-pairs are correlated, but it may happen that an older value gets paired
with a new value.
**Arguments**
module\_id_1, stats\_index_1, module\_id_2, stats\_index_2
If module\_id_2 is -1 then only a single value will be tracked and the
values returned by //read_list// will contain a {value,time} pair.
**Returns**
The id of the list, in ascii
====read_list====
\index{DBG!read_list}
Returns the so far collected value-pairs. The cache is of length 1024, that
means that you should collect the data before 1024 are stored. In the most
busiest scenario, this means once every second.
**Arguments**
list_id
**Returns**
The first line contains the total number of value-pairs that will be sent.
Then follow either (value_1, value_2) or (value, time) pairs, each one
followed by a "\n".
====close_list====
\index{DBG!close_list}
Finishes tracking of the values from this list.
**Arguments**
list_id
**Returns**
OK or error on error.
====process_data====
\index{DBG!process_data}
Tells a module to immediatly start processing. If the module has inputs, all
connected inputs will be activated before processing.
**Arguments**
module_id
**Returns**
OK on success
====get_profiling====
\index{DBG!get_profiling}
Returns all profiling-data from a module. The software-radio keeps track of the
number of calls and the total execution-time of the following parameters:
user-messages, data-processing and total time.
**Arguments**
module_id
**Returns**
Three lines of profiling with the time spent and the number of calls seperated
by a space. The numbers are 64-bit integers. The time spent is returned in
\mus.
====ping====
\index{DBG!ping}
To test whether the software-radio is still running and replying to requests.
**Arguments**
none
**Returns**
"pong"