Robot Simulator of the Robotics Group for Self-Organization of Control: Inspectable Class Reference

# Inspectable Class Reference

Interface for inspectable objects. More...

`#include <inspectable.h>`

Inherited by AbstractController, AbstractModel, AbstractWiring, GenContext, Generation, InspectableProxy, IValue, AmosII, Hexapod, Skeleton, StatisticTools, and WiredController.

Collaboration diagram for Inspectable:
[legend]

List of all members.

## Classes
struct | IConnection
struct | ILayer
struct | matchName
| nice predicate function for finding a Layer with its vectorname More...
## Public Types
typedef std::string | iparamkey
typedef double | iparamval
typedef std::pair< iparamkey, iparamval const * > | iparampair
typedef std::pair< iparamkey, std::pair< const matrix::Matrix *, bool > > | imatrixpair
typedef std::list< iparamkey > | iparamkeylist
typedef std::list< std::string > | infoLinesList
typedef std::list< iparamval > | iparamvallist
typedef std::list< iparamval const * > | iparamvalptrlist
typedef std::list< iparampair > | iparampairlist
typedef std::list< imatrixpair > | imatrixpairlist
typedef struct Inspectable::ILayer | ILayer
typedef struct Inspectable::IConnection | IConnection
typedef std::list< ILayer > | ilayerlist
typedef std::list< IConnection > | iconnectionlist
typedef std::list< const Inspectable * > | inspectableList
## Public Member Functions
| Inspectable (const iparamkey &name="")
| TYPEDEFS END.
virtual | ~Inspectable ()
virtual iparamkeylist | getInternalParamNames () const
| The list of the names of all internal parameters given by getInternalParams().
virtual iparamvallist | getInternalParams () const
virtual iparamvalptrlist | getInternalParamsPtr () const
| be careful: matrices will be ignored
virtual ilayerlist | getStructuralLayers () const
| Specifies which parameter vector forms a structural layer (in terms of a neural network) The ordering is important.
virtual iconnectionlist | getStructuralConnections () const
| Specifies which parameter matrix forms a connection between layers (in terms of a neural network) The orderning is not important.
virtual void | addInspectableValue (const iparamkey &key, iparamval const *val, const std::string &descr=std::string())
| This is the new style for adding inspectable values.
virtual void | addInspectableMatrix (const iparamkey &key, const matrix::Matrix *m, bool only4x4AndDiag=true, const std::string &descr=std::string())
| This is the new style for adding inspectable values.
virtual void | addInspectableDescription (const iparamkey &key, const std::string &descr)
| adds a description for the given parameter using info-lines The line will start (appart from the I) with a D for description followed by the key end then followed by the string.
virtual void | addInfoLine (std::string infoLine)
| Adds an info line to this inspectable instance.
virtual void | addInfoLines (std::list< std::string > infoLineList)
| Adds a bunch of infolines with addInfoLine to this inspectable instance.
virtual void | removeInfoLines ()
| Removes all infolines from this inspectable instance.
virtual const infoLinesList & | getInfoLines () const
| Returns all infolines added to this inspectable instance.
virtual void | addInspectable (Inspectable *insp)
| Adds an inspectable as a child object.
virtual void | removeInspectable (Inspectable *insp)
| Removes an inspectable as a child object.
virtual void | setNameOfInspectable (const iparamkey &name)
| set the name of the inspectable
virtual const iparamkey | getNameOfInspectable () const
| return the name of the inspectable, getName() would conflict with Configurable::getName() too often
virtual const inspectableList & | getInspectables () const
| Returns the list containing all inspectable children.
## Protected Attributes
iparamkey | name
iparampairlist | mapOfValues
imatrixpairlist | mapOfMatrices
infoLinesList | infoLineStringList

## Detailed Description

Interface for inspectable objects.

That means that one can read out some internal parameters indentified by string keys

TODO: support for lead through of params (e.g. getInternalParams()) for all children inspectables. For this use a instance-wide switch (useChildren) as a member variable to enable this feature when desired.

## Member Typedef Documentation

typedef struct Inspectable::IConnection IConnection

typedef std::list<IConnection> iconnectionlist

typedef struct Inspectable::ILayer ILayer

typedef std::list<ILayer> ilayerlist

typedef std::pair<iparamkey,std::pair< const matrix::Matrix*, bool > > imatrixpair

typedef std::list<imatrixpair> imatrixpairlist

typedef std::list<std::string> infoLinesList

typedef std::list<const Inspectable*> inspectableList

typedef std::string iparamkey

typedef std::list<iparamkey> iparamkeylist

typedef std::pair<iparamkey,iparamval const*> iparampair

typedef std::list<iparampair> iparampairlist

typedef double iparamval

typedef std::list<iparamval> iparamvallist

typedef std::list<iparamval const *> iparamvalptrlist

## Constructor & Destructor Documentation

Inspectable | ( | const iparamkey & | name = `""` | ) |

TYPEDEFS END.

~Inspectable | ( |  | ) | `[virtual]`

## Member Function Documentation

void addInfoLine | ( | std::string | infoLine | ) | `[virtual]`

Adds an info line to this inspectable instance.

All infolines are plotted by the PlotOptionEngine and therefore appear e.g. in the logfile. They are leaded by a I. If you have your own identifiers, just begin with your one (e.g. N for number of NOTE: You must not add e.g. carriage return, all this is handled by the PlotOptionsEngine itself. If you like to add multiple lines, call this function a lot more or use instead addInfoLines.

Parameters:

  | infoLine | the line (as string) to be added

void addInfoLines | ( | std::list< std::string > | infoLineList | ) | `[virtual]`

Adds a bunch of infolines with addInfoLine to this inspectable instance.

Every infoline is separated by an carriage return automatically, done by the PlotOptionsEngine.

Parameters:

  | infoLineList | the infoLines to be added as a string list.

void addInspectable | ( | Inspectable * | insp | ) | `[virtual]`

Adds an inspectable as a child object.

Parameters:

  | insp | the instance to add

void addInspectableDescription | ( | const iparamkey & | key,
|  | const std::string & | descr |
| ) |  |  | `[virtual]`

adds a description for the given parameter using info-lines The line will start (appart from the I) with a D for description followed by the key end then followed by the string.

Parameters:

  | key | parameter name (no spaces allowed)
  | descr | descriptive string (no newlines allowed)

void addInspectableMatrix | ( | const iparamkey & | key,
|  | const matrix::Matrix * | m,
|  | bool | only4x4AndDiag = `true`,
|  | const std::string & | descr = `std::string()` |
| ) |  |  | `[virtual]`

This is the new style for adding inspectable values.

Just call this function for each parameter and you are done. Inspects elements of the given matrix or vector (automatic detection) For Matrixes Either all or only the values given by store4x4AndDiagonalFieldNames(Matrix& m,string& matrixName); are used.

Parameters:

  | key | the name of the matrix, shown e.g. in guilogger (no spaces allowed)
  | m | the address of the matrix to inspect
  | only4x4AndDiag | of true only 4x4 matrix plus the diagonal is used
  | descr | description string to be exported (for the entire matrix with key_) (using infolines)

Note:
  that you can change the structure of the matrix while being inspected, but no after the getInternalParameterNames is called!

void addInspectableValue | ( | const iparamkey & | key,
|  | iparamval const * | val,
|  | const std::string & | descr = `std::string()` |
| ) |  |  | `[virtual]`

This is the new style for adding inspectable values.

Just call this function for each parameter and you are done. registers a single value

Parameters:

  | key | the name of the inspectable, shown e.g. in guilogger (no spaces allowed)
  | val | the address of the value to inspect
  | descr | description string to be exported (using infolines)

const std::list< std::string > & getInfoLines | ( |  | ) | const`[virtual]`

Returns all infolines added to this inspectable instance.

This function is called by the PlotOptionEngine.

Returns:
  all added infolines.

const Inspectable::inspectableList & getInspectables | ( |  | ) | const`[virtual]`

Returns the list containing all inspectable children.

Inspectable::iparamkeylist getInternalParamNames | ( |  | ) | const`[virtual]`

The list of the names of all internal parameters given by getInternalParams().

The naming convention is "v[i]" for vectors and "A[i][j]" for matrices, where i, j start at 0.

Returns:
  : list of keys

Reimplemented in ClassicReinforce, Elman, FFNNController, InvertMotorBigModel, ModelWithMemoryAdapter, MultiLayerFFNN, ReplayController, use_java_controller, and FeedbackWiring.

Inspectable::iparamvallist getInternalParams | ( |  | ) | const`[virtual]`

Returns:
  : list of values

Reimplemented in ClassicReinforce, Elman, FFNNController, InvertMotorBigModel, ModelWithMemoryAdapter, MultiLayerFFNN, ReplayController, use_java_controller, and FeedbackWiring.

Examples:
  directconnect/directconnect.cpp.

Inspectable::iparamvalptrlist getInternalParamsPtr | ( |  | ) | const`[virtual]`

be careful: matrices will be ignored

Returns:
  list of values (pointer)

const Inspectable::iparamkey getNameOfInspectable | ( |  | ) | const`[virtual]`

return the name of the inspectable, getName() would conflict with Configurable::getName() too often

Inspectable::iconnectionlist getStructuralConnections | ( |  | ) | const`[virtual]`

Specifies which parameter matrix forms a connection between layers (in terms of a neural network) The orderning is not important.

Returns:
  : list of layer names with dimension

Reimplemented in ClassicReinforce, Elman, InvertMotorBigModel, InvertMotorNStep, InvertMotorSpace, InvertNChannelController, ModelWithMemoryAdapter, MultiLayerFFNN, and SeMoX.

Inspectable::ilayerlist getStructuralLayers | ( |  | ) | const`[virtual]`

Specifies which parameter vector forms a structural layer (in terms of a neural network) The ordering is important.

The first entry is the input layer and so on.

Returns:
  : list of layer names with dimension

Reimplemented in ClassicReinforce, Elman, InvertMotorBigModel, InvertMotorNStep, InvertMotorSpace, InvertNChannelController, ModelWithMemoryAdapter, MultiLayerFFNN, and SeMoX.

void removeInfoLines | ( |  | ) | `[virtual]`

Removes all infolines from this inspectable instance.

This is useful if you have new infoLines and would like to restart the PlotOptionEngine.

void removeInspectable | ( | Inspectable * | insp | ) | `[virtual]`

Removes an inspectable as a child object.

Parameters:

  | insp | the instance to remove

void setNameOfInspectable | ( | const iparamkey & | name | ) | `[virtual]`

set the name of the inspectable

## Member Data Documentation

infoLinesList infoLineStringList`[protected]`

imatrixpairlist mapOfMatrices`[protected]`

iparampairlist mapOfValues`[protected]`

iparamkey name`[protected]`

Reimplemented in InvertNChannelController, SineController, and use_java_controller.

The documentation for this class was generated from the following files:

- inspectable.h
- inspectable.cpp