The Global Module (global)

The CARMEN global module provides a set of important functions and libraries. More...


Files

file  artwrap.h
 Wrapper around libart function calls that makes using libart more like gtk.
file  carmen_stdio.h
 stdio-functions for CARMEN in libglobal. This library supports gzipped files.
file  geometry.h
 Library with geometric operations.
file  global.h
 Library global. Contains a huge amount of useful things.
file  ipc_wrapper.h
 Definition of the wrapped IPC functions for CARMEN in libglobal.
file  movement.h
 Library for relative movements.
file  pswrap.h
 Library for writing postscript files.
file  carmenserial.h
 Serial library.

Data Structures

struct  art_buffer_t
struct  art_context_t
struct  carmen_FILE
struct  carmen_point_t
struct  carmen_traj_point_t
struct  carmen_robot_config_t
struct  carmen_bresenham_param_t
struct  carmen_list_t
struct  carmen_default_message
struct  carmen_heartbeat_message
struct  carmen_movement_rtr_t
struct  carmen_movement_fsr_t
struct  carmen_ps_doc_t

Defines

#define art_red   0xff0000ff
#define art_blue   0x0000ffff
#define art_green   0x00ff00ff
#define art_white   0xffffffff
#define art_black   0x000000ff
#define art_yellow   0xffff00ff
#define art_orange   0xff6347ff
#define art_grey   0x808080ff
#define CARMEN_NUM_OFFSETS   8
#define CARMEN_MAJOR_VERSION   0
#define CARMEN_MINOR_VERSION   4
#define CARMEN_REVISION   6
#define TRUE   1
#define FALSE   0
#define M_PI   3.14159265358979323846
#define CARMEN_DEFAULT_MESSAGE_FMT   "{double,string}"
#define CARMEN_HEARTBEAT_NAME   "carmen_heartbeat"
#define CARMEN_HEARTBEAT_FMT   "{string, int, double, string}"
#define carmen_red_code   ""
#define carmen_blue_code   ""
#define carmen_normal_code   ""
#define carmen_time_code(code, str)   { double time_code_t1, time_code_t2; time_code_t1 = carmen_get_time(); code; time_code_t2 = carmen_get_time(); fprintf(stderr, "%-20s : %.2f ms.\n", str, (time_code_t2 - time_code_t1) * 1000.0); }
#define carmen_test_alloc(X)   do {if ((void *)(X) == NULL) carmen_die("Out of memory in %s, (%s, line %d).\n", __FUNCTION__, __FILE__, __LINE__); } while (0)
#define carmen_test_ipc_return(ERR, ERR_MSG, IPC_MSG)   do {carmen_test_ipc((ERR), (ERR_MSG), (IPC_MSG)); if ((ERR) != IPC_OK) return; } while (0)
#define carmen_test_ipc_return_int(ERR, ERR_MSG, IPC_MSG)   do {carmen_test_ipc((ERR), (ERR_MSG), (IPC_MSG)); if ((ERR) != IPC_OK) return -1; } while (0)
#define carmen_test_ipc_return_null(ERR, ERR_MSG, IPC_MSG)   do {carmen_test_ipc((ERR), (ERR_MSG), (IPC_MSG)); if ((ERR) != IPC_OK) return NULL; } while (0)
#define carmen_test_ipc_exit(ERR, ERR_MSG, IPC_MSG)   do {carmen_test_ipc((ERR), (ERR_MSG), (IPC_MSG)); if ((ERR) != IPC_OK) {fprintf(stderr, "This is a fatal error. Exiting.\n"); exit(-1);} } while (0)
#define carmen_test_ipc_return(ERR, ERR_MSG, IPC_MSG)   do {carmen_test_ipc((ERR), (ERR_MSG), (IPC_MSG)); if ((ERR) != IPC_OK) return; } while (0)
#define carmen_test_ipc_return_int(ERR, ERR_MSG, IPC_MSG)   do {carmen_test_ipc((ERR), (ERR_MSG), (IPC_MSG)); if ((ERR) != IPC_OK) return -1; } while (0)
#define carmen_test_ipc_return_null(ERR, ERR_MSG, IPC_MSG)   do {carmen_test_ipc((ERR), (ERR_MSG), (IPC_MSG)); if ((ERR) != IPC_OK) return NULL; } while (0)
#define carmen_test_ipc_exit(ERR, ERR_MSG, IPC_MSG)   do {carmen_test_ipc((ERR), (ERR_MSG), (IPC_MSG)); if ((ERR) != IPC_OK) {fprintf(stderr, "This is a fatal error. Exiting.\n"); exit(-1);} } while (0)
#define carmen_ipc_define_test_exit(name, fmt)   { IPC_RETURN_TYPE err; err = IPC_defineMsg(name, IPC_VARIABLE_LENGTH, fmt); carmen_test_ipc_exit(err, "Could not define", name); }
#define carmen_ipc_publish_exit(name, msg)   { IPC_RETURN_TYPE err; err = IPC_publishData(name, &msg); carmen_test_ipc_exit(err, "Could not publish", name); }
#define CARMEN_GENERATE_PS   0
#define CARMEN_GENERATE_EPS   1
#define CARMEN_PS_BUTTCAP   0
#define CARMEN_PS_ROUNDCAP   1
#define CARMEN_PS_PROJECTINGCAP   2
#define CARMEN_PS_MITERJOIN   0
#define CARMEN_PS_ROUNDJOIN   1
#define CARMEN_PS_BEVELJOIN   2

Typedefs

typedef * art_buffer_p
typedef * art_context_p
typedef * carmen_point_p
typedef * carmen_traj_point_p
typedef void(* carmen_usage_func )(char *fmt,...)
typedef void(* carmen_handler_t )(void *)
typedef * carmen_ps_doc_p

Enumerations

enum  carmen_arm_joint_t { CARMEN_MOTOR, CARMEN_SERVO }
enum  carmen_subscribe_t { CARMEN_UNSUBSCRIBE, CARMEN_SUBSCRIBE_LATEST, CARMEN_SUBSCRIBE_ALL }

Functions

art_buffer_p art_new_buffer (int width, int height)
art_context_p art_new_context (void)
void art_set_color_rgba (art_context_p context, unsigned char r, unsigned char g, unsigned char b, unsigned char a)
void art_set_color (art_context_p context, long int color)
void art_set_linewidth (art_context_p context, int width)
void art_set_miterlimit (art_context_p context, int limit)
void art_set_jointype (art_context_p context, int jointype)
void art_set_captype (art_context_p context, int captype)
void art_set_dash (art_context_p context, int dash_on, int dash_off)
void art_clear (art_buffer_p buffer, art_context_p context)
void art_draw_point (art_buffer_p buffer, art_context_p context, float x_1, float y_1)
void art_draw_points (art_buffer_p buffer, art_context_p context, float *x_1, float *y_1, int num)
void art_draw_line (art_buffer_p buffer, art_context_p context, float x_1, float y_1, float x_2, float y_2)
void art_draw_x (art_buffer_p buffer, art_context_p context, float x, float y, float r)
void art_draw_poly (art_buffer_p buffer, art_context_p context, int filled, float *x, float *y, int n, int closed)
void art_draw_circle (art_buffer_p buffer, art_context_p context, int filled, float x, float y, float r)
void art_draw_ellipse (art_buffer_p buffer, art_context_p context, int filled, float x, float y, float x_var, float xy_cov, float y_var, float k)
void art_draw_gaussian (art_buffer_p buffer, art_context_p context, float x, float y, float x_var, float xy_cov, float y_var, float k)
void art_draw_gaussian_pca (art_buffer_p buffer, art_context_p context, float x, float y, float x_var, float xy_cov, float y_var, float k)
void art_draw_rectangle (art_buffer_p buffer, art_context_p context, int filled, float x_1, float y_1, float x_2, float y_2)
void art_draw_arc (art_buffer_p buffer, art_context_p context, float x, float y, float r, float a1, float deltaa)
void art_draw_wedge (art_buffer_p buffer, art_context_p context, int filled, float x, float y, float r, float a1, float deltaa)
void art_draw_rgb_image (art_buffer_p dest_buffer, int dest_x, int dest_y, int dest_width, int dest_height, unsigned char *src_buffer, int src_width, int src_height)
void art_draw_transformed_rgb_image (art_buffer_p dest_buffer, unsigned char *src_buffer, int src_width, int src_height, int dest_x, int dest_y, float angle, float scale)
void art_draw_transformed_rgba_image (art_buffer_p dest_buffer, unsigned char *src_buffer, int src_width, int src_height, int dest_x, int dest_y, float angle, float scale)
void art_draw_rgba_image (art_buffer_p dest_buffer, int dest_x, int dest_y, int dest_width, int dest_height, unsigned char *src_buffer, int src_width, int src_height)
int art_write_buffer_ppm (art_buffer_p buffer, char *filename)
int art_write_buffer_png (art_buffer_p buffer, char *filename)
carmen_FILEcarmen_fopen (const char *filename, const char *mode)
int carmen_fgetc (carmen_FILE *fp)
int carmen_feof (carmen_FILE *fp)
int carmen_fseek (carmen_FILE *fp, long offset, int whence)
long carmen_ftell (carmen_FILE *fp)
int carmen_fclose (carmen_FILE *fp)
size_t carmen_fread (void *ptr, size_t size, size_t nmemb, carmen_FILE *fp)
size_t carmen_fwrite (const void *ptr, size_t size, size_t nmemb, carmen_FILE *fp)
char * carmen_fgets (char *s, int size, carmen_FILE *fp)
int carmen_fputc (int c, carmen_FILE *fp)
void carmen_fprintf (carmen_FILE *fp, const char *fmt,...)
void carmen_geometry_compute_centre_and_curvature (carmen_traj_point_t start_point, double theta, carmen_traj_point_t end_point, carmen_traj_point_t *centre, double *radius)
double carmen_geometry_compute_velocity (carmen_traj_point_t robot, carmen_traj_point_t dest_pt, carmen_robot_config_t *robot_config)
double carmen_geometry_compute_radius_and_centre (carmen_traj_point_p prev, carmen_traj_point_p current, carmen_traj_point_p next, carmen_traj_point_p centre, carmen_traj_point_p end_curve)
void carmen_geometry_move_pt_to_rotating_ref_frame (carmen_traj_point_p obstacle_pt, double tv, double rv)
void carmen_rotate_2d (double *x, double *y, double theta)
void carmen_geometry_project_point (int x, int y, double theta, int *x2, int *y2, carmen_map_config_t map_defn)
void carmen_geometry_generate_laser_data (float *laser_data, carmen_traj_point_p traj_point, double start_theta, double end_theta, int num_points, carmen_map_p map)
void carmen_geometry_generate_sonar_data (double *sonar_data, carmen_traj_point_p center, carmen_point_p sonar_offsets, int num_sonars, carmen_map_p map)
void carmen_geometry_fast_generate_laser_data (float *laser_data, carmen_traj_point_p traj_point, double start_theta, double end_theta, int num_points, carmen_map_p map)
double carmen_geometry_compute_expected_distance (carmen_traj_point_p traj_point, double theta, carmen_map_p map)
void carmen_geometry_cache_stats (int *hits, int *misses)
void carmen_geometry_map_to_cspace (carmen_map_p map, carmen_robot_config_t *robot_conf)
void carmen_test_ipc (IPC_RETURN_TYPE err, const char *err_msg, const char *ipc_msg)
int carmen_find_param (char *lvalue)
int carmen_find_param_pair (char *lvalue)
char * carmen_find_robot_name (int argc, char **argv)
char * carmen_param_pair (char *lvalue)
char * carmen_param_pair_and_remove (char *lvalue)
int carmen_num_params (void)
char * carmen_get_param_by_num (int param_index)
int carmen_read_commandline_parameters (int argc, char **argv)
int carmen_process_param_int (char *lvalue, carmen_usage_func usage, int *return_value)
double carmen_process_param_double (char *lvalue, carmen_usage_func usage, double *return_value)
int carmen_process_param_onoff (char *lvalue, carmen_usage_func usage, int *return_value)
char * carmen_process_param_string (char *lvalue, carmen_usage_func usage)
char * carmen_process_param_file (char *lvalue, carmen_usage_func usage)
char * carmen_process_param_directory (char *lvalue, carmen_usage_func usage)
char * carmen_extract_filename (char *path)
void carmen_perror (char *fmt,...) __attribute__((format(printf
void void carmen_verbose (char *fmt,...) __attribute__((format(printf
void void void carmen_warn (char *fmt,...) __attribute__((format(printf
void void void void carmen_die (char *fmt,...) __attribute__((format(printf
void void void void void carmen_die_syserror (char *fmt,...) __attribute__((format(printf
void void void void void void carmen_carp_set_verbose (int verbosity)
int carmen_carp_get_verbose (void)
void carmen_carp_set_output (FILE *output)
double carmen_get_time (void)
char * carmen_get_host (void)
carmen_default_messagecarmen_default_message_create (void)
void carmen_running_average_clear (int which)
void carmen_running_average_add (int which, double x)
double carmen_running_average_report (int which)
int carmen_round (double X)
double carmen_clamp (double X, double Y, double Z)
int carmen_trunc (double X)
void carmen_erase_structure (void *ptr, int size_of_struture)
double carmen_normalize_theta (double theta)
double carmen_knots_to_meters_per_second (double knots)
double carmen_radians_to_degrees (double theta)
double carmen_degrees_to_radians (double theta)
double carmen_fmin (double val1, double val2)
double carmen_fmax (double val1, double val2)
double carmen_square (double val)
double carmen_distance_traj (carmen_traj_point_p p1, carmen_traj_point_p p2)
double carmen_angle_between (carmen_traj_point_p p1, carmen_traj_point_p p2)
double carmen_distance (carmen_point_p p1, carmen_point_p p2)
void carmen_get_bresenham_parameters (int p1x, int p1y, int p2x, int p2y, carmen_bresenham_param_t *params)
void carmen_get_current_point (carmen_bresenham_param_t *params, int *x, int *y)
int carmen_get_next_point (carmen_bresenham_param_t *params)
int carmen_sign (double num)
void carmen_rect_to_polar (double x, double y, double *r, double *theta)
unsigned int carmen_generate_random_seed (void)
unsigned int carmen_randomize (int *argc, char ***argv)
void carmen_set_random_seed (unsigned int seed)
int carmen_int_random (int max)
double carmen_uniform_random (double min, double max)
double carmen_gaussian_random (double mean, double std)
int carmen_file_exists (char *filename)
char * carmen_file_extension (char *filename)
char * carmen_file_find (char *filename)
char ** carmen_get_search_path (int *num_paths)
void carmen_global_start_progess_bar (char *label)
void carmen_global_end_progess_bar (void)
void carmen_global_update_progess_bar (int count, int size)
int carmen_strcasecmp (const char *s1, const char *s2)
int carmen_strncasecmp (const char *s1, const char *s2, size_t n)
char * carmen_new_string (const char *fmt,...)
char * carmen_new_stringv (const char *fmt, va_list ap)
void carmen_print_version (void)
int carmen_parse_sonar_offsets (char *offset_string, carmen_point_p offsets, int num_sonars)
int carmen_parse_arm_joint_types (char *joint_string, carmen_arm_joint_t *joint_types, int num_joints)
int carmen_terminal_cbreak (int blocking)
int carmen_terminal_restore (void)
carmen_list_tcarmen_list_create (int entry_size, int initial_capacity)
carmen_list_tcarmen_list_create_from_data (int entry_size, int num_elements, void *data)
carmen_list_tcarmen_list_duplicate (carmen_list_t *list)
void carmen_list_add (carmen_list_t *list, void *entry)
void carmen_list_insert (carmen_list_t *list, void *entry, int i)
void carmen_list_delete (carmen_list_t *list, int entry_num)
void * carmen_list_get (carmen_list_t *list, int entry_num)
void carmen_list_set (carmen_list_t *list, int entry_num, void *entry)
int carmen_list_length (carmen_list_t *list)
void carmen_list_destroy (carmen_list_t **list)
void carmen_eigs_to_covariance (double theta, double major, double minor, double *vx, double *vxy, double *vy)
char * carmen_next_word (char *str)
char * carmen_next_n_words (char *str, int n)
void carmen_publish_heartbeat (char *module_name)
void carmen_subscribe_heartbeat_message (carmen_heartbeat_message *heartbeat, carmen_handler_t handler, carmen_subscribe_t subscribe_how)
void carmen_subscribe_message (char *message_name, char *message_fmt, void *message_mem, int message_size, carmen_handler_t handler, carmen_subscribe_t subscribe_how)
void carmen_unsubscribe_message (char *message_name, carmen_handler_t handler)
void carmen_ipc_subscribe_fd (int fd, carmen_handler_t handler)
void carmen_ipc_unsubscribe_fd (int fd, carmen_handler_t handler)
int carmen_ipc_connect_locked (char *module_name)
int carmen_ipc_connect (char *module_name)
void carmen_ipc_initialize_locked (int argc, char **argv)
void carmen_ipc_initialize_locked_with_name (int argc, char **argv, char *name)
void carmen_ipc_initialize (int argc, char **argv)
void carmen_ipc_dispatch (void)
void carmen_ipc_sleep (double timeout)
void carmen_ipc_disconnect (void)
void carmen_ipc_addPeriodicTimer (double interval, TIMER_HANDLER_TYPE handler, void *clientData)
carmen_movement_rtr_t carmen_movement_rtr_from_point (carmen_point_t pt)
carmen_point_t carmen_movement_point_from_rtr (carmen_movement_rtr_t move)
carmen_movement_rtr_t carmen_movement_invert_rtr (carmen_movement_rtr_t r)
carmen_point_t carmen_movement_rtr_move_point (carmen_point_t t, carmen_movement_rtr_t r)
carmen_movement_rtr_t carmen_movement_compose_rtr (carmen_movement_rtr_t r, carmen_movement_rtr_t add)
carmen_movement_rtr_t carmen_movement_rtr_between_points (carmen_point_t t1, carmen_point_t t2)
carmen_movement_fsr_t carmen_movement_fsr_from_point (carmen_point_t pt)
carmen_point_t carmen_movement_point_from_fsr (carmen_movement_fsr_t move)
carmen_movement_fsr_t carmen_movement_invert_fsr (carmen_movement_fsr_t r)
carmen_point_t carmen_movement_fsr_move_point (carmen_point_t t, carmen_movement_fsr_t r)
carmen_movement_fsr_t carmen_movement_compose_fsr (carmen_movement_fsr_t r, carmen_movement_fsr_t add)
carmen_movement_fsr_t carmen_movement_fsr_between_points (carmen_point_t t1, carmen_point_t t2)
carmen_movement_rtr_t carmen_movement_fsr_to_rtr (carmen_movement_fsr_t move)
carmen_movement_fsr_t carmen_movement_rtr_to_fsr (carmen_movement_rtr_t move)
carmen_point_t carmen_movement_transformation_between_frames (carmen_point_t reference_pt_frame1, carmen_point_t reference_pt_frame2, carmen_point_t pt_frame1)
carmen_ps_doc_p carmen_ps_open (char *filename, float width, float height, int eps)
void carmen_ps_close (carmen_ps_doc_p doc)
void carmen_ps_comment (carmen_ps_doc_p doc, char *comment)
void carmen_ps_next_page (carmen_ps_doc_p doc)
void carmen_ps_set_color (carmen_ps_doc_p doc, unsigned char r, unsigned char g, unsigned char b)
void carmen_ps_set_gray (carmen_ps_doc_p doc, unsigned char level)
void carmen_ps_set_linewidth (carmen_ps_doc_p doc, float w)
void carmen_ps_set_jointype (carmen_ps_doc_p doc, int join)
void carmen_ps_set_captype (carmen_ps_doc_p doc, int cap)
void carmen_ps_set_dash (carmen_ps_doc_p doc, int length)
void carmen_ps_set_font (carmen_ps_doc_p doc, char *fontname, int size)
void carmen_ps_draw_point (carmen_ps_doc_p doc, float x_1, float y_1)
void carmen_ps_draw_points (carmen_ps_doc_p doc, float *x_1, float *y_1, int n)
void carmen_ps_draw_line (carmen_ps_doc_p doc, float x_1, float y_1, float x_2, float y_2)
void carmen_ps_draw_x (carmen_ps_doc_p doc, float x_1, float y_1, float r)
void carmen_ps_draw_poly (carmen_ps_doc_p doc, int filled, float *x_1, float *y_1, int n, int closed)
void carmen_ps_draw_circle (carmen_ps_doc_p doc, int filled, float x_1, float y_1, float r)
void carmen_ps_draw_ellipse (carmen_ps_doc_p doc, int filled, float x_1, float y_1, float x_var, float xy_cov, float y_var, float k)
void carmen_ps_draw_gaussian (carmen_ps_doc_p doc, float x, float y, float x_var, float xy_cov, float y_var, float k)
void carmen_ps_draw_rectangle (carmen_ps_doc_p doc, int filled, float x_1, float y_1, float x_2, float y_2)
void carmen_ps_draw_arc (carmen_ps_doc_p doc, float x_1, float y_1, float r, float start_angle, float delta)
void carmen_ps_draw_wedge (carmen_ps_doc_p doc, int filled, float x_1, float y_1, float r, float start_angle, float delta)
void carmen_ps_draw_text (carmen_ps_doc_p doc, char *str, float x_1, float y_1)
void carmen_ps_draw_text_landscape (carmen_ps_doc_p doc, char *str, float x_1, float y_1)
void carmen_ps_draw_image (carmen_ps_doc_p doc, float dest_x, float dest_y, float dest_width, float dest_height, char *src_image, int src_width, int src_height)
void carmen_ps_draw_transformed_image (carmen_ps_doc_p doc, char *srt_image, int src_width, int src_height, float dest_x, float dest_y, float dest_theta, float dest_scale)
int carmen_serial_connect (int *dev_fd, char *dev_name)
void carmen_serial_configure (int dev_fd, int baudrate, char *parity)
long carmen_serial_numChars (int dev_fd)
int carmen_serial_ClearInputBuffer (int dev_fd)
int carmen_serial_writen (int dev_fd, unsigned char *buf, int nChars)
int carmen_serial_readn (int dev_fd, unsigned char *buf, int nChars)
int carmen_serial_close (int dev_fd)
int carmen_serial_set_low_latency (int fd)

Variables

int carmen_geometry_x_offset []
int carmen_geometry_y_offset []
MSG_INSTANCE current_msgRef

Detailed Description

The CARMEN global module provides a set of important functions and libraries.

The module global provides a set of important functions and libraries.


Function Documentation

double carmen_knots_to_meters_per_second double  knots  )  [inline]
 

KNOTS_TO_METERS_PER_SECOND 0.5148

Definition at line 260 of file global.h.

int carmen_serial_ClearInputBuffer int  dev_fd  ) 
 

Clears the buffer of the serial line.

Parameters:
*dev_fd returns the file descriptor associated to the serial line
Returns:
number of bytes removed from the serial line.

int carmen_serial_close int  dev_fd  ) 
 

Closes the file descriptior.

Parameters:
dev_fd The file descriptor associated to the serial line.
Returns:
The results reported by close.

void carmen_serial_configure int  dev_fd,
int  baudrate,
char *  parity
 

Sets the parameters for (a connected) serial line.

Parameters:
dev_fd The file descriptor associated to the serial line.
baudrate The baud rate to use (e.g. 9600, 19200, etc.).
partity The parity to use (e.g. "N" for none).

int carmen_serial_connect int *  dev_fd,
char *  dev_name
 

Open a connection to the serial line

Parameters:
*dev_fd returns the file descriptor associated to the serial line
dev_name the name of the serial device, e.g. /dev/ttyS0
Returns:
0 if everything is fine, -1 in case of an error.

long carmen_serial_numChars int  dev_fd  ) 
 

Returns the number of availabe bytes

Parameters:
*dev_fd returns the file descriptor associated to the serial line
Returns:
number of available bytes or -1 in case of an error.

int carmen_serial_readn int  dev_fd,
unsigned char *  buf,
int  nChars
 

Reads data from the serial line

Parameters:
dev_fd The file descriptor associated to the serial line.
*buf Pointer to unsiged char buffer for the data to be read
nChars Number of bytes to be read (<= size of the buffer array).
Returns:
The number of bytes read.

int carmen_serial_set_low_latency int  fd  ) 
 

Avtivates the low_latency mode for the serial line. This works with real serial devices, USB-to-RS232 often does not work. In this case, the system continues in the standard operational mode. Note: Low latency does not run with cygwin.

Parameters:
dev_fd The file descriptor associated to the serial line.
Returns:
0=successful switched to low latency mode. 0=continue in normal mode.

int carmen_serial_writen int  dev_fd,
unsigned char *  buf,
int  nChars
 

Reads data from the serial line

Parameters:
dev_fd The file descriptor associated to the serial line.
*buf Pointer to unsiged char buffer to the data to be send over the serial line
nChars Number of bytes in buf
Returns:
The number of bytes sent to the serial line.

void carmen_subscribe_message char *  message_name,
char *  message_fmt,
void *  message_mem,
int  message_size,
carmen_handler_t  handler,
carmen_subscribe_t  subscribe_how
 

carmen_subscribe_message - generic IPC subscribe function. It attaches a callback and a memory destination to a particular IPC message.

void carmen_unsubscribe_message char *  message_name,
carmen_handler_t  handler
 

carmen_unsubscribe_message - Generic IPC unsubscribe message function.


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