#include <configurable.h>
Inherited by AbstractController, AbstractModel, AbstractRobot, OdeConfig, Simulation, MotorNoiseWiring, and QLearning.
Inheritance diagram for Configurable:
Public Types | |
typedef std::string | paramkey |
typedef double | paramval |
typedef std::list< std::pair< paramkey, paramval > > | paramlist |
typedef std::map< paramkey, paramval * > | parammap |
typedef bool | parambool |
typedef std::list< std::pair< paramkey, parambool > > | paramboollist |
typedef std::map< paramkey, parambool * > | paramboolmap |
typedef int | paramint |
typedef std::list< std::pair< paramkey, paramint > > | paramintlist |
typedef std::map< paramkey, paramint * > | paramintmap |
Public Member Functions | |
Configurable () | |
Configurable (const std::string &name, const std::string &revision) | |
intialise with name and revision (use "$ID$") | |
virtual | ~Configurable () |
int | getId () const |
return the id of the configurable objects, which is created by random on initialisation | |
virtual paramkey | getName () const |
return the name of the object | |
virtual paramkey | getRevision () const |
returns the revision of the object | |
virtual void | setName (const paramkey &name) |
stes the name of the object | |
virtual void | setRevision (const paramkey &revision) |
sets the revision Hint: { return "$ID$"; } | |
virtual paramval | getParam (const paramkey &key) const |
returns the value of the requested parameter or 0 (+ error message to stderr) if unknown. | |
virtual bool | setParam (const paramkey &key, paramval val) |
sets the value of the given parameter or does nothing if unknown. | |
virtual paramlist | getParamList () const |
The list of all parameters with there value as allocated lists. | |
virtual std::list< paramkey > | getAllParamNames () |
returns all names that are configureable | |
virtual void | addParameter (const paramkey &key, paramval *val) |
This is the new style for adding configurable parameters. | |
virtual void | addParameter (const paramkey &key, parambool *val) |
See addParameter(const paramkey& key, paramval* val) but for bool values. | |
virtual void | addParameter (const paramkey &key, paramint *val) |
See addParameter(const paramkey& key, paramval* val) but for int values. | |
virtual void | addParameterDef (const paramkey &key, paramval *val, paramval def) |
This function is only provided for convenience. | |
virtual void | addParameterDef (const paramkey &key, parambool *val, parambool def) |
This function is only provided for convenience. | |
virtual void | addParameterDef (const paramkey &key, paramint *val, paramint def) |
This function is only provided for convenience. | |
virtual bool | storeCfg (const char *filenamestem, const std::list< std::string > &comments=std::list< std::string >()) |
stores the key values paires into the file : filenamestem.cfg including the comments given in the list | |
virtual bool | restoreCfg (const char *filenamestem) |
restores the key values paires from the file : filenamestem.cfg | |
void | print (FILE *f, const char *prefix) const |
void | parse (FILE *f) |
Static Public Member Functions | |
static void | insertCVSInfo (paramkey &str, const char *file, const char *revision) |
This is a utility function for inserting the filename and the revision number at the beginning of the given string buffer str and terminates it. | |
Classes | |
struct | matchId |
nice predicate function for finding by ID More... |
Sort of Hashmap interface. Parameters are double values
The Configurator is a (planned) external tool that can be used for changing the values of configurable objects.
Protocoll for Configurator:
To Configurator (BNF notation): Conf := <Comp>* Comp := <CompName> <Pair>* CompName := [<string>][<int>]<newline> Pair := <alphanum>=<double><newline>
Example
[Component name which can contain spaces and digits and .,- ][ID1] key1 = value1 key2 = value2 . . [Other Component name which can contain spaces and digits and .,- ][ID2] key3 = value3
Answer: (from Communicator to Simulation environment)
1. On change of a parameter:
[ID] key=newvalue
key=newvalue
2. Request of the description as defined above.
#Something I don\'t care
typedef bool parambool |
typedef std::list<std::pair<paramkey, parambool> > paramboollist |
typedef std::map<paramkey, parambool*> paramboolmap |
typedef int paramint |
typedef std::list<std::pair<paramkey, paramint> > paramintlist |
typedef std::map<paramkey, paramint*> paramintmap |
typedef std::string paramkey |
typedef double paramval |
Configurable | ( | ) | [inline] |
Configurable | ( | const std::string & | name, | |
const std::string & | revision | |||
) | [inline] |
intialise with name and revision (use "$ID$")
virtual ~Configurable | ( | ) | [inline, virtual] |
See addParameter(const paramkey& key, paramval* val) but for int values.
See addParameter(const paramkey& key, paramval* val) but for bool values.
This is the new style for adding configurable parameters.
Just call this function for each parameter and you are done. If you need to do some special treatment for setting (or getting) of the parameter you can handle this by overloading getParam and setParam
virtual void addParameterDef | ( | const paramkey & | key, | |
paramint * | val, | |||
paramint | def | |||
) | [inline, virtual] |
This function is only provided for convenience.
It does the same as addParameter but set the variable to the default value
virtual void addParameterDef | ( | const paramkey & | key, | |
parambool * | val, | |||
parambool | def | |||
) | [inline, virtual] |
This function is only provided for convenience.
It does the same as addParameter but set the variable to the default value
virtual void addParameterDef | ( | const paramkey & | key, | |
paramval * | val, | |||
paramval | def | |||
) | [inline, virtual] |
This function is only provided for convenience.
It does the same as addParameter but set the variable to the default value
std::list< Configurable::paramkey > getAllParamNames | ( | ) | [virtual] |
returns all names that are configureable
int getId | ( | ) | const [inline] |
return the id of the configurable objects, which is created by random on initialisation
virtual paramkey getName | ( | ) | const [inline, virtual] |
return the name of the object
Reimplemented in Elman, InvertNChannelController, OneLayerFFNN, and Arm.
Configurable::paramval getParam | ( | const paramkey & | key | ) | const [virtual] |
returns the value of the requested parameter or 0 (+ error message to stderr) if unknown.
virtual paramlist getParamList | ( | ) | const [inline, virtual] |
The list of all parameters with there value as allocated lists.
Note that these are only parameters that are managed manually (with setParam, getParam)
Reimplemented in AbstractControllerAdapter, ClassicReinforce, FFNNController, InvertController, InvertMotorBigModel, MutualInformationController, OneLayerFFNN, use_java_controller, MyRobot, OdeConfig, Arm, Arm2Segm, DefaultCaterPillar, DefaultWheelie, Hand, HurlingSnake, MuscledArm, Schlange, SliderWheelie, Uwo, and VierBeiner.
virtual paramkey getRevision | ( | ) | const [inline, virtual] |
returns the revision of the object
void insertCVSInfo | ( | paramkey & | str, | |
const char * | file, | |||
const char * | revision | |||
) | [static] |
This is a utility function for inserting the filename and the revision number at the beginning of the given string buffer str and terminates it.
str | buffer (call by reference) that should have space for file+revision+2 characters | |
file | filename given by CVS i.e.
| |
revision | revision number given by CVS i.e.
|
void parse | ( | FILE * | f | ) |
void print | ( | FILE * | f, | |
const char * | prefix | |||
) | const |
bool restoreCfg | ( | const char * | filenamestem | ) | [virtual] |
restores the key values paires from the file : filenamestem.cfg
virtual void setName | ( | const paramkey & | name | ) | [inline, virtual] |
stes the name of the object
sets the value of the given parameter or does nothing if unknown.
virtual void setRevision | ( | const paramkey & | revision | ) | [inline, virtual] |
sets the revision Hint: { return "$ID$"; }
bool storeCfg | ( | const char * | filenamestem, | |
const std::list< std::string > & | comments = std::list< std::string >() | |||
) | [virtual] |
stores the key values paires into the file : filenamestem.cfg including the comments given in the list