The ParamDaemon Module (param_daemon)

The CARMEN param_daemon module provides access to the ini file. More...


Files

file  param_interface.h
 Definition of the interface of the module param_daemon.
file  param_messages.h
 Definition of the messages for this module.

Data Structures

struct  carmen_param_t
struct  carmen_param_query_message
struct  carmen_param_response_robot_message
struct  carmen_param_response_modules_message
struct  carmen_param_response_all_message
struct  carmen_param_response_int_message
struct  carmen_param_response_double_message
struct  carmen_param_response_onoff_message
struct  carmen_param_response_string_message
struct  carmen_param_set_message
struct  carmen_param_version_message

Defines

#define carmen_param_handle_error(error, usage, progname)   {if ((error) < 0) usage(progname, carmen_param_get_error());}
#define CARMEN_PARAM_INT   1
#define CARMEN_PARAM_DOUBLE   2
#define CARMEN_PARAM_ONOFF   3
#define CARMEN_PARAM_STRING   4
#define CARMEN_PARAM_FILE   5
#define CARMEN_PARAM_DIR   6
#define CARMEN_PARAM_EXPERT   64
#define CARMEN_PARAM_QUERY_ALL_NAME   "carmen_param_query_all"
#define CARMEN_PARAM_QUERY_INT_NAME   "carmen_param_query_int"
#define CARMEN_PARAM_QUERY_DOUBLE_NAME   "carmen_param_query_double"
#define CARMEN_PARAM_QUERY_ONOFF_NAME   "carmen_param_query_onoff"
#define CARMEN_PARAM_QUERY_STRING_NAME   "carmen_param_query_string"
#define CARMEN_PARAM_VERSION_QUERY_NAME   "carmen_param_query_version"
#define CARMEN_PARAM_REREAD_COMMAND_NAME   "carmen_param_reread_command"
#define CARMEN_PARAM_QUERY_ROBOT_NAME   "carmen_param_query_robot"
#define CARMEN_PARAM_QUERY_FMT   "{string,string,double,string}"
#define CARMEN_PARAM_RESPONSE_ROBOT_NAME   "carmen_param_respond_robot"
#define CARMEN_PARAM_RESPONSE_ROBOT_FMT   "{string,int,double,string}"
#define CARMEN_PARAM_QUERY_MODULES_NAME   "carmen_param_query_modules"
#define CARMEN_PARAM_RESPONSE_MODULES_NAME   "carmen_param_respond_modules"
#define CARMEN_PARAM_RESPONSE_MODULES_FMT   "{<string:2>, int, int,double,string}"
#define CARMEN_PARAM_RESPONSE_ALL_NAME   "carmen_param_respond_all"
#define CARMEN_PARAM_RESPONSE_ALL_FMT   "{string, int, <string:2>, <string:2>, <int:2>, int, double, string}"
#define CARMEN_PARAM_RESPONSE_INT_NAME   "carmen_param_respond_int"
#define CARMEN_PARAM_RESPONSE_INT_FMT   "{string, string, int, int, int, double, string}"
#define CARMEN_PARAM_RESPONSE_DOUBLE_NAME   "carmen_param_respond_double"
#define CARMEN_PARAM_RESPONSE_DOUBLE_FMT   "{string, string, double, int, int, double, string}"
#define CARMEN_PARAM_RESPONSE_ONOFF_NAME   "carmen_param_respond_onoff"
#define CARMEN_PARAM_RESPONSE_ONOFF_FMT   "{string, string, int, int, int, double, string}"
#define CARMEN_PARAM_RESPONSE_STRING_NAME   "carmen_param_respond_string"
#define CARMEN_PARAM_RESPONSE_STRING_FMT   "{string, string, string, int, int, double, string}"
#define CARMEN_PARAM_SET_NAME   "carmen_param_set"
#define CARMEN_PARAM_SET_FMT   "{string, string, string, double, string}"
#define CARMEN_PARAM_VARIABLE_CHANGE_NAME   "carmen_param_variable_change"
#define CARMEN_PARAM_VARIABLE_CHANGE_FMT   "{string, string, string, int, int, double, string}"
#define CARMEN_PARAM_VERSION_NAME   "carmen_param_version"
#define CARMEN_PARAM_VERSION_FMT   "{int, int, int, double, string}"

Typedefs

typedef char carmen_param_type_t
typedef void(* carmen_param_change_handler_t )(char *module, char *variable, char *value)
typedef * carmen_param_p
typedef carmen_default_message carmen_param_query_version_message
typedef carmen_default_message carmen_param_reread_command_message
typedef carmen_param_response_string_message carmen_param_variable_change_message

Enumerations

enum  carmen_param_status_t {
  CARMEN_PARAM_OK, CARMEN_PARAM_NOT_FOUND, CARMEN_PARAM_NOT_INT, CARMEN_PARAM_NOT_DOUBLE,
  CARMEN_PARAM_NOT_ONOFF, CARMEN_PARAM_NOT_FILE, CARMEN_PARAM_FILE_ERR
}

Functions

char * carmen_param_get_robot (void)
int carmen_param_get_modules (char ***modules, int *num_modules)
void carmen_param_set_module (char *new_module_name)
char * carmen_param_get_module (void)
int carmen_param_get_paramserver_host (char **hostname)
int carmen_param_get_all (char *module, char ***variables, char ***values, int **expert, int *list_length)
int carmen_param_get_int (char *variable, int *return_value, int *expert)
int carmen_param_get_double (char *variable, double *return_value, int *expert)
int carmen_param_get_onoff (char *variable, int *return_value, int *expert)
int carmen_param_get_string (char *variable, char **return_value, int *expert)
int carmen_param_get_filename (char *variable, char **return_value, int *expert)
int carmen_param_set_variable (char *variable, char *new_value, char **return_value)
int carmen_param_set_int (char *variable, int new_value, int *return_value)
int carmen_param_set_double (char *variable, double new_value, double *return_value)
int carmen_param_set_onoff (char *variable, int new_value, int *return_value)
int carmen_param_set_string (char *variable, char *new_value, char **return_value)
int carmen_param_set_filename (char *variable, char *new_value, char **return_value)
char * carmen_param_get_error (void)
void carmen_param_allow_unfound_variables (int new_value)
int carmen_param_are_unfound_variables_allowed (void)
void carmen_param_set_usage_line (char *fmt,...)
int carmen_param_install_params (int argc, char *argv[], carmen_param_p param_list, int num_items)
void carmen_param_usage (char *progname, carmen_param_p param_list, int num_items, char *fmt,...)
void carmen_param_load_paramfile (char *filename, char *param_set)
void carmen_param_check_unhandled_commandline_args (int argc, char *argv[])
void carmen_param_subscribe_int (char *module, char *variable, int *variable_address, carmen_param_change_handler_t handler)
void carmen_param_subscribe_double (char *module, char *variable, double *variable_address, carmen_param_change_handler_t handler)
void carmen_param_subscribe_onoff (char *module, char *variable, int *variable_address, carmen_param_change_handler_t handler)
void carmen_param_subscribe_string (char *module, char *variable, char **variable_address, carmen_param_change_handler_t handler)
void carmen_param_subscribe_file (char *module, char *variable, char **variable_address, carmen_param_change_handler_t handler)
void carmen_param_subscribe_dir (char *module, char *variable, char **variable_address, carmen_param_change_handler_t handler)
int carmen_param_check_version (char *prog_name)
void carmen_param_send_reread (void)

Detailed Description

The CARMEN param_daemon module provides access to the ini file.

The module param_daemon provides support to get and set ini file parameter.


Function Documentation

void carmen_param_allow_unfound_variables int  new_value  ) 
 

If unfound variables are allowed, causes carmen_param_get_XXX to return 0 even if the param_daemon does not have a definition. Otherwise, carmen_param_get_XXX returns -1 in such cases.

int carmen_param_check_version char *  prog_name  ) 
 

Checks to make sure the param_daemon is running the same version of carmen as this module. Calls exit (-1) if they don't match.

int carmen_param_get_all char *  module,
char ***  variables,
char ***  values,
int **  expert,
int *  list_length
 

Returns a list of all variables and their values for a specific module.

char* carmen_param_get_error void   ) 
 

If an interface function recently returned an error, returns a human-readable string describing the error.

int carmen_param_get_filename char *  variable,
char **  return_value,
int *  expert
 

Does much the same thing s carmen_param_set_string, but checks to see if the returned string matches a local file. Probably should be deprecated.

char* carmen_param_get_module void   ) 
 

libparam_interface.a will keep a persistent module name, for getting/setting multiple variables of the same module. Probably should be deprecated. This function will return what module the library is currently dealing with.

int carmen_param_get_modules char ***  modules,
int *  num_modules
 

Returns a complete list of module names (as determined from the ini file by the set of variables with a prepended module name.

int carmen_param_get_paramserver_host char **  hostname  ) 
 

Returns the hostname where param_daemon is running. Should be changed to carmen_param_get_paramdaemon_host.

char* carmen_param_get_robot void   ) 
 

Returns what robot (i.e., what parameter set) has been loaded into the param_daemon.

int carmen_param_install_params int  argc,
char *  argv[],
carmen_param_p  param_list,
int  num_items
 

Allows a set of parameters to be loaded at once from a carmen_param_t structure.

void carmen_param_send_reread void   ) 
 

Tells the param_daemon to re-read the ini file, and forget all local changes.

int carmen_param_set_filename char *  variable,
char *  new_value,
char **  return_value
 

Basically a wrapper around carmen_param_set_variable.

void carmen_param_set_module char *  new_module_name  ) 
 

libparam_interface.a will keep a persistent module name, for getting/setting multiple variables of the same module. Probably should be deprecated. This function will change what module the library is currently dealing with.

void carmen_param_usage char *  progname,
carmen_param_p  param_list,
int  num_items,
char *  fmt,
  ...
 

Can be used to print a list of parameters this program loads. For example, to be called if --help is a command-line argument.

Parameters:
progname The name of this program (usually argv[0]).
param_list A set of parameters that this program will load.
num_items The number of parameters in the param_list.
Any other text that should be printed out as part of the usage string, parsed just like printf.


Generated on Wed Apr 5 18:34:21 2006 for CARMEN by  doxygen 1.4.4