Egomotiongpsimu
[Fusion]

This module implements an egomotion estimator based on nonlinear observer theory (Lyapunov stability). More...

Collaboration diagram for Egomotiongpsimu:

Data Structures

class  Observer
struct  TYPE_egomotiongpsimu_public_params
 This is a test message, Here you insert the description of the entity, in this case the struct. More...
struct  egomotiongpsimu_data_message
 This is a test message, Here you insert the description of the entity, in this case the struct. More...
struct  _components

Files

file  egomotiongpsimu.cpp
 

egomotiongpsimu.cpp file for this module. This is where main is defined and etc.


file  egomotiongpsimu.h
 

egomotiongpsimu.h file for this module. Includes, global vars, funtion prototypes, etc.


file  egomotiongpsimu_functions.cpp
 

Auxiliary functions for egointerface module. This is where private module functions are defined.


file  egomotiongpsimu_interface.cpp
 

Interface file for this module. Defines public funtions this module's interface library makes available to other modules.


file  egomotiongpsimu_interface.h
 

Interface headers for this module. Defines public funtions prototypes this module's interface library makes available to other modules.


file  egomotiongpsimu_messages.h
 

messages.h file for this module. Defines messages this module publishes or serves to others.


file  egomotiongpsimu_subscribeexample.cpp
 

subscribeexample file for this module.


Defines

#define _DO_NOT_USE_OPENCV_   0
#define _DO_NOT_USE_CARMEN_   0
#define EGOMOTIONGPSIMU_RESET_OCCURRED_NAME   "egomotiongpsimu_reset_occurred"
 Control message to pass to the process control module. Always capitals finishes with _RESET_OCCURRED_NAME and the value is small letters the same without the suffix name.
#define EGOMOTIONGPSIMU_RESET_COMMAND_NAME   "egomotiongpsimu_reset_command"
 Control message to pass to the process control module. Always capitals finishes with _RESET_COMMAND_NAME and the value is small letters the same without the suffix name.
#define EGOMOTIONGPSIMU_DATA_MESSAGE_NAME   "egomotiongpsimu_data"
 Name of the message passed to IPC. Always capitals finishes with _MESSAGE_NAME and the value is small letters the same without the suffix.
#define EGOMOTIONGPSIMU_DATA_MESSAGE_FMT   "{double, double, double, double, double, double, double, double, double, string}"
 Format of the message passed to IPC. Always capitals finishes with _MESSAGE_FMT and the value is given similar to the one bellow. For more information view the IPC manual.
#define RUNIPC

Typedefs

typedef carmen_default_message egomotiongpsimu_reset_occurred_message
typedef carmen_default_message egomotiongpsimu_reset_command_message
typedef struct _components components

Functions

void handler_xsensmsg_received (void)
int main (int argc, char **argv)
void shutdown_module (int x)
 makes a clean shutdown of the program
void shutdown_module_noIPC (int x)
 Safe shutdown when IPC is not active, i.e. internally generated bogus data.
void handler_param_daemon (char *a, char *b, char *c)
RealMatrix Rbody2earth (double psi, double theta, double phi)
 Transforms vectors in the body reference frame into the earth reference (Cardan sequence).
RealMatrix Rearth2body (double psi, double theta, double phi)
RealMatrix Tbody2earth (double psi, double theta, double phi)
 Transforms angular velocity in the body reference frame into the earth reference frame (Cardan sequence).
void drawGPSpoints (IplImage *img, int x, int y)
 used to draw the GPS points in the image.
void drawEstimatedpoints (IplImage *img, int x, int y)
 used to draw the estimaded points in the image.
int egomotiongpsimu_subscribe_data (egomotiongpsimu_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how)
 Subscribes egomotiongpsimu_data_message messages. Uses broadcast to all subscribers. Can be used by other modules.
int egomotiongpsimu_publish_data (egomotiongpsimu_data_message *msg)
 Publishes egomotiongpsimu_data_message messages. Uses broadcast to all subscribers. Usually is only used by egomotiongpsimu.
void egomotiongpsimu_param_daemon_install_public_parameters (TYPE_egomotiongpsimu_public_params *p, int subscribe_changes, int verbose)
Image32 buf (width, height)
void handler_msg_received (void)
static gboolean delete_event (GtkWidget *widget, GdkEvent *event, gpointer data)
static void destroy (GtkWidget *widget, gpointer data)
static void createWindow ()
static void createButtons (Map *map)
static void layoutWidgets ()
static void show ()
static gboolean expose_event (GtkWidget *widget, GdkEventExpose *event)
static gboolean configure_event (GtkWidget *widget, GdkEventConfigure *event)
static gboolean button_press_event (GtkWidget *widget, GdkEventButton *event)
static gboolean motion_notify_event (GtkWidget *widget, GdkEventMotion *event)
static void createDrawingArea ()
static gboolean open_xml (GtkWidget *widget, gpointer data)
static void zoom_extents (GtkWidget *widget, gpointer data)
static gboolean zoom_window (GtkWidget *widget, gpointer data)
gboolean drawGPSpoint ()
static gboolean where_we_are (GtkWidget *widget, gpointer data)
static gboolean save (GtkWidget *widget, gpointer data)
static gboolean zoom_in (GtkWidget *widget, gpointer data)
static gboolean zoom_out (GtkWidget *widget, gpointer data)
bool is_font_file (std::string const &filename)
 Observer::Observer ()
 Constructor for the Observer.
void Observer::NlinObsChooseGainOnGPSValidity (bool GPSisValid)
 Chooses the gain to apply as function of the validity of GPS data.
void Observer::CalcRotationMatrix (double psi, double theta, double phi)
 Calculates all the necessary rotation matrices as function of car pose.
void Observer::NlinObsSetK (const char *ktype, double kval)
 set the values of the gain in the nontransformed reference frame
void Observer::NlinObsSetGain ()
 set the values of the gain in the transformed reference. Must be called before any state update.
void Observer::NlinObsSetInitalCondition (RealMatrix Measurements)
 sets the initial conditions.
RealMatrix Observer::NlinObsStateUpdateV1 (RealMatrix Measurements, Real Tb, Real deltaT)
 performs the state updates.

Variables

gps_gpgga_data_message gpgga_msg
 Include the interface.
gps_gprmc_data_message gprmc_msg
xsens_data_message xsense_msg
 Include the interface.
TYPE_executionflags flags
 Include the interface.
egomotiongpsimu_data_message msg
TYPE_egomotiongpsimu_public_params params
unsigned width = 800
unsigned height = 600
static int nbuttonpresses = 0
int x_zoom_w_1
int y_zoom_w_1
int x_zoom_w_2
int y_zoom_w_2
char * xml_filename
mapnik::Envelope< double > ext
int GPS_latitude = 0
int GPS_longitude = 0
TYPE_executionflags flags
 Include the interface.
egomotiongpsimu_data_message msg
components egointerface

Detailed Description

This module implements an egomotion estimator based on nonlinear observer theory (Lyapunov stability).

Author:
rpascoal
Version:
1.0
Date:
04 May 2010, 17:05

Define Documentation

#define _DO_NOT_USE_CARMEN_   0
#define _DO_NOT_USE_OPENCV_   0
#define EGOMOTIONGPSIMU_DATA_MESSAGE_FMT   "{double, double, double, double, double, double, double, double, double, string}"

Format of the message passed to IPC. Always capitals finishes with _MESSAGE_FMT and the value is given similar to the one bellow. For more information view the IPC manual.

#define EGOMOTIONGPSIMU_DATA_MESSAGE_NAME   "egomotiongpsimu_data"

Name of the message passed to IPC. Always capitals finishes with _MESSAGE_NAME and the value is small letters the same without the suffix.

Referenced by main().

#define EGOMOTIONGPSIMU_RESET_COMMAND_NAME   "egomotiongpsimu_reset_command"

Control message to pass to the process control module. Always capitals finishes with _RESET_COMMAND_NAME and the value is small letters the same without the suffix name.

#define EGOMOTIONGPSIMU_RESET_OCCURRED_NAME   "egomotiongpsimu_reset_occurred"

Control message to pass to the process control module. Always capitals finishes with _RESET_OCCURRED_NAME and the value is small letters the same without the suffix name.

#define RUNIPC

Typedef Documentation

typedef struct _components components
typedef carmen_default_message egomotiongpsimu_reset_command_message
typedef carmen_default_message egomotiongpsimu_reset_occurred_message

Function Documentation

Image32 buf ( width  ,
height   
)

Referenced by drawGPSpoint(), motion_notify_event(), open_xml(), where_we_are(), zoom_extents(), zoom_in(), zoom_out(), and zoom_window().

Here is the caller graph for this function:

static gboolean button_press_event ( GtkWidget *  widget,
GdkEventButton *  event 
) [static]

References FALSE, nbuttonpresses, TRUE, x_zoom_w_1, x_zoom_w_2, y_zoom_w_1, y_zoom_w_2, and _components::zoom_window.

Referenced by createDrawingArea().

Here is the caller graph for this function:

void Observer::CalcRotationMatrix ( double  psi,
double  theta,
double  phi 
) [inherited]

Calculates all the necessary rotation matrices as function of car pose.

Parameters:
psi yaw angle
theta pitch angle
phi roll angle
static gboolean configure_event ( GtkWidget *  widget,
GdkEventConfigure *  event 
) [static]

References _components::pixMap, and TRUE.

Referenced by createDrawingArea().

Here is the caller graph for this function:

static void createButtons ( Map *  map  )  [static]
static void createDrawingArea (  )  [static]

References button_press_event(), configure_event(), _components::drawingArea, expose_event(), and motion_notify_event().

Referenced by main().

Here is the call graph for this function:

Here is the caller graph for this function:

static void createWindow (  )  [static]

References delete_event(), destroy(), FALSE, and _components::window.

Referenced by main().

Here is the call graph for this function:

Here is the caller graph for this function:

static gboolean delete_event ( GtkWidget *  widget,
GdkEvent *  event,
gpointer  data 
) [static]

References FALSE.

Referenced by createWindow().

Here is the caller graph for this function:

static void destroy ( GtkWidget *  widget,
gpointer  data 
) [static]

References xml_filename.

Referenced by createWindow().

Here is the caller graph for this function:

void drawEstimatedpoints ( IplImage *  img,
int  x,
int  y 
)

used to draw the estimaded points in the image.

Parameters:
img pointer to an open IplImage
x value in pixels
y value in pixels
gboolean drawGPSpoint (  ) 
void drawGPSpoints ( IplImage *  img,
int  x,
int  y 
)

used to draw the GPS points in the image.

Parameters:
img pointer to an open IplImage
x value in pixels
y value in pixels
void egomotiongpsimu_param_daemon_install_public_parameters ( TYPE_egomotiongpsimu_public_params p,
int  subscribe_changes,
int  verbose 
)
int egomotiongpsimu_publish_data ( egomotiongpsimu_data_message msg  ) 

Publishes egomotiongpsimu_data_message messages. Uses broadcast to all subscribers. Usually is only used by egomotiongpsimu.

Parameters:
msg Pointer to message.
Returns:
nothing
int egomotiongpsimu_subscribe_data ( egomotiongpsimu_data_message msg,
carmen_handler_t  handler,
carmen_subscribe_t  subscribe_how 
)

Subscribes egomotiongpsimu_data_message messages. Uses broadcast to all subscribers. Can be used by other modules.

Parameters:
msg Pointer to message. When a new message is received the variable msg is filled with the new data.
handler pointer to function that should be executed when a message is received. If NULL no function is called.
subscribe_how Value that says if all messages are to be received CARMEN_SUBSCRIBE_ALL or if only the more recent is important CARMEN_SUBSCRIBE_LATEST.

Referenced by main().

Here is the caller graph for this function:

static gboolean expose_event ( GtkWidget *  widget,
GdkEventExpose *  event 
) [static]

References FALSE, and _components::pixMap.

Referenced by createDrawingArea().

Here is the caller graph for this function:

void handler_msg_received ( void   ) 
void handler_param_daemon ( char *  a,
char *  b,
char *  c 
)
void handler_xsensmsg_received ( void   ) 

References TRUE.

bool is_font_file ( std::string const &  filename  ) 

Referenced by main().

Here is the caller graph for this function:

static void layoutWidgets (  )  [static]
int main ( int  argc,
char **  argv 
)
static gboolean motion_notify_event ( GtkWidget *  widget,
GdkEventMotion *  event 
) [static]

References abs(), buf(), _components::drawingArea, height, nbuttonpresses, _components::pixMap, TRUE, width, x, x_zoom_w_1, y, y_zoom_w_1, and _components::zoom_window.

Referenced by createDrawingArea().

Here is the call graph for this function:

Here is the caller graph for this function:

void Observer::NlinObsChooseGainOnGPSValidity ( bool  GPSisValid  )  [inherited]

Chooses the gain to apply as function of the validity of GPS data.

Parameters:
GPSisValid boolean, if valid GPS reading is used to strapdown the estimates, otherwise deadreckon.
void Observer::NlinObsSetGain (  )  [inherited]

set the values of the gain in the transformed reference. Must be called before any state update.

void Observer::NlinObsSetInitalCondition ( RealMatrix  Measurements  )  [inherited]

sets the initial conditions.

Parameters:
Measurements,matrix(9,1) with the values from the sensors, X,Y,Z, VX, VY, VZ, accx, accy, accz.
void Observer::NlinObsSetK ( const char *  ktype,
double  kval 
) [inherited]

set the values of the gain in the nontransformed reference frame

Parameters:
ktype choose the gain submatrix k11, k12, k21, k22, k31, k32
kval the scalar value of the gain submatrix

References Observer::k11, Observer::k12, Observer::k21, Observer::k22, Observer::k31, and Observer::k32.

RealMatrix Observer::NlinObsStateUpdateV1 ( RealMatrix  Measurements,
Real  Tb,
Real  deltaT 
) [inherited]

performs the state updates.

Parameters:
Measurements,matrix(9,1) with the values from the sensors, X,Y,Z, VX, VY, VZ, accx, accy, accz.
Tb the bias time constant
deltaT the time step between previous and present time
Observer::Observer (  )  [inherited]
static gboolean open_xml ( GtkWidget *  widget,
gpointer  data 
) [static]

References buf(), _components::drawingArea, ext, height, _components::pixMap, TRUE, width, _components::window, and xml_filename.

Referenced by createButtons().

Here is the call graph for this function:

Here is the caller graph for this function:

Rbody2earth ( double  psi,
double  theta,
double  phi 
)

Transforms vectors in the body reference frame into the earth reference (Cardan sequence).

Parameters:
psi yaw angle
theta pitch angle
phi roll angle

Referenced by Rearth2body().

Here is the caller graph for this function:

RealMatrix Rearth2body ( double  psi,
double  theta,
double  phi 
)

References Rbody2earth().

Here is the call graph for this function:

static gboolean save ( GtkWidget *  widget,
gpointer  data 
) [static]

References _components::pixBuf, _components::pixMap, and TRUE.

Referenced by createButtons().

Here is the caller graph for this function:

static void show (  )  [static]
void shutdown_module ( int  sig  ) 

makes a clean shutdown of the program

makes a clean shutdown of the program.

Module shutdown function.

The main header file for egointerface module.

Safe shutdown.

Does a safe shutdown. Disconnects from IPC. Preform log closing operations and update log statistics.

Safe shutdown of module.

Make a clean exit.

Shuts down cm module with a clean exit.

Does a safe shutdown. Disconnects from IPC.

To do a safe ctrl +c exit.

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

The main header file for this module.

Returns:
nothing for now (should return an error code)
#ifndef _DES70_10_H_
#define _DES70_10_H_

#define _DO_NOT_USE_OPENCV_ 0
#define _DO_NOT_USE_CARMEN_ 0

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does         #####################################
//####################################################################

#include <lar/lar.h>
//#include <lar/readcommandlineparameters.h>

//####################################################################
// Typedefs: required typedefs are declared here. All declared types #
// should have TYPE_[the name]          ###############################
//####################################################################


typedef struct{
    int baudrate;

    int sys_config;
    int cur_reg_gain_p;
    int cur_reg_gain_i;
    int max_cur_output;
    int speed_reg_gain_p;
    int speed_reg_gain_i;
    int internal_param1;
    int internal_param2;
    int internal_param3;
    int max_speed_error;
    int setting_unit_gain;
    int setting_unit_offset;
    int setting_unit_delay;
    int peak_current;
    int max_cont_current;
    int therm_const;
    int max_speed;
    int acceleration;
    int speed_constant;
    int enc_resolution;
    int pole_pair_number;
    int internal_param4;
    int rpm2qc_factor;
    int index_offset;
    int pwm_period;
    int max_duty_cycle;
    int cur_det_ph_u_offset;
    int cur_det_ph_v_offset;
    int ad_conv_offset;
    int can_module_id;
    int can_service_id;
    int can_rx_pdo_id;
    int can_tx_pdo_id;
    int can_bcr1;
    int can_bcr2;
    int can_op_mode;
    int can_rx_sdo_id;
    int can_tx_sdo_id;
    int can_rtr0_id;
    int can_rtr1_id;
    int can_config;
    int internal_param5;
    int error_proc;
    int max_speed_curr;
    int hall_angle_offs;
}TYPE_des_sysparam;

enum ENUM_DES_SYS_PARAMS
{
    BAUDRATE = 0, 
    SYS_CONFIG = 1,
    CUR_REG_GAIN_P = 2,
    CUR_REG_GAIN_I = 3,
    MAX_CUR_OUTPUT = 4,
    SPEED_REG_GAIN_P = 5,
    SPEED_REG_GAIN_I = 6,
    INTERNAL_PARAM1 = 7,
    INTERNAL_PARAM2 = 8,
    INTERNAL_PARAM3 = 9,
    MAX_SPEED_ERROR = 10,
    SETTING_UNIT_GAIN = 11,
    SETTING_UNIT_OFFSET = 12,
    SETTING_UNIT_DELAY = 13,
    PEAK_CURRENT = 14,
    MAX_CONT_CURRENT = 15,
    THERM_CONST = 16,
    MAX_SPEED = 17,
    ACCELERATION = 18,
    SPEED_CONSTANT = 19,
    ENC_RESOLUTION = 20,
    POLE_PAIR_NUMBER = 21,
    INTERNAL_PARAM4 = 22,
    RPM_2QC_FACTOR = 23,
    INDEX_OFFSET = 24,
    PWM_PERIOD = 25,
    MAX_DUTY_CYCLE = 26,
    CUR_DET_PH_U_OFFSET = 27,
    CUR_DET_PH_V_OFFSET = 28,
    AD_CONV_OFFSET = 29,
    CAN_MODULE_ID = 30,
    CAN_SERVICE_ID = 31,
    CAN_RX_PDO_ID = 32,
    CAN_TX_PDO_ID = 33,
    CAN_BCR1 = 34,
    CAN_BCR2 = 35,
    CAN_OP_MODE = 36,
    CAN_RX_SDO_ID = 37,
    CAN_TX_SDO_ID = 38,
    CAN_RTR0_ID = 39,
    CAN_RTR1_ID = 40,
    CAN_CONFIG = 41,
    INTERNAL_PARAM5 = 42,
    ERROR_PROC = 43,
    MAX_SPEED_CURR = 44,
    HALL_ANGLE_OFFS = 45
};

typedef struct{
    int sys_op_status;
    int actual_mean_cur_d;
    int actual_mean_cur_q;
    int cur_setting_val;
    int rel_rot_pos_rev;
    int speed_setting_val;
    int actual_mean_speed_val;
    int abs_rotor_pos;
    int standard_error;
    int can_error;
    int actual_cur_q;
    int actual_speed_val;
    int error_hist1;
    int error_hist2;
    int enc_counter;
    int enc_counter_last_ind;
    int hall_sens_pat;
}TYPE_DES_status_var;

enum ENUM_DES_STATUS_VAR
{
    SYS_OP_STATUS = 128,
    ACTUAL_MEAN_CUR_D = 129,
    ACTUAL_MEAN_CUR_Q = 130,
    CUR_SETTING_VAL = 131,
    REL_ROT_POS_REV = 132,
    SPEED_SETTING_VAL = 133,
    ACTUAL_MEAN_SPEED_VAL = 134,
    ABS_ROTOR_POS = 135,
    STANDARD_ERROR = 136,
    CAN_ERROR = 137,
    ACTUAL_CUR_Q = 138,
    ACTUAL_SPEED_VAL = 139,
    ERROR_HIST1 = 140,
    ERROR_HIST2 = 141,
    ENC_COUNTER = 142,
    ENC_COUNTER_LAST_IND = 143,
    HALL_SENS_PAT = 144,
};

typedef struct{
    unsigned char OpCode;
    unsigned char data[520];
    int size;
    int crc;
}TYPE_msg_frame;


//####################################################################
// Prototypes:  for private functions can be declared #################
// in des70_10.c or preferably in des70_10_functions.c  ##
//####################################################################



//-------   des70_10_init.cpp       -------
int InitDES_communication(char* com_device, int* port, int baud, TYPE_executionflags* flg);

//-------   des70_10_functions.cpp  -------
int calc_crc_16(TYPE_msg_frame* msg);
int write_msg_inbuf(const int port, unsigned char* data, int size);
int check_msg_aceptance(const int port, float wait_time, unsigned char* msg);
int send_OpCode(const int port, unsigned char tries, unsigned char OpCode, char flg);
int send_data(const int port, TYPE_msg_frame* msg, char flg);
int read_buffer(const int port, TYPE_msg_frame* msg, char flg);
int send_msg_frame(const int port, TYPE_msg_frame* msg, char flg);
int DES_ST_read_sys_status(const int port, int* sys_status, char flg);
int DES_ST_read_error(const int port, int* errors, char flg);
int DES_ST_clear_errors(const int port, char flg);
int DES_ST_reset(const int port, char flg);
int DES_ST_enable(const int port, int* newState, char flg);
int DES_SPF_read_temp_param(const int port, int paramNb, int dataFormat, int* response, char flg);
int DES_SPF_set_temp_param(const int port, int paramNb, int dataFormat, int* newValue, char flg);
int DES_SPF_read_all_temp_param(const int port, TYPE_des_sysparam* sysparam, char flg);
int DES_SF_set_velocity(const int port, int newVelocity, char flg);
int DES_SF_set_current(const int port, int newCurrent, char flg);
int DES_SF_stop_motion(const int port, char flg);
int DES_MF_read_velocity_is_must(const int port, int vel_type, int* velocity, int* requested_vel, char flg);
int InitDES(const int port, TYPE_des_sysparam* newSysParam, char flg);
int stopDES(const int port, char flg);
int DES_set_new_baud(int* port, int baud, char flg);



#ifdef _DES70_10_FUNCTIONS_C_

#else

#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent: SIGINT etc
x the type of signal sent: SIGINT etc
#ifndef _POWERMANAGER_H_
#define _POWERMANAGER_H_

#define _DO_NOT_USE_OPENCV_ 0
#define _DO_NOT_USE_CARMEN_ 0

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does         #####################################
//####################################################################

#include <lar/powermanager_interface.h>

#define _SERIALPORT_ "/dev/ttyUSB0"
//####################################################################
// Typedefs: required typedefs are declared here. All declared types #
// should have TYPE_[the name]          ###############################
//####################################################################


//####################################################################
// Prototypes:  for private functions can be declared #################
// in powermanager.c or preferably in powermanager_functions.c  ##
//####################################################################
int main(int argc, char **argv);
void shutdown_module(int x);
void handler_command_msg(void);
void initialize_communications(void);
int send_to_plc(unsigned char byte_value);
//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
#ifdef _POWERMANAGER_CPP_ /*or _POWERMANAGER_C_, depends on the file type*/


//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
//mike confusion, uses a message structure to install parameters. message and parameters should not be different?


TYPE_executionflags flags; //the command line parameters flags


//creates a the default structure that will deal retrieve parameters.
// explain fields (use a handler whenever a parameter changes)
// var1 in this case is actually

int PortHandle;
powermanager_status_message status_msg;
powermanager_command_message command_msg;

#else

extern TYPE_executionflags flags;
extern powermanager_status_message status_msg;
extern powermanager_command_message command_msg;
extern int PortHandle;

#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent: SIGINT etc
x the SIGNAL
Todo:
many modules use this. Should be an util library.
Parameters:
x the SIGNAL
Todo:
many modules use this. Should be an util library.
Parameters:
x the SIGNAL
Todo:
many modules use this. Should be an util library.
Parameters:
x the SIGNAL
Todo:
many modules use this. Should be an util library.
#ifndef _XBEE_H_
#define _XBEE_H_

#define _DO_NOT_USE_OPENCV_ 0
#define _DO_NOT_USE_CARMEN_ 0

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does         #####################################
//####################################################################

#include <lar/xbee_interface.h>
#include <strings.h>


//####################################################################
// Typedefs: required typedefs are declared here. All declared types #
// should have TYPE_[the name]          ###############################
//####################################################################


//####################################################################
// Prototypes:  for private functions can be declared #################
// in xbee.c or preferably in xbee_functions.c  ##
//####################################################################
int main(int argc, char **argv);
void shutdown_module(int x);
void handler_param_daemon(char *a, char *b, char *c);
void initialize_xbee(void);
void xbee_transmit_data(void);
void xbee_receive_data(void);

//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
#ifdef _XBEE_CPP_ /*or _XBEE_C_, depends on the file type*/


//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
//mike confusion, uses a message structure to install parameters. message and parameters should not be different?

char *COM_DEVICE_XBEE;      //will receive com device address
double read_frequency;      //will receive com device access frequency
TYPE_executionflags flags; //the command line parameters flags
xbee_rx_data_message rx_message; //this is a message structure
xbee_tx_data_message tx_message; //this is a message structure
TYPE_xbee_public_params params; //this is a parameters structure
int device_handler_xbee;
char* tx_string;

//creates a the default structure that will deal with retrieved parameters.
// explain fields (use a handler whenever a parameter changes)
// the values in the field xbee_data_param_shared_var, from lar.ini, will be installed in var1
// the var type is an integer: CARMEN_PARAM_INT
carmen_param_t xbee_local_parameters[] = {
    {(char*)"xbee", (char*)"frequency", CARMEN_PARAM_DOUBLE, &read_frequency, 1, NULL},
    {(char*)"xbee", (char*)"comport", CARMEN_PARAM_STRING, &COM_DEVICE_XBEE, 0, NULL}}; //prepare param struct
    
#else

extern char *COM_DEVICE_XBEE;       //will receive com device address
extern double read_frequency;       //will receive com device access frequency
extern TYPE_executionflags flags;
extern xbee_rx_data_message rx_message; 
extern xbee_tx_data_message tx_message;
extern TYPE_xbee_public_params params;
extern int device_handler_xbee;
extern char* tx_string;

#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent: SIGINT etc

Disconnects from ipc and releases video writer

Parameters:
x Signal value. To shutdown signal must be SIGINT
#ifndef _OT_H_
#define _OT_H_

#include <lar/lar.h>
//#include "/home/atlas/lar/src/perception/planarobstacles/potkf_tese/potkf_interface.h"



enum enum_state {SEARCHING,TRACKING,TARGET_LOST,INITIALISE};


typedef struct
{
    enum_state state;
    unsigned int target_id;
    double current_angle,current_distance;
    double velocity_module,velocity_angle;
    double predicted_angle,predicted_distance;
    double size;
    int life_time;
    int occluded_time;
    int classification;
}t_status;


typedef struct
{
    double start_angle;
    double end_angle;

    double start_range;
    double end_range;

    double min_size;
    double max_size;

    int min_life_time;
    int max_life_time;

}t_search_area;


int main(int argc, char **argv);
void shutdown_module(int x);
void handler_param_daemon(char *a, char *b, char *c);
void potkf_handler(potkf_reduced_data_message*msg);
bool search_for_new_target(potkf_reduced_data_message*potkf_msg,t_status*status,t_search_area*area);
void init_search_area(t_search_area*area);
bool get_new_target_information(potkf_reduced_data_message*potkf_msg,t_status*status);
void foveationcontrol(t_status*status);
void print_status(t_status*status);
void foveationcontrol_home(void);

#ifdef _OT_CPP_

bool potkf_heartbeat;
TYPE_executionflags flags; //the command line parameters flags

#else

extern TYPE_executionflags flags;
extern bool potkf_heartbeat;

#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent: SIGINT etc
#ifndef _MODULETEMPLATE_H_
#define _MODULETEMPLATE_H_

#define _DO_NOT_USE_OPENCV_ 0
#define _DO_NOT_USE_CARMEN_ 0

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does         #####################################
//####################################################################

#include <lar/moduletemplate_interface.h>


//####################################################################
// Typedefs: required typedefs are declared here. All declared types #
// should have TYPE_[the name]          ###############################
//####################################################################


//####################################################################
// Prototypes:  for private functions can be declared #################
// in moduletemplate.c or preferably in moduletemplate_functions.c  ##
//####################################################################
int main(int argc, char **argv);
void shutdown_module(int x);
void handler_param_daemon(void);

//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
#ifdef _MODULETEMPLATE_CPP_ /*or _MODULETEMPLATE_C_, depends on the file type*/


//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
//mike confusion, uses a message structure to install parameters. message and parameters should not be different?


TYPE_executionflags flags; //the command line parameters flags
moduletemplate_data_message msg; //this is a structure
TYPE_moduletemplate_public_params params; //this is a structure

//creates a the default structure that will deal with retrieved parameters.
// explain fields (use a handler whenever a parameter changes)
// the values in the field moduletemplate_data_param_shared_var, from lar.ini, will be installed in var1
// the var type is an integer: CARMEN_PARAM_INT
carmen_param_t moduletemplate_local_parameters[] = {
    {(char*)"moduletemplate", (char*)"shared_var", CARMEN_PARAM_INT, &msg.var1, 1, _cast_to_carmen_param_change_handler_t_ handler_param_daemon}
    }; //prepare param struct
#else

extern TYPE_executionflags flags;
extern moduletemplate_data_message msg;
extern TYPE_moduletemplate_public_params params;

#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent: SIGINT etc
x signal
x the type of signal sent, SIGINT etcr
signal signal recived
Returns:
void
Parameters:
x the type of signal sent, SIGINT is the only one handled
#ifndef _AGENTS_H_
#define _AGENTS_H_

#define _DO_NOT_USE_OPENCV_ 0
#define _DO_NOT_USE_CARMEN_ 0

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does         #####################################
//####################################################################

// #include <lar/agents_interface.h>
#include <lar/agents_interface.h>
#include <lar/agent_tracker_interface.h>


//####################################################################
// Typedefs: required typedefs are declared here. All declared types #
// should have TYPE_[the name]          ###############################
//####################################################################

typedef struct{
    int xbee_address;       
    double sleeptime;       
    double kp;      
} TYPE_agents_local_params;

//####################################################################
// Prototypes:  for private functions can be declared #################
// in agents.c or preferably in agents_functions.c  ##
//####################################################################
int main(int argc, char **argv);
void shutdown_module(int x);
void handler_param_daemon(char *a, char *b, char *c);
void handler_distance_data(char *a, char *b, char *c);

//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
#ifdef _AGENTS_CPP_ /*or _AGENTS_C_, depends on the file type*/


//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################

TYPE_executionflags flags; //the command line parameters flags
agents_data_message agents_message; //this is a structure
xbee_tx_data_message xbee_tx_message; //this is a structure
TYPE_agents_local_params local_params; //this is a structure for parameters intallation
agent_clearance_distance_data_message distance_data_msg;
double linear_speed, reference_distance, error;

#else

extern TYPE_executionflags flags;
extern agents_data_message agents_message; //this is a structure
extern xbee_tx_data_message xbee_tx_message; //this is a structure
extern TYPE_agents_local_params local_params;
extern agent_clearance_distance_data_message distance_data_msg;
extern double linear_speed, reference_distance, error;

#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent: SIGINT etc
#ifndef _AGENT_BEHAVIOUR_H_
#define _AGENT_BEHAVIOUR_H_

#define _DO_NOT_USE_OPENCV_ 0
#define _DO_NOT_USE_CARMEN_ 0

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does         #####################################
//####################################################################

#include <lar/agent_behaviour_interface.h>


//####################################################################
// Typedefs: required typedefs are declared here. All declared types #
// should have TYPE_[the name]          ###############################
//####################################################################


//####################################################################
// Prototypes:  for private functions can be declared #################
// in agent_behaviour.c or preferably in agent_behaviour_functions.c  ##
//####################################################################
int main(int argc, char **argv);
void shutdown_module(int x);
void handler_param_daemon(char *a, char *b, char *c);

//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
#ifdef _AGENT_BEHAVIOUR_CPP_ /*or _AGENT_BEHAVIOUR_C_, depends on the file type*/


//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
//mike confusion, uses a message structure to install parameters. message and parameters should not be different?


TYPE_executionflags flags; //the command line parameters flags
agent_behaviour_data_message msg; //this is a message structure
agent_behaviour_virtual_sensors_data_message virtual_sensors_data_msg; //this is a message structure
TYPE_agent_behaviour_public_params params; //this is a parameters structure
agents_data_message agents_message;

//creates a the default structure that will deal retrieve parameters.
// explain fields (use a handler whenever a parameter changes)
// var1 in this case is actually 
carmen_param_t agent_behaviour_params[] = {
    {(char*)"agents", (char*)"data_param_shared_var", CARMEN_PARAM_INT, &msg.var1, 1, handler_param_daemon}
    }; //prepare param struct
#else

extern TYPE_executionflags flags;
extern agent_behaviour_data_message msg;
extern agent_behaviour_virtual_sensors_data_message virtual_sensors_data_msg;
extern TYPE_agent_behaviour_public_params params;
extern agents_data_message agents_message;

#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent: SIGINT etc
#ifndef _AGENT_CLEARANCE_H_
#define _AGENT_CLEARANCE_H_

#define _DO_NOT_USE_OPENCV_ 0
#define _DO_NOT_USE_CARMEN_ 0

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does         #####################################
//####################################################################

#include <lar/agent_clearance_interface.h>
#include "/usr/local/include/cvblobs/BlobResult.h"


//####################################################################
// Typedefs: required typedefs are declared here. All declared types #
// should have TYPE_[the name]          ###############################
//####################################################################
typedef struct{
    double sleeptime;       
} TYPE_agent_clearance_local_params;


//####################################################################
// Prototypes:  for private functions can be declared #################
// in agent_clearance.c or preferably in agent_clearance_functions.c  ##
//####################################################################
int main(int argc, char **argv);
void shutdown_module(int x);
void handler_param_daemon(char *a, char *b, char *c);
void handler_rx_msg_received(void);
void arena_image_handler(camera_image_message *msg_firei);
void heartbeat_handler_n0(carmen_heartbeat_message *);
void get_image(IplImage *image);
void flood_fill_fixed_threshold(void);
void init_images(void);

//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
#ifdef _AGENT_CLEARANCE_CPP_


//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################


TYPE_executionflags flags; //the command line parameters flags
agent_clearance_distance_data_message distance_message; //this is a message structure
TYPE_agent_clearance_local_params local_parameters; //this is a parameters structure
xbee_rx_data_message rx_message;

camera_image_message image_message;
int image_message_alloc;
char firei_n0_image_message_heartbeat;
int msecstowait;
int height, width;
double ts;

IplImage* img;
IplImage* gray;
IplImage* adapt_thresholded;
IplImage* fill_temp;
IplImage* filled;
IplImage* filled_final;
IplImage* tmp;
IplImage* image;
IplImage* border;
IplImage* lanemarkers;
IplImage* tophat_image;
IplImage* work_image;
IplImage* hsv;
IplImage* hue;
IplImage* saturation;
IplImage* value;
IplImage* hf;
IplImage* sf;
IplImage* vf;

//creates a the default structure that will deal retrieved parameters.
carmen_param_t agent_clearance_params[] = {
    {(char*)"agents", (char*)"sleeptime", CARMEN_PARAM_DOUBLE, &local_parameters.sleeptime, 1, NULL}}; //declared the install struct
    
#else

extern TYPE_executionflags flags;
extern agent_clearance_distance_data_message distance_message; //this is a message structure
extern TYPE_agent_clearance_local_params local_parameters;
extern xbee_rx_data_message rx_message;

extern int height, width;
extern char firei_n0_image_message_heartbeat;

extern IplImage* img;
extern IplImage* gray;
extern IplImage* adapt_thresholded;
extern IplImage* fill_temp;
extern IplImage* filled;
extern IplImage* filled_final;
extern IplImage* tmp;
extern IplImage* image;
extern IplImage* border;
extern IplImage* lanemarkers;
extern IplImage* tophat_image;
extern IplImage* work_image;
extern IplImage* hsv;
extern IplImage* hue;
extern IplImage* saturation;
extern IplImage* value;
extern IplImage* hf;
extern IplImage* sf;
extern IplImage* vf;

#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent: SIGINT etc
#ifndef _AGENT_TRACKER_H_
#define _AGENT_TRACKER_H_

#define _DO_NOT_USE_OPENCV_ 0
#define _DO_NOT_USE_CARMEN_ 0

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does         #####################################
//####################################################################

#include <lar/agent_tracker_interface.h>


//####################################################################
// Typedefs: required typedefs are declared here. All declared types #
// should have TYPE_[the name]          ###############################
//####################################################################


//####################################################################
// Prototypes:  for private functions can be declared #################
// in agent_tracker.c or preferably in agent_tracker_functions.c  ##
//####################################################################
int main(int argc, char **argv);
void shutdown_module(int x);
void handler_param_daemon(char *a, char *b, char *c);

//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
#ifdef _AGENT_TRACKER_CPP_ /*or _AGENT_TRACKER_C_, depends on the file type*/


//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
//mike confusion, uses a message structure to install parameters. message and parameters should not be different?


TYPE_executionflags flags; //the command line parameters flags
agent_tracker_data_message msg; //this is a message structure
agent_tracker_virtual_sensors_data_message virtual_sensors_data_msg; //this is a message structure
TYPE_agent_tracker_public_params params; //this is a parameters structure
agents_data_message agents_message;

//creates a the default structure that will deal retrieve parameters.
// explain fields (use a handler whenever a parameter changes)
// var1 in this case is actually 
carmen_param_t agent_tracker_params[] = {
    {(char*)"agents", (char*)"data_param_shared_var", CARMEN_PARAM_INT, &msg.var1, 1, handler_param_daemon}
    }; //prepare param struct
#else

extern TYPE_executionflags flags;
extern agent_tracker_data_message msg;
extern agent_tracker_virtual_sensors_data_message virtual_sensors_data_msg;
extern TYPE_agent_tracker_public_params params;
extern agents_data_message agents_message;

#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent: SIGINT etc
#ifndef _PDHFFC_H_
#define _PDHFFC_H_

#define _DO_NOT_USE_OPENCV_ 0
#define _DO_NOT_USE_CARMEN_ 0

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does         #####################################
//####################################################################

#include <lar/pdhffc_interface.h>

#include "pdhffc_pid.h"
#include "pdhffc_templatetracking.h"


//####################################################################
// Typedefs: required typedefs are declared here. All declared types #
// should have TYPE_[the name]          ###############################
//####################################################################


//####################################################################
// Prototypes:  for private functions can be declared #################
// in pdhffc.c or preferably in pdhffc_functions.c  ##
//####################################################################
int main(int argc, char **argv);
void shutdown_module(int x);
void draw_cross(IplImage *dst, int x, int y, int r, int g, int b);
void draw_double_arrow(int x0, int y0, int x1, int y1, IplImage *dst, CvScalar color, int thickness, int line_type, int shift);
void draw_blind_zone(IplImage *dst, int target_x, int target_y, int bz_x, int bz_y, int r, int g, int b);
//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
#ifdef _PDHFFC_CPP_ /*or _PDHFFC_C_, depends on the file type*/

TYPE_executionflags flags; //the command line parameters flags
pdhffc_information_message msg;

carmen_ptucontrol_command_message ptucommand;
cTemplateTracking *TT;
camera_params_t cam0_params;
camera_params_t cam1_params;
#else


extern TYPE_executionflags flags;
extern pdhffc_information_message msg;
extern carmen_ptucontrol_command_message ptucommand;
extern cTemplateTracking *TT;
extern camera_params_t cam0_params;
extern camera_params_t cam1_params;
#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent, SIGINT etcr
x signal recieved
Returns:
void
#ifndef _TLHFCS_H_
#define _TLHFCS_H_

#define _DO_NOT_USE_OPENCV_ 0
#define _DO_NOT_USE_CARMEN_ 0

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does         #####################################
//####################################################################


#include <lar/tlhfcs_interface.h>
#include <lar/tlcstm_messages.h>
#include <lar/soundplayer_interface.h>

#include "tlhfcs_init.h"



//####################################################################
// Typedefs: required typedefs are declared here. All declared types #
// should have TYPE_[the name]          ###############################
//####################################################################

typedef struct
{
    char *filename;
    CvHaarClassifierCascade* classifier;
}TYPE_ligths_cascade;

typedef struct
{
    IplImage* img;
    char name[2500];
}TYPE_image;



typedef  struct{
    int red[3]; 
    int green[3];   
    int darkgreen[3];   
    int blue[3];    
    int darkblue[3];    
    int yellow[3];  
    int darkyellow[3];  
    int cyan[3];    
    int darkcyan[3];    
    int orange[3];  
    int magenta[3]; 
    int darkmagenta[3]; 
    int black[3];   
}TYPE_color;


typedef struct
{
    TYPE_image ligths;
    TYPE_image gui_ligths;
    TYPE_image gray;
    TYPE_image s_filter;
    TYPE_image v_filter;
    TYPE_image sand_v_filter;
    TYPE_image red_filter;
    TYPE_image green_filter;
    TYPE_image yellow_filter;
    TYPE_image detected_signs;
    CvSize img_size;
    CvSize sign_in_size;
}TYPE_ligths_imgs;

typedef struct
{
    int maxH;
    int minH;
    int maxS;
    int minS;
    int maxV;
    int minV;
}TYPE_hsv_limits;

typedef struct
{
    double max_color_ratio;
    double max_black_ratio;
    int sign_min_size;
    int sign_max_size;
    double color_obj;
    double bavg_obj;
    double err;
    double avg_around_color_min;
    double avg_around_color_max;

}TYPE_decision_limits;


#define MAX_OBJ 30

typedef struct
{
    TYPE_image srcRGB;
    TYPE_image gui_debug;
    TYPE_image possible_sign[MAX_OBJ];
    TYPE_image mask_p_sign[MAX_OBJ];
    TYPE_image vf[MAX_OBJ];

    CvRect roi[MAX_OBJ];

    double color_r[MAX_OBJ];
    double black_r[MAX_OBJ];
    double res[MAX_OBJ];

    double cratio_weigth;
    double bavg_weigth;

    int num_total;
    int selected;
    int previous_tot;

    TYPE_ligths_cascade cascade;

    TYPE_decision_limits decision_limits;
    int threshold_lim;
}TYPE_sign_analysis;

typedef struct
{
    double cratio_weigth;
    double bavg_weigth;

    TYPE_ligths_imgs imgs;

    TYPE_hsv_limits red_limits, green_limits, yellow_limits;

    TYPE_sign_analysis rc_analysis, gau_analysis, yal_analysis, yar_analysis, park_analysis;

    char use_angle;

    char heigth_updated;

}TYPE_ligths_analysis;



typedef struct
{
    double cofidence;
    int x;
    int y;
    int width;
    int height;
    char name[80];
    int sign;
    int* color_rec;
    int* color_str;
    double* color_r;
    double* black_r;
}TYPE_detected_sign;


//####################################################################
// Prototypes:  for private functions can be declared #################
// in tlhfcs.c or preferably in tlhfcs_functions.c  ##
//####################################################################
//int main(int argc, char **argv);
void shutdown_module(int x);
//void handler_param_daemon(char *a, char *b, char *c);

void heartbeat_handler_n0(carmen_heartbeat_message *heartbeat_msg);

void heartbeat_handler_n1(carmen_heartbeat_message *heartbeat_msg);

void heartbeat_handler_n2(carmen_heartbeat_message *heartbeat_msg);

void heartbeat_handler_n3(carmen_heartbeat_message *heartbeat_msg);

void handler_load_rc_haar_cascade(void);
void handler_load_gau_haar_cascade(void);
void handler_load_yal_haar_cascade(void);
void handler_load_yar_haar_cascade(void);
void handler_load_park_haar_cascade(void);

void handler_sign_in_height_update(void);
void handler_sign_size_update(void);
void handler_bavg_weight_update(void);
void handler_color_weight_update(void);

void detect_and_draw_objects( int, CvScalar);
void draw_cross(IplImage *src,int line,int column,int lenght, int *color);
void draw_gui_sign_data(TYPE_sign_analysis* SA, IplImage* src, int* lx, int* ly, int img_height, CvFont* tmp_font, int* color_line, int* color_text, char* sign_name, int search);

void detect_haar_signal(CvHaarClassifierCascade* classifier, TYPE_image* srcRGB,TYPE_sign_analysis* sign_analysis, TYPE_executionflags* flgs, int* color);

void color_segmentation(TYPE_hsv_limits* hsv_limits, const IplImage* srcRGB, IplImage* vf, double* ratio, double* b_avg,char debug, char* name);

void refresh_windows(void);
void init_color_table(TYPE_color* );

void find_tl_sign(TYPE_sign_analysis* sign_analysis, TYPE_hsv_limits*, int* color, TYPE_executionflags* flgs, char* name);

void get_image_from_camera3(void);
void init_color_values(void);
void get_image_from_camera3(void);

//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
#ifdef _TLHFCS_CPP_ /*or _TLHFCS_C_, depends on the file type*/



TYPE_detected_sign detected_sign;

TYPE_color color_table;

TYPE_executionflags flags; //the command line parameters flags
tlcstm_data_message tl_msg;
//TYPE_tlhfcs_public_params params;

TYPE_ligths_analysis LA;

camera_image_message c0;
int c0_alloc=1;
camera_image_message c1;
int c1_alloc=1;
camera_image_message c2;
int c2_alloc=1;
camera_image_message c3;
int c3_alloc=1;

char firei_n0_msg_heart_beat = 0;
char firei_n1_msg_heart_beat = 0;
char firei_n2_msg_heart_beat = 0;
char firei_n3_msg_heart_beat = 0;


soundplayer_command_message sound_msg;
tlcstm_command_message command;

char cascade_filename[1024];

double ts;
int cycle_freq;

c_videosaving* videosaving;
c_timer timer;

CvFont Font;
CvFont Font1;

IplImage* image_cam3 = cvCreateImage(LA.imgs.img_size, IPL_DEPTH_8U , 3);

char str0[20];
int centerx,centery;


carmen_param_t module_refresh_params[] = {
    {(char*)"freq", (char*)"tlhfcs", CARMEN_PARAM_INT, &cycle_freq, 1, NULL},
};

carmen_param_t colordetection_params[] = {
    {(char*)"cd", (char*)"red_H_max", CARMEN_PARAM_INT, &LA.red_limits.maxH, 1, NULL},
    {(char*)"cd", (char*)"red_H_min", CARMEN_PARAM_INT, &LA.red_limits.minH, 1, NULL},
    {(char*)"cd", (char*)"red_S_max", CARMEN_PARAM_INT, &LA.red_limits.maxS, 1, NULL},
    {(char*)"cd", (char*)"red_S_min", CARMEN_PARAM_INT, &LA.red_limits.minS, 1, NULL},
    {(char*)"cd", (char*)"red_V_max", CARMEN_PARAM_INT, &LA.red_limits.maxV, 1, NULL},
    {(char*)"cd", (char*)"red_V_min", CARMEN_PARAM_INT, &LA.red_limits.minV, 1, NULL},
    {(char*)"cd", (char*)"green_H_max", CARMEN_PARAM_INT, &LA.green_limits.maxH, 1, NULL},
    {(char*)"cd", (char*)"green_H_min", CARMEN_PARAM_INT, &LA.green_limits.minH, 1, NULL},
    {(char*)"cd", (char*)"green_S_max", CARMEN_PARAM_INT, &LA.green_limits.maxS, 1, NULL},
    {(char*)"cd", (char*)"green_S_min", CARMEN_PARAM_INT, &LA.green_limits.minS, 1, NULL},
    {(char*)"cd", (char*)"green_V_max", CARMEN_PARAM_INT, &LA.green_limits.maxV, 1, NULL},
    {(char*)"cd", (char*)"green_V_min", CARMEN_PARAM_INT, &LA.green_limits.minV, 1, NULL},
    {(char*)"cd", (char*)"yellow_H_max", CARMEN_PARAM_INT, &LA.yellow_limits.maxH, 1, NULL},
    {(char*)"cd", (char*)"yellow_H_min", CARMEN_PARAM_INT, &LA.yellow_limits.minH, 1, NULL},
    {(char*)"cd", (char*)"yellow_S_max", CARMEN_PARAM_INT, &LA.yellow_limits.maxS, 1, NULL},
    {(char*)"cd", (char*)"yellow_S_min", CARMEN_PARAM_INT, &LA.yellow_limits.minS, 1, NULL},
    {(char*)"cd", (char*)"yellow_V_max", CARMEN_PARAM_INT, &LA.yellow_limits.maxV, 1, NULL},
    {(char*)"cd", (char*)"yellow_V_min", CARMEN_PARAM_INT, &LA.yellow_limits.minV, 1, NULL},
    }; //prepare param struct

carmen_param_t tlhfcs_camera_params[] = {
    {(char*)"camera3", (char*)"imagewidth", CARMEN_PARAM_INT, &LA.imgs.img_size.width, 1, NULL},
    {(char*)"camera3", (char*)"imageheight", CARMEN_PARAM_INT, &LA.imgs.img_size.height, 1, NULL},
};//prepare param struct from the image that camera3 will give

carmen_param_t tlhfcs_params[] = {
    {(char*)"tlhfcs", (char*)"sign_in_height", CARMEN_PARAM_INT, &LA.imgs.sign_in_size.height, 1, _cast_to_carmen_param_change_handler_t_ handler_sign_in_height_update},
    {(char*)"tlhfcs", (char*)"sign_min_size", CARMEN_PARAM_INT, &LA.rc_analysis.decision_limits.sign_min_size, 1, _cast_to_carmen_param_change_handler_t_ handler_sign_size_update},
    {(char*)"tlhfcs", (char*)"sign_max_size", CARMEN_PARAM_INT, &LA.rc_analysis.decision_limits.sign_max_size, 1, _cast_to_carmen_param_change_handler_t_ handler_sign_size_update},
    {(char*)"tlhfcs", (char*)"thresh_limit", CARMEN_PARAM_INT, &LA.rc_analysis.threshold_lim, 1, NULL},
    {(char*)"tlhfcs", (char*)"cratio_weigth", CARMEN_PARAM_DOUBLE, &LA.cratio_weigth, 1, _cast_to_carmen_param_change_handler_t_ handler_color_weight_update},
    {(char*)"tlhfcs", (char*)"bavg_weigth", CARMEN_PARAM_DOUBLE, &LA.bavg_weigth, 1, _cast_to_carmen_param_change_handler_t_ handler_bavg_weight_update},
    //-----------------------------------
    //params for Red Cross
    //-----------------------------------
    {(char*)"tlhfcs", (char*)"rc_cascade_path", CARMEN_PARAM_STRING, &LA.rc_analysis.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_rc_haar_cascade},
    {(char*)"tlhfcs", (char*)"rc_max_cratio", CARMEN_PARAM_DOUBLE, &LA.rc_analysis.decision_limits.max_color_ratio, 1, NULL},
    {(char*)"tlhfcs", (char*)"rc_max_bratio", CARMEN_PARAM_DOUBLE, &LA.rc_analysis.decision_limits.max_black_ratio, 1, NULL},
    {(char*)"tlhfcs", (char*)"rc_color_obj", CARMEN_PARAM_DOUBLE, &LA.rc_analysis.decision_limits.color_obj, 1, NULL},
    {(char*)"tlhfcs", (char*)"rc_bavg_obj", CARMEN_PARAM_DOUBLE, &LA.rc_analysis.decision_limits.bavg_obj, 1, NULL},
    {(char*)"tlhfcs", (char*)"rc_err", CARMEN_PARAM_DOUBLE, &LA.rc_analysis.decision_limits.err, 1, NULL},
    //-----------------------------------
    //params for Green Arrow Up
    //-----------------------------------
    {(char*)"tlhfcs", (char*)"gau_cascade_path", CARMEN_PARAM_STRING, &LA.gau_analysis.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_gau_haar_cascade},
    {(char*)"tlhfcs", (char*)"gau_max_cratio", CARMEN_PARAM_DOUBLE, &LA.gau_analysis.decision_limits.max_color_ratio, 1, NULL},
    {(char*)"tlhfcs", (char*)"gau_max_bratio", CARMEN_PARAM_DOUBLE, &LA.gau_analysis.decision_limits.max_black_ratio, 1, NULL},
    {(char*)"tlhfcs", (char*)"gau_color_obj", CARMEN_PARAM_DOUBLE, &LA.gau_analysis.decision_limits.color_obj, 1, NULL},
    {(char*)"tlhfcs", (char*)"gau_bavg_obj", CARMEN_PARAM_DOUBLE, &LA.gau_analysis.decision_limits.bavg_obj, 1, NULL},
    {(char*)"tlhfcs", (char*)"gau_err", CARMEN_PARAM_DOUBLE, &LA.gau_analysis.decision_limits.err, 1, NULL},
    //-----------------------------------
    //params for Yellow Arrow Left
    //-----------------------------------
    {(char*)"tlhfcs", (char*)"yal_cascade_path", CARMEN_PARAM_STRING, &LA.yal_analysis.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_yal_haar_cascade},
    {(char*)"tlhfcs", (char*)"yal_max_cratio", CARMEN_PARAM_DOUBLE, &LA.yal_analysis.decision_limits.max_color_ratio, 1, NULL},
    {(char*)"tlhfcs", (char*)"yal_max_bratio", CARMEN_PARAM_DOUBLE, &LA.yal_analysis.decision_limits.max_black_ratio, 1, NULL},
    {(char*)"tlhfcs", (char*)"yal_color_obj", CARMEN_PARAM_DOUBLE, &LA.yal_analysis.decision_limits.color_obj, 1, NULL},
    {(char*)"tlhfcs", (char*)"yal_bavg_obj", CARMEN_PARAM_DOUBLE, &LA.yal_analysis.decision_limits.bavg_obj, 1, NULL},
    {(char*)"tlhfcs", (char*)"yal_err", CARMEN_PARAM_DOUBLE, &LA.yal_analysis.decision_limits.err, 1, NULL},
    //-----------------------------------
    //params for Yellow Arrow Right
    //-----------------------------------
    {(char*)"tlhfcs", (char*)"yar_cascade_path", CARMEN_PARAM_STRING, &LA.yar_analysis.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_yar_haar_cascade},
    {(char*)"tlhfcs", (char*)"yar_max_cratio", CARMEN_PARAM_DOUBLE, &LA.yar_analysis.decision_limits.max_color_ratio, 1, NULL},
    {(char*)"tlhfcs", (char*)"yar_max_bratio", CARMEN_PARAM_DOUBLE, &LA.yar_analysis.decision_limits.max_black_ratio, 1, NULL},
    {(char*)"tlhfcs", (char*)"yar_color_obj", CARMEN_PARAM_DOUBLE, &LA.yar_analysis.decision_limits.color_obj, 1, NULL},
    {(char*)"tlhfcs", (char*)"yar_bavg_obj", CARMEN_PARAM_DOUBLE, &LA.yar_analysis.decision_limits.bavg_obj, 1, NULL},
    {(char*)"tlhfcs", (char*)"yar_err", CARMEN_PARAM_DOUBLE, &LA.yar_analysis.decision_limits.err, 1, NULL},
    //-----------------------------------
    //params for Park
    //-----------------------------------
    {(char*)"tlhfcs", (char*)"park_cascade_path", CARMEN_PARAM_STRING, &LA.park_analysis.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_park_haar_cascade},
    {(char*)"tlhfcs", (char*)"park_max_cratio", CARMEN_PARAM_DOUBLE, &LA.park_analysis.decision_limits.max_color_ratio, 1, NULL},
    {(char*)"tlhfcs", (char*)"park_max_bratio", CARMEN_PARAM_DOUBLE, &LA.park_analysis.decision_limits.max_black_ratio, 1, NULL},
    {(char*)"tlhfcs", (char*)"park_color_obj", CARMEN_PARAM_DOUBLE, &LA.park_analysis.decision_limits.color_obj, 1, NULL},
    {(char*)"tlhfcs", (char*)"park_bavg_obj", CARMEN_PARAM_DOUBLE, &LA.park_analysis.decision_limits.bavg_obj, 1, NULL},
    {(char*)"tlhfcs", (char*)"park_err", CARMEN_PARAM_DOUBLE, &LA.park_analysis.decision_limits.err, 1, NULL},
};//prepare param struct for this module

#else

extern TYPE_executionflags flags;
extern tlcstm_data_message tl_msg;
extern TYPE_ligths_analysis LA;
extern CvFont Font;
extern CvFont Font1;
extern TYPE_color color_table;
extern TYPE_detected_sign detected_sign;
extern char cascade_filename[1024];

#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent, SIGINT etcr
#ifndef _VSCSHFBA_H_
#define _VSCSHFBA_H_

#define _DO_NOT_USE_OPENCV_ 0
#define _DO_NOT_USE_CARMEN_ 0

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does         #####################################
//####################################################################


#include <lar/vscshfba_interface.h>
#include <lar/tlcstm_messages.h>
#include <lar/soundplayer_interface.h>
#include <cvblobs/BlobResult.h>



//####################################################################
// Typedefs: required typedefs are declared here. All declared types #
// should have TYPE_[the name]          ###############################
//####################################################################


typedef struct
{
    char *filename;
    CvHaarClassifierCascade* classifier;
}TYPE_cascade;


typedef struct
{
    IplImage* img;
    char name[25];
}TYPE_image;


typedef struct
{
    IplImage* src;
    IplImage* gui;

    IplImage* hsv;

    IplImage* red_h;
    IplImage* red_s;
    IplImage* red_v;
    IplImage* red_h_bin;
    IplImage* red_h_bin2;
    IplImage* red_h_bin3;
    IplImage* red_s_bin;
    IplImage* red_v_bin;
    IplImage* red_mask;

    IplImage* white_h;
    IplImage* white_s;
    IplImage* white_v;
    IplImage* white_h_bin;
    IplImage* white_s_bin;
    IplImage* white_v_bin;
    IplImage* white_mask;

    IplImage* black_h;
    IplImage* black_s;
    IplImage* black_v;
    IplImage* black_h_bin;
    IplImage* black_s_bin;
    IplImage* black_v_bin;
    IplImage* black_mask;

    IplImage* blue_h;
    IplImage* blue_s;
    IplImage* blue_v;
    IplImage* blue_h_bin;
    IplImage* blue_s_bin;
    IplImage* blue_v_bin;
    IplImage* blue_mask;

    IplImage* tmp_h;
    IplImage* tmp_s;
    IplImage* tmp_v;

    CvSize imgs_size;
    CvSize look_sign_in_size;
    CvSize gui_size;
    int heigth_updated;
    int use_shm;
}TYPE_imgs;



typedef  struct{
    int red[3]; 
    int green[3];   
    int darkgreen[3];   
    int blue[3];    
    int darkblue[3];    
    int yellow[3];  
    int darkyellow[3];  
    int cyan[3];    
    int darkcyan[3];    
    int orange[3];  
    int magenta[3]; 
    int darkmagenta[3]; 
    int black[3];   
}TYPE_color;

typedef struct
{
    int num_hits;
    double tic;
    double main_color_ratio;
    double num_internal_spots;
    double confidence;
    double moments_ratio;
    int accepted;
    CvPoint center;
    CvRect region;
    IplImage* mask0;
    IplImage* mask1;
    IplImage* mask2;
    IplImage* tmp;
}TYPE_sign_data;

typedef struct
{
    CvSeq* sign_seq;
    CvMemStorage* memstorage;
    CvSize tol_area;
    TYPE_cascade cascade;
    TYPE_sign_data selected_sign; 

    int min_sign_size;
    int max_sign_size;
    int enclosing_size;
    int num_consecutive_hits;
    int aceptance_box;

    double color_obj;
    double color_err;
    double color_max;
    double moment_obj;
    double moment_err;
    double moment_max;
    double overall_confidence;

    char str[10][50];
    char name[10];
}TYPE_sign_analysis;


typedef struct
{
    double num_hits;    
    double color;       
    double moment;      
}TYPE_weights;

//####################################################################
// Prototypes:  for private functions can be declared #################
// in vscshfba.c or preferably in vscshfba_functions.c  ##
//####################################################################
//void handler_load_M1_haar_cascade(void);
void handler_load_W_N_cascade(void);
void handler_load_W_D_cascade(void);
void handler_load_M_B_cascade(void);
void handler_load_M_L_cascade(void);
void handler_load_I_60_cascade(void);
void handler_load_I_H_cascade(void);
void handler_sign_size(void);


void shutdown_module(int x);

void heartbeat_handler_n3(carmen_heartbeat_message *heartbeat_msg);
void handler_sign_in_height_update(void);
void init_color_table(TYPE_color* p);

//file vscshfba_functions.cpp
void detect_haar_signal(TYPE_sign_analysis* sign_analysis, IplImage* src, IplImage* dst, TYPE_executionflags* flgs, int* color_cross, int* color_box);
void set_imageROIs(TYPE_imgs* imgs, CvRect* roi, char flg_set_roi);
void check_mask_size(TYPE_sign_data* sign, CvSize* size);
void draw_cross(IplImage *src,int line,int column,int lenght, int *color);
void reset_imageROIs(TYPE_imgs* imgs);
void check_haar_feature_tic(TYPE_sign_analysis* sign_analysis, double* num_cycles);
void draw_gui_sign_data(IplImage* src, int* lx, int* ly, int img_height, CvFont* tmp_font, int* color_line, int* color_text, TYPE_sign_analysis* sign, int x_space);
void set_cam_params(int x);
void confirm_sign_tipology(TYPE_sign_analysis* sign_analysis, TYPE_imgs* imgs, TYPE_color_lim* color_lim, TYPE_weights* weights, TYPE_executionflags* flgs, int flg_ROIS);
void show_masks(TYPE_sign_analysis* sign_analysis, TYPE_executionflags* flgs, int* start_x_pos, int* start_y_pos, int step);

//functions prototype implemented in main file vscshfba.cpp
int get_image_from_camera3(IplImage* dst, int* update_size, int* heart_beat, CvSize* cap_img_size);
void set_cam_params(int x);

#define AVG(a, b) (((a)+(b))/2)
//#define MAX(a, b) ((a>b)? (a) : (b))
//#define MIN(a, b) ((a>b)? (b) : (a))
#define SET_RED_ROI 0b00000001
#define SET_WHITE_ROI 0b00000010
#define SET_BLACK_ROI 0b00000100
#define SET_BLUE_ROI 0b00001000
#define NUM_OF_CYCLES 10

//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
#ifdef _VSCSHFBA_CPP_ /*or _VSCSHFBA_C_, depends on the file type*/


//TYPE_detected_sign detected_sign;

TYPE_cascade cascade;

TYPE_color color_table;

TYPE_acl_color_limits color_limits;


TYPE_sign_analysis W_DA, W_NA; 
TYPE_sign_analysis I_60A, I_HA; 
TYPE_sign_analysis M_BA, M_LA; 

TYPE_sign_data* sign_check;
TYPE_sign_data* accepted_sign;
char sign_name_detected[50];
char searching[50];
CvMoments cent_moments;

CBlobResult *blobs;
double res;     
char cascade_filename[1024];
double cycle_freq;
c_timer timer;
CvFont Font;
CvFont Font1;
CvFont Font2;

TYPE_imgs imgs;

int updated_size;
TYPE_weights weight;


int firei_n3_msg_heart_beat = 0;
double ts;
camera_image_message c3;
int c3_alloc=1;
IplImage* image_cam3 = cvCreateImage(cvSize(320,240), IPL_DEPTH_8U , 3);


soundplayer_command_message sound_msg;
vscshfba_command_message command;
vscshfba_data_message vscshfba_msg;


TYPE_executionflags flags; //the command line parameters flags

c_videosaving* videosaving;


//write int gui image all info required
int lx=0;
int ly = 0;
int step = 0;

int wind_pos_x = 0;
int wind_pos_y = 0;

//char str0[40], str1[40];

IplConvKernel* morph_element;


carmen_param_t module_refresh_params[] = {
    {(char*)"freq", (char*)"vscshfba", CARMEN_PARAM_DOUBLE, &cycle_freq, 1, NULL},
};

carmen_param_t acl_colordetection_params[] = {
    {(char*)"acl", (char*)"red_H_max", CARMEN_PARAM_DOUBLE, &color_limits.red.maxH, 1, NULL},
    {(char*)"acl", (char*)"red_H_min", CARMEN_PARAM_DOUBLE, &color_limits.red.minH, 1, NULL},
    {(char*)"acl", (char*)"red_S_max", CARMEN_PARAM_DOUBLE, &color_limits.red.maxS, 1, NULL},
    {(char*)"acl", (char*)"red_S_min", CARMEN_PARAM_DOUBLE, &color_limits.red.minS, 1, NULL},
    {(char*)"acl", (char*)"red_V_max", CARMEN_PARAM_DOUBLE, &color_limits.red.maxV, 1, NULL},
    {(char*)"acl", (char*)"red_V_min", CARMEN_PARAM_DOUBLE, &color_limits.red.minV, 1, NULL},

    {(char*)"acl", (char*)"white_H_max", CARMEN_PARAM_DOUBLE, &color_limits.white.maxH, 1, NULL},
    {(char*)"acl", (char*)"white_H_min", CARMEN_PARAM_DOUBLE, &color_limits.white.minH, 1, NULL},
    {(char*)"acl", (char*)"white_S_max", CARMEN_PARAM_DOUBLE, &color_limits.white.maxS, 1, NULL},
    {(char*)"acl", (char*)"white_S_min", CARMEN_PARAM_DOUBLE, &color_limits.white.minS, 1, NULL},
    {(char*)"acl", (char*)"white_V_max", CARMEN_PARAM_DOUBLE, &color_limits.white.maxV, 1, NULL},
    {(char*)"acl", (char*)"white_V_min", CARMEN_PARAM_DOUBLE, &color_limits.white.minV, 1, NULL},

    {(char*)"acl", (char*)"black_H_max", CARMEN_PARAM_DOUBLE, &color_limits.black.maxH, 1, NULL},
    {(char*)"acl", (char*)"black_H_min", CARMEN_PARAM_DOUBLE, &color_limits.black.minH, 1, NULL},
    {(char*)"acl", (char*)"black_S_max", CARMEN_PARAM_DOUBLE, &color_limits.black.maxS, 1, NULL},
    {(char*)"acl", (char*)"black_S_min", CARMEN_PARAM_DOUBLE, &color_limits.black.minS, 1, NULL},
    {(char*)"acl", (char*)"black_V_max", CARMEN_PARAM_DOUBLE, &color_limits.black.maxV, 1, NULL},
    {(char*)"acl", (char*)"black_V_min", CARMEN_PARAM_DOUBLE, &color_limits.black.minV, 1, NULL},

    {(char*)"acl", (char*)"blue_H_max", CARMEN_PARAM_DOUBLE, &color_limits.blue.maxH, 1, NULL},
    {(char*)"acl", (char*)"blue_H_min", CARMEN_PARAM_DOUBLE, &color_limits.blue.minH, 1, NULL},
    {(char*)"acl", (char*)"blue_S_max", CARMEN_PARAM_DOUBLE, &color_limits.blue.maxS, 1, NULL},
    {(char*)"acl", (char*)"blue_S_min", CARMEN_PARAM_DOUBLE, &color_limits.blue.minS, 1, NULL},
    {(char*)"acl", (char*)"blue_V_max", CARMEN_PARAM_DOUBLE, &color_limits.blue.maxV, 1, NULL},
    {(char*)"acl", (char*)"blue_V_min", CARMEN_PARAM_DOUBLE, &color_limits.blue.minV, 1, NULL},
    }; 


carmen_param_t vscshfba_camera_params[] = {
    {(char*)"camera1", (char*)"imagewidth", CARMEN_PARAM_INT, &imgs.imgs_size.width, 1, NULL},
    {(char*)"camera1", (char*)"imageheight", CARMEN_PARAM_INT, &imgs.imgs_size.height, 1, NULL},

};

carmen_param_t vscshfba_params[] = {
    {(char*)"vscshfba", (char*)"sign_in_height", CARMEN_PARAM_INT, &updated_size, 1, _cast_to_carmen_param_change_handler_t_ handler_sign_in_height_update},

    {(char*)"vscshfba", (char*)"weight_color", CARMEN_PARAM_DOUBLE, &weight.color, 1, NULL},
    {(char*)"vscshfba", (char*)"weight_moment", CARMEN_PARAM_DOUBLE, &weight.moment, 1, NULL},
    {(char*)"vscshfba", (char*)"weight_num_hits", CARMEN_PARAM_DOUBLE, &weight.num_hits, 1, NULL},

    //data for information recommended speed 60
    {(char*)"vscshfba", (char*)"info_60_color_obj", CARMEN_PARAM_DOUBLE, &I_60A.color_obj, 1, NULL},
    {(char*)"vscshfba", (char*)"info_60_color_max", CARMEN_PARAM_DOUBLE, &I_60A.color_max, 1, NULL},
    {(char*)"vscshfba", (char*)"info_60_moment_obj", CARMEN_PARAM_DOUBLE, &I_60A.moment_obj, 1, NULL},
    {(char*)"vscshfba", (char*)"info_60_moment_max", CARMEN_PARAM_DOUBLE, &I_60A.moment_max, 1, NULL},
    {(char*)"vscshfba", (char*)"info_60_aceptance", CARMEN_PARAM_DOUBLE, &I_60A.overall_confidence, 1, NULL},
    {(char*)"vscshfba", (char*)"info_60_cascade", CARMEN_PARAM_STRING, &I_60A.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_I_60_cascade},

    //data for information hospital near
    {(char*)"vscshfba", (char*)"info_H_color_obj", CARMEN_PARAM_DOUBLE, &I_HA.color_obj, 1, NULL},
    {(char*)"vscshfba", (char*)"info_H_color_max", CARMEN_PARAM_DOUBLE, &I_HA.color_max, 1, NULL},
    {(char*)"vscshfba", (char*)"info_H_moment_obj", CARMEN_PARAM_DOUBLE, &I_HA.moment_obj, 1, NULL},
    {(char*)"vscshfba", (char*)"info_H_moment_max", CARMEN_PARAM_DOUBLE, &I_HA.moment_max, 1, NULL},
    {(char*)"vscshfba", (char*)"info_H_aceptance", CARMEN_PARAM_DOUBLE, &I_HA.overall_confidence, 1, NULL},
    {(char*)"vscshfba", (char*)"info_H_cascade", CARMEN_PARAM_STRING, &I_HA.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_I_H_cascade},


    {(char*)"vscshfba", (char*)"mand_bus_color_obj", CARMEN_PARAM_DOUBLE, &M_BA.color_obj, 1, NULL},
    {(char*)"vscshfba", (char*)"mand_bus_color_max", CARMEN_PARAM_DOUBLE, &M_BA.color_max, 1, NULL},
    {(char*)"vscshfba", (char*)"mand_bus_moment_obj", CARMEN_PARAM_DOUBLE, &M_BA.moment_obj, 1, NULL},
    {(char*)"vscshfba", (char*)"mand_bus_moment_max", CARMEN_PARAM_DOUBLE, &M_BA.moment_max, 1, NULL},
    {(char*)"vscshfba", (char*)"mand_bus_aceptance", CARMEN_PARAM_DOUBLE, &M_BA.overall_confidence, 1, NULL},
    {(char*)"vscshfba", (char*)"mand_bus_cascade", CARMEN_PARAM_STRING, &M_BA.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_M_B_cascade},

    {(char*)"vscshfba", (char*)"mand_lights_color_obj", CARMEN_PARAM_DOUBLE, &M_LA.color_obj, 1, NULL},
    {(char*)"vscshfba", (char*)"mand_lights_color_max", CARMEN_PARAM_DOUBLE, &M_LA.color_max, 1, NULL},
    {(char*)"vscshfba", (char*)"mand_lights_moment_obj", CARMEN_PARAM_DOUBLE, &M_LA.moment_obj, 1, NULL},
    {(char*)"vscshfba", (char*)"mand_lights_moment_max", CARMEN_PARAM_DOUBLE, &M_LA.moment_max, 1, NULL},
    {(char*)"vscshfba", (char*)"mand_lights_aceptance", CARMEN_PARAM_DOUBLE, &M_LA.overall_confidence, 1, NULL},
    {(char*)"vscshfba", (char*)"mand_lights_cascade", CARMEN_PARAM_STRING, &M_LA.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_M_L_cascade},

    {(char*)"vscshfba", (char*)"warn_dip_color_obj", CARMEN_PARAM_DOUBLE, &W_DA.color_obj, 1, NULL},
    {(char*)"vscshfba", (char*)"warn_dip_color_max", CARMEN_PARAM_DOUBLE, &W_DA.color_max, 1, NULL},
    {(char*)"vscshfba", (char*)"warn_dip_moment_obj", CARMEN_PARAM_DOUBLE, &W_DA.moment_obj, 1, NULL},
    {(char*)"vscshfba", (char*)"warn_dip_moment_max", CARMEN_PARAM_DOUBLE, &W_DA.moment_max, 1, NULL},
    {(char*)"vscshfba", (char*)"warn_dip_aceptance", CARMEN_PARAM_DOUBLE, &W_DA.overall_confidence, 1, NULL},
    {(char*)"vscshfba", (char*)"warn_dip_cascade", CARMEN_PARAM_STRING, &W_DA.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_W_D_cascade},

    {(char*)"vscshfba", (char*)"warn_narrow_color_obj", CARMEN_PARAM_DOUBLE, &W_NA.color_obj, 1, NULL},
    {(char*)"vscshfba", (char*)"warn_narrow_color_max", CARMEN_PARAM_DOUBLE, &W_NA.color_max, 1, NULL},
    {(char*)"vscshfba", (char*)"warn_narrow_moment_obj", CARMEN_PARAM_DOUBLE, &W_NA.moment_obj, 1, NULL},
    {(char*)"vscshfba", (char*)"warn_narrow_moment_max", CARMEN_PARAM_DOUBLE, &W_NA.moment_max, 1, NULL},
    {(char*)"vscshfba", (char*)"warn_narrow_aceptance", CARMEN_PARAM_DOUBLE, &W_NA.overall_confidence, 1, NULL},
    {(char*)"vscshfba", (char*)"warn_narrow_cascade", CARMEN_PARAM_STRING, &W_NA.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_W_N_cascade},

    {(char*)"vscshfba", (char*)"sign_min_size", CARMEN_PARAM_INT, &W_NA.min_sign_size, 1, _cast_to_carmen_param_change_handler_t_ handler_sign_size},
    {(char*)"vscshfba", (char*)"sign_max_size", CARMEN_PARAM_INT, &W_NA.max_sign_size, 1, _cast_to_carmen_param_change_handler_t_ handler_sign_size},

    {(char*)"vscshfba", (char*)"enclosing_size", CARMEN_PARAM_INT, &W_NA.enclosing_size, 1, _cast_to_carmen_param_change_handler_t_ handler_sign_size},
    {(char*)"vscshfba", (char*)"aceptance_box", CARMEN_PARAM_INT, &W_NA.aceptance_box, 1, _cast_to_carmen_param_change_handler_t_ handler_sign_size},
};

#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent, SIGINT etcr
x the SIGNAL
Todo:
many modules use this. Should be an util library.
Parameters:
x the SIGNAL
Todo:
many modules use this. Should be an util library.
Parameters:
in,: x the type of intercepted signal, SIGINT
#ifndef _EGOMOTIONGPSIMU_H_
#define _EGOMOTIONGPSIMU_H_

#define _DO_NOT_USE_OPENCV_ 0
#define _DO_NOT_USE_CARMEN_ 0

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does         #####################################
//####################################################################

#include <lar/egomotiongpsimu_interface.h>
#include<amlpp/amlpp.h>
#include <gtk/gtk.h>

using namespace amlpp;

//####################################################################
// Typedefs: required typedefs are declared here. All declared types #
// should have TYPE_[the name]          ###############################
//####################################################################


// Class used to create the nonlinear observer objects
class Observer
{
    // the observer gains
    RealMatrix k11;
    RealMatrix k12;
   
    RealMatrix k21;
    RealMatrix k22; 
   
    RealMatrix k31;
    RealMatrix k32;

    RealMatrix Gain;
    RealMatrix GainWGPS;
    RealMatrix GainWOGPS;
   
    // the observer states 
    RealMatrix State;
    RealMatrix StateDot;
    RealMatrix Residual;
   
    // validity of the GPS measurement
    bool GPSisValid;
   
    //Transformation matrices
    RealMatrix R33_b2n;
    RealMatrix R33_n2b;
    RealMatrix T33_b2n;
       
  public:
    Observer();
    ~Observer(){};
    RealMatrix NlinObsStateUpdateV1(RealMatrix Measurements, Real Tb, Real deltaT);
    void NlinObsSetGain(); // set the Observer Gain
    void NlinObsChooseGainOnGPSValidity(bool GPSisValid); // Choose among applicable gains with and without GPS
    void NlinObsSetK(const char *ktype, double kval); // Set the individual Gain Matrices.
    void CalcRotationMatrix(double psi, double theta, double phi); // calculate the rotation matrix based on the Euler angles (Cardan Sequence)
    void NlinObsSetInitalCondition(RealMatrix Measurements);
};

//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
#ifdef _EGOMOTIONGPSIMU_CPP_

//####################################################################
// Prototypes:  for private functions can be declared #################
// in egomotiongpsimu.c or preferably in egomotiongpsimu_functions.c  ##
//####################################################################
int main(int argc, char **argv);
void shutdown_module(int x);
void shutdown_module_noIPC(int x);
void handler_param_daemon(char *a, char *b, char *c);

void drawGPSpoints(IplImage*img, int x, int y);
void drawEstimatedpoints(IplImage*img, int x, int y);

//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################

TYPE_executionflags flags; //the command line parameters flags
egomotiongpsimu_data_message msg; //this is a structure
TYPE_egomotiongpsimu_public_params params; //this is a structure

bool gprmc_update = FALSE;
bool gpgga_update = FALSE;
bool xsense_update = FALSE;
bool GPSisValid = FALSE;


//creates a the default structure that will deal with retrieved parameters.
// explain fields (use a handler whenever a parameter changes)
// the values in the field egomotiongpsimu_data_param_shared_var, from lar.ini, will be installed in var1
// the var type is an integer: CARMEN_PARAM_INT
// carmen_param_t egomotiongpsimu_local_parameters[] = {
//  {(char*)"egomotiongpsimu", (char*)"shared_var", CARMEN_PARAM_INT, &msg.var1, 1, handler_param_daemon}
//      }; //prepare param struct

#else 



extern TYPE_executionflags flags;
extern egomotiongpsimu_data_message msg;
extern TYPE_egomotiongpsimu_public_params params;
extern void shutdown_module(int x);

#ifdef _EGOMOTIONGPSIMU_FUNCTIONS_CPP_

Real g_arr[] = {0,0,-9.81}; // acceleration of gravity on a (North West Up) NWU reference frame
RealMatrix g(g_arr,3,1); // put the array into a matrix for further calculations


// #else
// extern components egointerface;
// extern void next_handler( GtkWidget *widget, gpointer   data );
// extern void previous_handler( GtkWidget *widget,gpointer   data );
// extern gboolean delete_event( GtkWidget *widget,GdkEvent  *event,gpointer   data );
// extern void destroy( GtkWidget *widget,gpointer   data );
// extern void createWindow();
// extern void createButtons();
// extern void layoutWidgets();
// extern void show();
// extern void draw_brush (GtkWidget *widget, gdouble x, gdouble y);
// extern gboolean expose_event( GtkWidget *widget, GdkEventExpose *event );
// extern gboolean configure_event( GtkWidget *widget, GdkEventConfigure *event );
// extern gboolean button_press_event( GtkWidget *widget, GdkEventButton *event );
// extern gboolean motion_notify_event( GtkWidget *widget, GdkEventMotion *event );
// extern void createDrawingArea();
 #endif

#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent: SIGINT etc
#ifndef _LASERPROJECTIONONIMAGE_H_
#define _LASERPROJECTIONONIMAGE_H_

#define _DO_NOT_USE_OPENCV_ 0
#define _DO_NOT_USE_CARMEN_ 0

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does         #####################################
//####################################################################

#include <lar/laserprojectiononimage_interface.h>


//####################################################################
// Typedefs: required typedefs are declared here. All declared types #
// should have TYPE_[the name]          ###############################
//####################################################################


//####################################################################
// Prototypes:  for private functions can be declared #################
// in laserprojectiononimage.c or preferably in laserprojectiononimage_functions.c  ##
//####################################################################
int main(int argc, char **argv);
void shutdown_module(int x);
void handler_param_daemon(char *a, char *b, char *c);
void project_pointcloud_to_image(xb3_3dpointcloud_message *pointcloud, int cam_number, double pan, double tilt, IplImage *dst, unsigned char r=255, unsigned char g=0,unsigned char b=0);

//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
#ifdef _LASERPROJECTIONONIMAGE_CPP_ /*or _LASERPROJECTIONONIMAGE_C_, depends on the file type*/


//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
//mike confusion, uses a message structure to install parameters. message and parameters should not be different?


TYPE_executionflags flags; //the command line parameters flags
camera_image_message msg_flea2;
IplImage* image;
camera_image_message msg_flea2_c1;
IplImage* image_c1;
xb3_3dpointcloud_message pointcloud_msg_hokuyo;
xb3_3dpointcloud_message pointcloud_msg_3dlaser;
carmen_ptucontrol_status_message ptu_status;
#else

extern TYPE_executionflags flags;
extern camera_image_message msg_flea2;
extern IplImage* image;
extern camera_image_message msg_flea2_c1;
extern IplImage* image_c1;
extern xb3_3dpointcloud_message pointcloud_msg_hokuyo;
extern xb3_3dpointcloud_message pointcloud_msg_3dlaser;
extern carmen_ptucontrol_status_message ptu_status;
#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent: SIGINT etc
#ifndef _GPS_H_
#define _GPS_H_

#define _DO_NOT_USE_OPENCV_ 0
#define _DO_NOT_USE_CARMEN_ 0

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does         ##############################################
//####################################################################

//from gps-io.c
#include <lar/gps_interface.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <math.h>
#include <unistd.h>
#include <termios.h>
#include <fcntl.h>
#include <sys/signal.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/ioctl.h>

//from old gps.h
#define MAX_NAME_LENGTH                256
#define MAX_COMMAND_LENGTH             256
#define EPSILON                     0.0001
#define TIMEOUT                         -1
#define WRONG                            0
#define OK                               1

//from old gps-io.c
#define DEFAULT_GPS_PORT      "/dev/ttyUSB0"
#define DEFAULT_GPS_BAUD      4800
#define DEFAULT_GPS_PARITY    NO
#define DEFAULT_GPS_DATABITS  8
#define DEFAULT_GPS_STOPBITS  1
#define DEFAULT_GPS_HWF       1
#define DEFAULT_GPS_SWF       0
#define BUFFER_LENGTH         512

//####################################################################
// Typedefs: required typedefs are declared here. All declared types #
// should have TYPE_[the name]          ##############################
//####################################################################
enum PARITY_TYPE   { NO, EVEN, ODD };

typedef struct {
  char                       ttyport[MAX_NAME_LENGTH];
  int                        baud;
  enum PARITY_TYPE           parity;
  FILE *                     fp;
  int                        fd;
  int                        databits;
  int                        stopbits;
  int                        hwf;
  int                        swf;
} SerialDevice;

//####################################################################
// Prototypes:  for private functions can be declared ################
// in gps.c or preferably in gps_functions.c  ##
//####################################################################
int main(int argc, char **argv);
void shutdown_module(int x);
void handler_param_daemon(char *a, char *b, char *c);
int carmen_gps_parse_data( char * line, int num_chars );
void DEVICE_set_params( SerialDevice dev );
void DEVICE_set_baudrate( SerialDevice dev, int brate );
int DEVICE_connect_port( SerialDevice *dev );
int DEVICE_send( SerialDevice dev, unsigned char *cmd, int len );
int DECVICE_recieve( SerialDevice dev, unsigned char *cmd, int *len );
int DEVICE_read_data( SerialDevice dev );
int DEVICE_bytes_waiting( int sd );
void DEVICE_init_params( SerialDevice *p );


#ifdef _GPS_CPP_ /*or _GPS_C_, depends on the file type*/

//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################

TYPE_executionflags flags; //the command line parameters flags
char* comport;
int baudrate;
gps_gpgga_data_message gpgga_msg; //this is a structure
gps_gprmc_data_message gprmc_msg; //this is a structure
gps_gpgga_data_message *gps_extern_gpgga_ptr; //this are pointers to the structure
gps_gprmc_data_message *gps_extern_gprmc_ptr; //this are pointers to the structure

carmen_param_t gps_params[] = {
    {(char*)"gps", (char*)"comport", CARMEN_PARAM_STRING, &comport, 0, NULL},
    {(char*)"gps", (char*)"baudrate", CARMEN_PARAM_INT, &baudrate, 0, NULL}
    }; //prepare param struct

#else

extern TYPE_executionflags flags;
extern gps_gpgga_data_message gpgga_msg; //this is a structure
extern gps_gprmc_data_message gprmc_msg; //this is a structure
extern gps_gpgga_data_message * gps_extern_gpgga_ptr;
extern gps_gprmc_data_message * gps_extern_gprmc_ptr;

#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent: SIGINT etc
interrupt signal
Returns:
void
#ifndef _XSENS_H_
#define _XSENS_H_

#define _DO_NOT_USE_OPENCV_ 0
#define _DO_NOT_USE_CARMEN_ 0

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does         #####################################
//####################################################################

#include <lar/xsens_interface.h>
#include <curses.h>
#include "cmtdef.h"
#include "xsens_time.h"
#include "xsens_list.h"
#include "cmtscan.h"
#include "cmt3.h"
#include "example_linux.h"
// this macro tests for an error and exits the program with a message if there was one
#define EXIT_ON_ERROR(res,comment) if (res != XRV_OK) { printw("Error %d occurred in " comment ": %s\n",res,xsensResultText(res)); exit(1); }

using namespace xsens;

//####################################################################
// Typedefs: required typedefs are declared here. All declared types #
// should have TYPE_[the name]          ###############################
//####################################################################


//####################################################################
// Prototypes:  for private functions can be declared #################
// in xsens.c or preferably in xsens_functions.c  ##
//####################################################################
int main(int argc, char **argv);
void shutdown_module(int x);
void handler_param_daemon(char *a, char *b, char *c);

//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
#ifdef _XSENS_CPP_ /*or _XSENS_C_, depends on the file type*/

TYPE_executionflags flags; //the command line parameters flags
xsens_data_message data_msg;
// TYPE_xsens_public_params params;
char *comport;
Packet* packet;
xsens::Cmt3 cmt3; //create an xsens structure

carmen_param_t xsens_params[] = {
    {(char*)"xsens", (char*)"comport", CARMEN_PARAM_STRING, &comport, 0, NULL}
//  {(char*)"xsens", (char*)"comport", CARMEN_PARAM_STRING, &msg.comport, 0, NULL}
    }; //prepare param struct

#else

extern TYPE_executionflags flags;
extern xsens_data_message msg;
// extern TYPE_xsens_public_params params;
extern char *comport;
extern Packet* packet;
extern xsens::Cmt3 cmt3; //create an xsens structure

#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent, SIGINT etcr
x the SIGNAL
Todo:
many modules use this. Should be an util library.
Parameters:
x the SIGNAL
Todo:
many modules use this. Should be an util library.
#ifndef _ACL_H_
#define _ACL_H_

#define _DO_NOT_USE_OPENCV_ 0
#define _DO_NOT_USE_CARMEN_ 0

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does         #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/acl_interface.h>


//####################################################################
// Typedefs: required typedefs are declared here. All declared types #
// should have TYPE_[the name]          ###############################
//####################################################################
#define MAX_PTS 4
#define MAX_REGIONS 10
#define NUM_FOR_AVG_CALC 25

typedef struct
{
    double avg;
    double std;
    double minVal, maxVal;
}TYPE_color_values;


typedef struct {
    CvPoint pts[MAX_PTS];
    int num_pts;
    char name[20];
    TYPE_color_values h_values, v_values, s_values;
    IplImage* mask;
    IplImage* img_debug;

    CvMemStorage* mem_storage;
    CvSeq* hsv_lim_seq;
}TYPE_region;



typedef struct{
    TYPE_region* region[MAX_REGIONS];
    int num_regions;
    CvSize src_img_size;
    double times_std;
    double move_avg;

    IplImage* src;
    IplImage* gui;
    IplImage* hsv;
    IplImage* h;
    IplImage* s;
    IplImage* v;
}TYPE_pts_mask;

typedef struct
{
    double h_min;
    double h_max;
    double s_min;
    double s_max;
    double v_min;
    double v_max;
}TYPE_hsv_avg_std;

//####################################################################
// Prototypes:  for private functions can be declared #################
// in acl.c or preferably in acl_functions.c  ##
//####################################################################
void heartbeat_handler_n3(carmen_heartbeat_message *heartbeat_msg);
int main(int argc, char **argv);
void shutdown_module(int x);

void set_mask(IplImage* src, TYPE_region* region, TYPE_executionflags* flg);
void draw_bound(IplImage* src, TYPE_region* region);

int load_pts(char *file_name, TYPE_pts_mask* mask);
void get_values(char *str, TYPE_region* region, int start);
void read_line(FILE* buffer,char *line);

//####################################################################
// Global vars: They will be in the scope of modulename.c main's #####
// otherwise are declared extern #####################################
//####################################################################
#ifdef _ACL_CPP_ /*or _ACL_C_, depends on the file type*/

#define saturatemax(val,max) ((val)>(max) ?( max) :( val))
#define saturatemin(val,min) ((val)<(min) ?( min) :( val))
#define AVG(a,b) ((a+b)/2.0)


TYPE_pts_mask pts_mask;
TYPE_region* actual_region;
CvPoint pts[MAX_PTS];

TYPE_acl_color_limits color_limits;


TYPE_hsv_avg_std tmp_hsv_avg_std;


CvFont Font;

int num_pts=-1;

char filename[1024];
FILE* file_data;



camera_image_message c3;
int c3_alloc=1;

char firei_n3_msg_heart_beat = 0;

c_timer timer;
double ts;

int cycle_freq;

TYPE_executionflags flags; //the command line parameters flags
acl_data_message msg;

carmen_param_t module_refresh_params[] = {
    {(char*)"freq", (char*)"acl", CARMEN_PARAM_INT, &cycle_freq, 1, NULL},
};

carmen_param_t acl_camera_params[] = {
    {(char*)"camera3", (char*)"imagewidth", CARMEN_PARAM_INT, &pts_mask.src_img_size.width, 1, NULL},
    {(char*)"camera3", (char*)"imageheight", CARMEN_PARAM_INT, &pts_mask.src_img_size.height, 1, NULL},
};//prepare param struct from the image that camera3 will give

carmen_param_t acl_params[] = {
    {(char*)"acl", (char*)"times_std", CARMEN_PARAM_DOUBLE, &pts_mask.times_std, 1, NULL},
    {(char*)"acl", (char*)"move_avg", CARMEN_PARAM_DOUBLE, &pts_mask.move_avg, 1, NULL},
    }; //prepare param struct
#else

extern TYPE_executionflags flags;
extern acl_data_message msg;

#endif

#endif

Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.

Parameters:
x the type of signal sent, SIGINT etcr

makes a clean shutdown of the program

Disconnects from ipc and releases video writer

Parameters:
x Signal value. To shutdown signal must be SIGINT
shutdown_module_noIPC ( int  x  ) 

Safe shutdown when IPC is not active, i.e. internally generated bogus data.

Parameters:
x the type of signal sent: SIGINT etc
RealMatrix Tbody2earth ( double  psi,
double  theta,
double  phi 
)

Transforms angular velocity in the body reference frame into the earth reference frame (Cardan sequence).

Parameters:
psi yaw angle
theta pitch angle
phi roll angle
static gboolean where_we_are ( GtkWidget *  widget,
gpointer  data 
) [static]

References abs(), buf(), drawGPSpoint(), _components::drawingArea, ext, height, egomotiongpsimu_data_message::latitude, egomotiongpsimu_data_message::longitude, TRUE, and width.

Referenced by createButtons().

Here is the call graph for this function:

Here is the caller graph for this function:

static void zoom_extents ( GtkWidget *  widget,
gpointer  data 
) [static]

References buf(), _components::drawingArea, ext, height, _components::pixMap, and width.

Referenced by createButtons().

Here is the call graph for this function:

Here is the caller graph for this function:

static gboolean zoom_in ( GtkWidget *  widget,
gpointer  data 
) [static]

References buf(), _components::drawingArea, ext, height, _components::pixMap, TRUE, and width.

Referenced by createButtons().

Here is the call graph for this function:

Here is the caller graph for this function:

static gboolean zoom_out ( GtkWidget *  widget,
gpointer  data 
) [static]

References buf(), _components::drawingArea, ext, height, _components::pixMap, TRUE, and width.

Referenced by createButtons().

Here is the call graph for this function:

Here is the caller graph for this function:

static gboolean zoom_window ( GtkWidget *  widget,
gpointer  data 
) [static]

References buf(), _components::drawingArea, ext, height, nbuttonpresses, _components::pixMap, TRUE, width, x_zoom_w_1, x_zoom_w_2, y_zoom_w_1, and y_zoom_w_2.

Referenced by createButtons().

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

mapnik::Envelope<double> ext

Include the interface.

#ifndef _FOVEATIONCONTROL_INTERFACE_H_
#define _FOVEATIONCONTROL_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/foveationcontrol_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef TYPE_xbcameratmatrix_params TYPE_foveationcontrolmatrix_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int foveationcontrol_publish_pointto_xyz(foveationcontrol_pointto_xyz_message *msg);
int foveationcontrol_subscribe_pointto_xyz(foveationcontrol_pointto_xyz_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void param_daemon_install_foveationcontrolmatrix_params(TYPE_foveationcontrolmatrix_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _POWERMANAGER_INTERFACE_H_
#define _POWERMANAGER_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/powermanager_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


typedef enum {
            Y0_LAS0 = 130,
            Y1_PTU,
            Y2_R1394_0,
            Y3_BUMBLEBEE,
            Y4_NA,
            Y5_NA,
            Y6_NA,
            Y7_NA,
            Y10_ROUTER,
            Y11_SWITCH,
            Y12_GPS,
            Y13_NA
            }ENUM_plc_outputs;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int powermanager_publish_status(powermanager_status_message *msg);
int powermanager_subscribe_status(powermanager_status_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int powermanager_turn_on(ENUM_plc_outputs output);
int powermanager_turn_off(ENUM_plc_outputs output);
int powermanager_reset(ENUM_plc_outputs output);
int powermanager_subscribe_command(powermanager_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);


#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _XBEE_INTERFACE_H_
#define _XBEE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                 #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/xbee_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_xbee_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int xbee_publish_rx_data(xbee_rx_data_message *msg);
int xbee_subscribe_rx_data(xbee_rx_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int xbee_publish_tx_data(xbee_tx_data_message *msg);
int xbee_subscribe_tx_data(xbee_tx_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void xbee_param_daemon_install_public_parameters(TYPE_xbee_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _MODULETEMPLATE_INTERFACE_H_
#define _MODULETEMPLATE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/moduletemplate_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_moduletemplate_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int moduletemplate_publish_data(moduletemplate_data_message *msg);
int moduletemplate_subscribe_data(moduletemplate_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void moduletemplate_param_daemon_install_public_parameters(TYPE_moduletemplate_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

Include the interface.

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif
#ifndef _AGENT_BEHAVIOUR_INTERFACE_H_
#define _AGENT_BEHAVIOUR_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/agent_behaviour_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_agent_behaviour_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int agent_behaviour_publish_data(agent_behaviour_data_message *msg);
int agent_behaviour_subscribe_data(agent_behaviour_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int agent_behaviour_publish_virtual_sensors_data(agent_behaviour_virtual_sensors_data_message *msg);
int agent_behaviour_subscribe_virtual_sensors_data(agent_behaviour_virtual_sensors_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void agent_behaviour_param_daemon_install_some_params(TYPE_agent_behaviour_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _AGENT_CLEARANCE_INTERFACE_H_
#define _AGENT_CLEARANCE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/agent_clearance_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
// typedef struct{
//  double sleeptime;       /**< looptime is the best loop time of the module. It may be a slower time but if its faster it should carmen_ipc_sleep until this time passes.*/
//  char otherparam;        /**< some other param to be installed*/
// } TYPE_agent_clearance_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int agent_clearance_publish_distance_data(agent_clearance_distance_data_message *msg);
int agent_clearance_subscribe_distance_data(agent_clearance_distance_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void agent_clearance_param_daemon_install_some_params(TYPE_agent_clearance_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _AGENT_TRACKER_INTERFACE_H_
#define _AGENT_TRACKER_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/agent_tracker_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_agent_tracker_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int agent_tracker_publish_data(agent_tracker_data_message *msg);
int agent_tracker_subscribe_data(agent_tracker_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int agent_tracker_publish_virtual_sensors_data(agent_tracker_virtual_sensors_data_message *msg);
int agent_tracker_subscribe_virtual_sensors_data(agent_tracker_virtual_sensors_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void agent_tracker_param_daemon_install_some_params(TYPE_agent_tracker_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _TLHFCS_INTERFACE_H_
#define _TLHFCS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/tlhfcs_messages.h>
#include <lar/imageprocessing.h>


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
// * @brief This is a test message, Here you insert the description of the entity, in this case the struct.
// */
//typedef struct{
//  double sleeptime;       /**< looptime is the best loop time of the module. It may be a slower time but if its faster it should carmen_ipc_sleep until this time passes.*/
//  char otherparam;        /**< some other param to be installed*/
//} TYPE_tlhfcs_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

//int tlhfcs_publish_information(tlhfcs_information_message *msg);
//int tlhfcs_subscribe_information(tlhfcs_information_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void tlhfcs_param_daemon_install_some_params(TYPE_tlhfcs_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _TLHFCS_INTERFACE_H_
#define _TLHFCS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/tlhfcs_messages.h>
#include <lar/imageprocessing.h>


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
// * @brief This is a test message, Here you insert the description of the entity, in this case the struct.
// */
//typedef struct{
//  double sleeptime;       /**< looptime is the best loop time of the module. It may be a slower time but if its faster it should carmen_ipc_sleep until this time passes.*/
//  char otherparam;        /**< some other param to be installed*/
//} TYPE_tlhfcs_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

//int tlhfcs_publish_information(tlhfcs_information_message *msg);
//int tlhfcs_subscribe_information(tlhfcs_information_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void tlhfcs_param_daemon_install_some_params(TYPE_tlhfcs_public_params *p, int subscribe_changes, int verbose);

#endif

Include the interface.

#ifndef _VSCSHFBA_INTERFACE_H_
#define _VSCSHFBA_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/vscshfba_messages.h>
#include <lar/imageprocessing.h>


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int vscshfba_subscribe_data(vscshfba_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int vscshfba_publish_data(vscshfba_data_message *msg);
void vscshfba_subscribe_command_message(vscshfba_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void vscshfba_publish_command_message(vscshfba_command_message *msg);

#endif

#ifndef _VSCSHFBA_INTERFACE_H_
#define _VSCSHFBA_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/vscshfba_messages.h>
#include <lar/imageprocessing.h>


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int vscshfba_subscribe_data(vscshfba_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int vscshfba_publish_data(vscshfba_data_message *msg);
void vscshfba_subscribe_command_message(vscshfba_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void vscshfba_publish_command_message(vscshfba_command_message *msg);

#endif

Include the interface.

Include the interface.

#ifndef _FOVEATIONCONTROL_INTERFACE_H_
#define _FOVEATIONCONTROL_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/foveationcontrol_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef TYPE_xbcameratmatrix_params TYPE_foveationcontrolmatrix_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int foveationcontrol_publish_pointto_xyz(foveationcontrol_pointto_xyz_message *msg);
int foveationcontrol_subscribe_pointto_xyz(foveationcontrol_pointto_xyz_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void param_daemon_install_foveationcontrolmatrix_params(TYPE_foveationcontrolmatrix_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _POWERMANAGER_INTERFACE_H_
#define _POWERMANAGER_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/powermanager_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


typedef enum {
            Y0_LAS0 = 130,
            Y1_PTU,
            Y2_R1394_0,
            Y3_BUMBLEBEE,
            Y4_NA,
            Y5_NA,
            Y6_NA,
            Y7_NA,
            Y10_ROUTER,
            Y11_SWITCH,
            Y12_GPS,
            Y13_NA
            }ENUM_plc_outputs;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int powermanager_publish_status(powermanager_status_message *msg);
int powermanager_subscribe_status(powermanager_status_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int powermanager_turn_on(ENUM_plc_outputs output);
int powermanager_turn_off(ENUM_plc_outputs output);
int powermanager_reset(ENUM_plc_outputs output);
int powermanager_subscribe_command(powermanager_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);


#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _XBEE_INTERFACE_H_
#define _XBEE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                 #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/xbee_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_xbee_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int xbee_publish_rx_data(xbee_rx_data_message *msg);
int xbee_subscribe_rx_data(xbee_rx_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int xbee_publish_tx_data(xbee_tx_data_message *msg);
int xbee_subscribe_tx_data(xbee_tx_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void xbee_param_daemon_install_public_parameters(TYPE_xbee_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _FOVEATIONCONTROL_INTERFACE_H_
#define _FOVEATIONCONTROL_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/foveationcontrol_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef TYPE_xbcameratmatrix_params TYPE_foveationcontrolmatrix_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int foveationcontrol_publish_pointto_xyz(foveationcontrol_pointto_xyz_message *msg);
int foveationcontrol_subscribe_pointto_xyz(foveationcontrol_pointto_xyz_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void param_daemon_install_foveationcontrolmatrix_params(TYPE_foveationcontrolmatrix_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _POWERMANAGER_INTERFACE_H_
#define _POWERMANAGER_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/powermanager_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


typedef enum {
            Y0_LAS0 = 130,
            Y1_PTU,
            Y2_R1394_0,
            Y3_BUMBLEBEE,
            Y4_NA,
            Y5_NA,
            Y6_NA,
            Y7_NA,
            Y10_ROUTER,
            Y11_SWITCH,
            Y12_GPS,
            Y13_NA
            }ENUM_plc_outputs;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int powermanager_publish_status(powermanager_status_message *msg);
int powermanager_subscribe_status(powermanager_status_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int powermanager_turn_on(ENUM_plc_outputs output);
int powermanager_turn_off(ENUM_plc_outputs output);
int powermanager_reset(ENUM_plc_outputs output);
int powermanager_subscribe_command(powermanager_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);


#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _XBEE_INTERFACE_H_
#define _XBEE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                 #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/xbee_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_xbee_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int xbee_publish_rx_data(xbee_rx_data_message *msg);
int xbee_subscribe_rx_data(xbee_rx_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int xbee_publish_tx_data(xbee_tx_data_message *msg);
int xbee_subscribe_tx_data(xbee_tx_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void xbee_param_daemon_install_public_parameters(TYPE_xbee_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _MODULETEMPLATE_INTERFACE_H_
#define _MODULETEMPLATE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/moduletemplate_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_moduletemplate_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int moduletemplate_publish_data(moduletemplate_data_message *msg);
int moduletemplate_subscribe_data(moduletemplate_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void moduletemplate_param_daemon_install_public_parameters(TYPE_moduletemplate_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _FOVEATIONCONTROL_INTERFACE_H_
#define _FOVEATIONCONTROL_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/foveationcontrol_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef TYPE_xbcameratmatrix_params TYPE_foveationcontrolmatrix_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int foveationcontrol_publish_pointto_xyz(foveationcontrol_pointto_xyz_message *msg);
int foveationcontrol_subscribe_pointto_xyz(foveationcontrol_pointto_xyz_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void param_daemon_install_foveationcontrolmatrix_params(TYPE_foveationcontrolmatrix_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _POWERMANAGER_INTERFACE_H_
#define _POWERMANAGER_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/powermanager_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


typedef enum {
            Y0_LAS0 = 130,
            Y1_PTU,
            Y2_R1394_0,
            Y3_BUMBLEBEE,
            Y4_NA,
            Y5_NA,
            Y6_NA,
            Y7_NA,
            Y10_ROUTER,
            Y11_SWITCH,
            Y12_GPS,
            Y13_NA
            }ENUM_plc_outputs;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int powermanager_publish_status(powermanager_status_message *msg);
int powermanager_subscribe_status(powermanager_status_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int powermanager_turn_on(ENUM_plc_outputs output);
int powermanager_turn_off(ENUM_plc_outputs output);
int powermanager_reset(ENUM_plc_outputs output);
int powermanager_subscribe_command(powermanager_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);


#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _XBEE_INTERFACE_H_
#define _XBEE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                 #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/xbee_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_xbee_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int xbee_publish_rx_data(xbee_rx_data_message *msg);
int xbee_subscribe_rx_data(xbee_rx_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int xbee_publish_tx_data(xbee_tx_data_message *msg);
int xbee_subscribe_tx_data(xbee_tx_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void xbee_param_daemon_install_public_parameters(TYPE_xbee_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _MODULETEMPLATE_INTERFACE_H_
#define _MODULETEMPLATE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/moduletemplate_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_moduletemplate_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int moduletemplate_publish_data(moduletemplate_data_message *msg);
int moduletemplate_subscribe_data(moduletemplate_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void moduletemplate_param_daemon_install_public_parameters(TYPE_moduletemplate_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

Include the interface.

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif
#ifndef _AGENT_BEHAVIOUR_INTERFACE_H_
#define _AGENT_BEHAVIOUR_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/agent_behaviour_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_agent_behaviour_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int agent_behaviour_publish_data(agent_behaviour_data_message *msg);
int agent_behaviour_subscribe_data(agent_behaviour_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int agent_behaviour_publish_virtual_sensors_data(agent_behaviour_virtual_sensors_data_message *msg);
int agent_behaviour_subscribe_virtual_sensors_data(agent_behaviour_virtual_sensors_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void agent_behaviour_param_daemon_install_some_params(TYPE_agent_behaviour_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _AGENT_CLEARANCE_INTERFACE_H_
#define _AGENT_CLEARANCE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/agent_clearance_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
// typedef struct{
//  double sleeptime;       /**< looptime is the best loop time of the module. It may be a slower time but if its faster it should carmen_ipc_sleep until this time passes.*/
//  char otherparam;        /**< some other param to be installed*/
// } TYPE_agent_clearance_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int agent_clearance_publish_distance_data(agent_clearance_distance_data_message *msg);
int agent_clearance_subscribe_distance_data(agent_clearance_distance_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void agent_clearance_param_daemon_install_some_params(TYPE_agent_clearance_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _AGENT_TRACKER_INTERFACE_H_
#define _AGENT_TRACKER_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/agent_tracker_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_agent_tracker_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int agent_tracker_publish_data(agent_tracker_data_message *msg);
int agent_tracker_subscribe_data(agent_tracker_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int agent_tracker_publish_virtual_sensors_data(agent_tracker_virtual_sensors_data_message *msg);
int agent_tracker_subscribe_virtual_sensors_data(agent_tracker_virtual_sensors_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void agent_tracker_param_daemon_install_some_params(TYPE_agent_tracker_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _FOVEATIONCONTROL_INTERFACE_H_
#define _FOVEATIONCONTROL_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/foveationcontrol_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef TYPE_xbcameratmatrix_params TYPE_foveationcontrolmatrix_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int foveationcontrol_publish_pointto_xyz(foveationcontrol_pointto_xyz_message *msg);
int foveationcontrol_subscribe_pointto_xyz(foveationcontrol_pointto_xyz_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void param_daemon_install_foveationcontrolmatrix_params(TYPE_foveationcontrolmatrix_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _POWERMANAGER_INTERFACE_H_
#define _POWERMANAGER_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/powermanager_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


typedef enum {
            Y0_LAS0 = 130,
            Y1_PTU,
            Y2_R1394_0,
            Y3_BUMBLEBEE,
            Y4_NA,
            Y5_NA,
            Y6_NA,
            Y7_NA,
            Y10_ROUTER,
            Y11_SWITCH,
            Y12_GPS,
            Y13_NA
            }ENUM_plc_outputs;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int powermanager_publish_status(powermanager_status_message *msg);
int powermanager_subscribe_status(powermanager_status_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int powermanager_turn_on(ENUM_plc_outputs output);
int powermanager_turn_off(ENUM_plc_outputs output);
int powermanager_reset(ENUM_plc_outputs output);
int powermanager_subscribe_command(powermanager_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);


#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _XBEE_INTERFACE_H_
#define _XBEE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                 #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/xbee_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_xbee_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int xbee_publish_rx_data(xbee_rx_data_message *msg);
int xbee_subscribe_rx_data(xbee_rx_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int xbee_publish_tx_data(xbee_tx_data_message *msg);
int xbee_subscribe_tx_data(xbee_tx_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void xbee_param_daemon_install_public_parameters(TYPE_xbee_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _MODULETEMPLATE_INTERFACE_H_
#define _MODULETEMPLATE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/moduletemplate_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_moduletemplate_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int moduletemplate_publish_data(moduletemplate_data_message *msg);
int moduletemplate_subscribe_data(moduletemplate_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void moduletemplate_param_daemon_install_public_parameters(TYPE_moduletemplate_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

Include the interface.

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif
#ifndef _AGENT_BEHAVIOUR_INTERFACE_H_
#define _AGENT_BEHAVIOUR_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/agent_behaviour_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_agent_behaviour_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int agent_behaviour_publish_data(agent_behaviour_data_message *msg);
int agent_behaviour_subscribe_data(agent_behaviour_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int agent_behaviour_publish_virtual_sensors_data(agent_behaviour_virtual_sensors_data_message *msg);
int agent_behaviour_subscribe_virtual_sensors_data(agent_behaviour_virtual_sensors_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void agent_behaviour_param_daemon_install_some_params(TYPE_agent_behaviour_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _AGENT_CLEARANCE_INTERFACE_H_
#define _AGENT_CLEARANCE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/agent_clearance_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
// typedef struct{
//  double sleeptime;       /**< looptime is the best loop time of the module. It may be a slower time but if its faster it should carmen_ipc_sleep until this time passes.*/
//  char otherparam;        /**< some other param to be installed*/
// } TYPE_agent_clearance_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int agent_clearance_publish_distance_data(agent_clearance_distance_data_message *msg);
int agent_clearance_subscribe_distance_data(agent_clearance_distance_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void agent_clearance_param_daemon_install_some_params(TYPE_agent_clearance_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _AGENT_TRACKER_INTERFACE_H_
#define _AGENT_TRACKER_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/agent_tracker_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_agent_tracker_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int agent_tracker_publish_data(agent_tracker_data_message *msg);
int agent_tracker_subscribe_data(agent_tracker_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int agent_tracker_publish_virtual_sensors_data(agent_tracker_virtual_sensors_data_message *msg);
int agent_tracker_subscribe_virtual_sensors_data(agent_tracker_virtual_sensors_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void agent_tracker_param_daemon_install_some_params(TYPE_agent_tracker_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _TLHFCS_INTERFACE_H_
#define _TLHFCS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/tlhfcs_messages.h>
#include <lar/imageprocessing.h>


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
// * @brief This is a test message, Here you insert the description of the entity, in this case the struct.
// */
//typedef struct{
//  double sleeptime;       /**< looptime is the best loop time of the module. It may be a slower time but if its faster it should carmen_ipc_sleep until this time passes.*/
//  char otherparam;        /**< some other param to be installed*/
//} TYPE_tlhfcs_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

//int tlhfcs_publish_information(tlhfcs_information_message *msg);
//int tlhfcs_subscribe_information(tlhfcs_information_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void tlhfcs_param_daemon_install_some_params(TYPE_tlhfcs_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _TLHFCS_INTERFACE_H_
#define _TLHFCS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/tlhfcs_messages.h>
#include <lar/imageprocessing.h>


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
// * @brief This is a test message, Here you insert the description of the entity, in this case the struct.
// */
//typedef struct{
//  double sleeptime;       /**< looptime is the best loop time of the module. It may be a slower time but if its faster it should carmen_ipc_sleep until this time passes.*/
//  char otherparam;        /**< some other param to be installed*/
//} TYPE_tlhfcs_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

//int tlhfcs_publish_information(tlhfcs_information_message *msg);
//int tlhfcs_subscribe_information(tlhfcs_information_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void tlhfcs_param_daemon_install_some_params(TYPE_tlhfcs_public_params *p, int subscribe_changes, int verbose);

#endif

Include the interface.

#ifndef _VSCSHFBA_INTERFACE_H_
#define _VSCSHFBA_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/vscshfba_messages.h>
#include <lar/imageprocessing.h>


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int vscshfba_subscribe_data(vscshfba_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int vscshfba_publish_data(vscshfba_data_message *msg);
void vscshfba_subscribe_command_message(vscshfba_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void vscshfba_publish_command_message(vscshfba_command_message *msg);

#endif

#ifndef _VSCSHFBA_INTERFACE_H_
#define _VSCSHFBA_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/vscshfba_messages.h>
#include <lar/imageprocessing.h>


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int vscshfba_subscribe_data(vscshfba_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int vscshfba_publish_data(vscshfba_data_message *msg);
void vscshfba_subscribe_command_message(vscshfba_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void vscshfba_publish_command_message(vscshfba_command_message *msg);

#endif

Include the interface.

#ifndef _FOVEATIONCONTROL_INTERFACE_H_
#define _FOVEATIONCONTROL_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/foveationcontrol_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef TYPE_xbcameratmatrix_params TYPE_foveationcontrolmatrix_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int foveationcontrol_publish_pointto_xyz(foveationcontrol_pointto_xyz_message *msg);
int foveationcontrol_subscribe_pointto_xyz(foveationcontrol_pointto_xyz_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void param_daemon_install_foveationcontrolmatrix_params(TYPE_foveationcontrolmatrix_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _POWERMANAGER_INTERFACE_H_
#define _POWERMANAGER_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/powermanager_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


typedef enum {
            Y0_LAS0 = 130,
            Y1_PTU,
            Y2_R1394_0,
            Y3_BUMBLEBEE,
            Y4_NA,
            Y5_NA,
            Y6_NA,
            Y7_NA,
            Y10_ROUTER,
            Y11_SWITCH,
            Y12_GPS,
            Y13_NA
            }ENUM_plc_outputs;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int powermanager_publish_status(powermanager_status_message *msg);
int powermanager_subscribe_status(powermanager_status_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int powermanager_turn_on(ENUM_plc_outputs output);
int powermanager_turn_off(ENUM_plc_outputs output);
int powermanager_reset(ENUM_plc_outputs output);
int powermanager_subscribe_command(powermanager_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);


#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _XBEE_INTERFACE_H_
#define _XBEE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                 #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/xbee_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_xbee_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int xbee_publish_rx_data(xbee_rx_data_message *msg);
int xbee_subscribe_rx_data(xbee_rx_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int xbee_publish_tx_data(xbee_tx_data_message *msg);
int xbee_subscribe_tx_data(xbee_tx_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void xbee_param_daemon_install_public_parameters(TYPE_xbee_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _MODULETEMPLATE_INTERFACE_H_
#define _MODULETEMPLATE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/moduletemplate_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_moduletemplate_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int moduletemplate_publish_data(moduletemplate_data_message *msg);
int moduletemplate_subscribe_data(moduletemplate_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void moduletemplate_param_daemon_install_public_parameters(TYPE_moduletemplate_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

Include the interface.

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif
#ifndef _AGENT_BEHAVIOUR_INTERFACE_H_
#define _AGENT_BEHAVIOUR_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/agent_behaviour_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_agent_behaviour_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int agent_behaviour_publish_data(agent_behaviour_data_message *msg);
int agent_behaviour_subscribe_data(agent_behaviour_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int agent_behaviour_publish_virtual_sensors_data(agent_behaviour_virtual_sensors_data_message *msg);
int agent_behaviour_subscribe_virtual_sensors_data(agent_behaviour_virtual_sensors_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void agent_behaviour_param_daemon_install_some_params(TYPE_agent_behaviour_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _AGENT_CLEARANCE_INTERFACE_H_
#define _AGENT_CLEARANCE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/agent_clearance_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
// typedef struct{
//  double sleeptime;       /**< looptime is the best loop time of the module. It may be a slower time but if its faster it should carmen_ipc_sleep until this time passes.*/
//  char otherparam;        /**< some other param to be installed*/
// } TYPE_agent_clearance_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int agent_clearance_publish_distance_data(agent_clearance_distance_data_message *msg);
int agent_clearance_subscribe_distance_data(agent_clearance_distance_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void agent_clearance_param_daemon_install_some_params(TYPE_agent_clearance_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _AGENT_TRACKER_INTERFACE_H_
#define _AGENT_TRACKER_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/agent_tracker_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_agent_tracker_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int agent_tracker_publish_data(agent_tracker_data_message *msg);
int agent_tracker_subscribe_data(agent_tracker_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int agent_tracker_publish_virtual_sensors_data(agent_tracker_virtual_sensors_data_message *msg);
int agent_tracker_subscribe_virtual_sensors_data(agent_tracker_virtual_sensors_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void agent_tracker_param_daemon_install_some_params(TYPE_agent_tracker_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _TLHFCS_INTERFACE_H_
#define _TLHFCS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/tlhfcs_messages.h>
#include <lar/imageprocessing.h>


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
// * @brief This is a test message, Here you insert the description of the entity, in this case the struct.
// */
//typedef struct{
//  double sleeptime;       /**< looptime is the best loop time of the module. It may be a slower time but if its faster it should carmen_ipc_sleep until this time passes.*/
//  char otherparam;        /**< some other param to be installed*/
//} TYPE_tlhfcs_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

//int tlhfcs_publish_information(tlhfcs_information_message *msg);
//int tlhfcs_subscribe_information(tlhfcs_information_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void tlhfcs_param_daemon_install_some_params(TYPE_tlhfcs_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _TLHFCS_INTERFACE_H_
#define _TLHFCS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/tlhfcs_messages.h>
#include <lar/imageprocessing.h>


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
// * @brief This is a test message, Here you insert the description of the entity, in this case the struct.
// */
//typedef struct{
//  double sleeptime;       /**< looptime is the best loop time of the module. It may be a slower time but if its faster it should carmen_ipc_sleep until this time passes.*/
//  char otherparam;        /**< some other param to be installed*/
//} TYPE_tlhfcs_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

//int tlhfcs_publish_information(tlhfcs_information_message *msg);
//int tlhfcs_subscribe_information(tlhfcs_information_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void tlhfcs_param_daemon_install_some_params(TYPE_tlhfcs_public_params *p, int subscribe_changes, int verbose);

#endif

Include the interface.

#ifndef _VSCSHFBA_INTERFACE_H_
#define _VSCSHFBA_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/vscshfba_messages.h>
#include <lar/imageprocessing.h>


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int vscshfba_subscribe_data(vscshfba_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int vscshfba_publish_data(vscshfba_data_message *msg);
void vscshfba_subscribe_command_message(vscshfba_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void vscshfba_publish_command_message(vscshfba_command_message *msg);

#endif

#ifndef _VSCSHFBA_INTERFACE_H_
#define _VSCSHFBA_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/vscshfba_messages.h>
#include <lar/imageprocessing.h>


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int vscshfba_subscribe_data(vscshfba_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int vscshfba_publish_data(vscshfba_data_message *msg);
void vscshfba_subscribe_command_message(vscshfba_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void vscshfba_publish_command_message(vscshfba_command_message *msg);

#endif

Include the interface.

#ifndef _LASERPROJECTIONONIMAGE_INTERFACE_H_
#define _LASERPROJECTIONONIMAGE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/laserprojectiononimage_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################


#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _GPS_INTERFACE_H_
#define _GPS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     ##################################
//####################################################################
#include <lar/lar.h>
#include <lar/gps_messages.h>


//####################################################################
// Prototypes:  public functions can be declared here  ###############
//####################################################################
void gps_publish_data(gps_gpgga_data_message *msg_gga, gps_gprmc_data_message *msg_rmc);
int gps_subscribe_gpgga_data(gps_gpgga_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int gps_subscribe_gprmc_data(gps_gprmc_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);

#endif

#ifndef _GPS_INTERFACE_H_
#define _GPS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     ##################################
//####################################################################
#include <lar/lar.h>
#include <lar/gps_messages.h>


//####################################################################
// Prototypes:  public functions can be declared here  ###############
//####################################################################
void gps_publish_data(gps_gpgga_data_message *msg_gga, gps_gprmc_data_message *msg_rmc);
int gps_subscribe_gpgga_data(gps_gpgga_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int gps_subscribe_gprmc_data(gps_gprmc_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);

#endif

Include global headers.

#ifndef _XSENS_INTERFACE_H_
#define _XSENS_INTERFACE_H_

#include <lar/lar.h>
#include <lar/xsens_messages.h>

typedef struct{
    char *comport;          
} TYPE_xsens_public_params;

int xsens_publish_data(xsens_data_message *msg);
int xsens_subscribe_data(xsens_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void xsens_param_daemon_install_some_params(TYPE_xsens_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _XSENS_INTERFACE_H_
#define _XSENS_INTERFACE_H_

#include <lar/lar.h>
#include <lar/xsens_messages.h>

typedef struct{
    char *comport;          
} TYPE_xsens_public_params;

int xsens_publish_data(xsens_data_message *msg);
int xsens_subscribe_data(xsens_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void xsens_param_daemon_install_some_params(TYPE_xsens_public_params *p, int subscribe_changes, int verbose);

#endif

Include the interface.

#ifndef _FOVEATIONCONTROL_INTERFACE_H_
#define _FOVEATIONCONTROL_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/foveationcontrol_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef TYPE_xbcameratmatrix_params TYPE_foveationcontrolmatrix_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int foveationcontrol_publish_pointto_xyz(foveationcontrol_pointto_xyz_message *msg);
int foveationcontrol_subscribe_pointto_xyz(foveationcontrol_pointto_xyz_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void param_daemon_install_foveationcontrolmatrix_params(TYPE_foveationcontrolmatrix_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _POWERMANAGER_INTERFACE_H_
#define _POWERMANAGER_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/powermanager_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


typedef enum {
            Y0_LAS0 = 130,
            Y1_PTU,
            Y2_R1394_0,
            Y3_BUMBLEBEE,
            Y4_NA,
            Y5_NA,
            Y6_NA,
            Y7_NA,
            Y10_ROUTER,
            Y11_SWITCH,
            Y12_GPS,
            Y13_NA
            }ENUM_plc_outputs;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int powermanager_publish_status(powermanager_status_message *msg);
int powermanager_subscribe_status(powermanager_status_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int powermanager_turn_on(ENUM_plc_outputs output);
int powermanager_turn_off(ENUM_plc_outputs output);
int powermanager_reset(ENUM_plc_outputs output);
int powermanager_subscribe_command(powermanager_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);


#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _XBEE_INTERFACE_H_
#define _XBEE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                 #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/xbee_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_xbee_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int xbee_publish_rx_data(xbee_rx_data_message *msg);
int xbee_subscribe_rx_data(xbee_rx_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int xbee_publish_tx_data(xbee_tx_data_message *msg);
int xbee_subscribe_tx_data(xbee_tx_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void xbee_param_daemon_install_public_parameters(TYPE_xbee_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _MODULETEMPLATE_INTERFACE_H_
#define _MODULETEMPLATE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/moduletemplate_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_moduletemplate_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int moduletemplate_publish_data(moduletemplate_data_message *msg);
int moduletemplate_subscribe_data(moduletemplate_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void moduletemplate_param_daemon_install_public_parameters(TYPE_moduletemplate_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

Include the interface.

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif
#ifndef _AGENT_BEHAVIOUR_INTERFACE_H_
#define _AGENT_BEHAVIOUR_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/agent_behaviour_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_agent_behaviour_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int agent_behaviour_publish_data(agent_behaviour_data_message *msg);
int agent_behaviour_subscribe_data(agent_behaviour_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int agent_behaviour_publish_virtual_sensors_data(agent_behaviour_virtual_sensors_data_message *msg);
int agent_behaviour_subscribe_virtual_sensors_data(agent_behaviour_virtual_sensors_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void agent_behaviour_param_daemon_install_some_params(TYPE_agent_behaviour_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _AGENT_CLEARANCE_INTERFACE_H_
#define _AGENT_CLEARANCE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/agent_clearance_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
// typedef struct{
//  double sleeptime;       /**< looptime is the best loop time of the module. It may be a slower time but if its faster it should carmen_ipc_sleep until this time passes.*/
//  char otherparam;        /**< some other param to be installed*/
// } TYPE_agent_clearance_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int agent_clearance_publish_distance_data(agent_clearance_distance_data_message *msg);
int agent_clearance_subscribe_distance_data(agent_clearance_distance_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void agent_clearance_param_daemon_install_some_params(TYPE_agent_clearance_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _AGENT_TRACKER_INTERFACE_H_
#define _AGENT_TRACKER_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/agent_tracker_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
typedef struct{
    double sleeptime;       
    char otherparam;        
} TYPE_agent_tracker_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int agent_tracker_publish_data(agent_tracker_data_message *msg);
int agent_tracker_subscribe_data(agent_tracker_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int agent_tracker_publish_virtual_sensors_data(agent_tracker_virtual_sensors_data_message *msg);
int agent_tracker_subscribe_virtual_sensors_data(agent_tracker_virtual_sensors_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void agent_tracker_param_daemon_install_some_params(TYPE_agent_tracker_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _TLHFCS_INTERFACE_H_
#define _TLHFCS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/tlhfcs_messages.h>
#include <lar/imageprocessing.h>


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
// * @brief This is a test message, Here you insert the description of the entity, in this case the struct.
// */
//typedef struct{
//  double sleeptime;       /**< looptime is the best loop time of the module. It may be a slower time but if its faster it should carmen_ipc_sleep until this time passes.*/
//  char otherparam;        /**< some other param to be installed*/
//} TYPE_tlhfcs_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

//int tlhfcs_publish_information(tlhfcs_information_message *msg);
//int tlhfcs_subscribe_information(tlhfcs_information_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void tlhfcs_param_daemon_install_some_params(TYPE_tlhfcs_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _TLHFCS_INTERFACE_H_
#define _TLHFCS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/tlhfcs_messages.h>
#include <lar/imageprocessing.h>


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################
// * @brief This is a test message, Here you insert the description of the entity, in this case the struct.
// */
//typedef struct{
//  double sleeptime;       /**< looptime is the best loop time of the module. It may be a slower time but if its faster it should carmen_ipc_sleep until this time passes.*/
//  char otherparam;        /**< some other param to be installed*/
//} TYPE_tlhfcs_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

//int tlhfcs_publish_information(tlhfcs_information_message *msg);
//int tlhfcs_subscribe_information(tlhfcs_information_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void tlhfcs_param_daemon_install_some_params(TYPE_tlhfcs_public_params *p, int subscribe_changes, int verbose);

#endif

Include the interface.

#ifndef _VSCSHFBA_INTERFACE_H_
#define _VSCSHFBA_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/vscshfba_messages.h>
#include <lar/imageprocessing.h>


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int vscshfba_subscribe_data(vscshfba_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int vscshfba_publish_data(vscshfba_data_message *msg);
void vscshfba_subscribe_command_message(vscshfba_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void vscshfba_publish_command_message(vscshfba_command_message *msg);

#endif

#ifndef _VSCSHFBA_INTERFACE_H_
#define _VSCSHFBA_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/vscshfba_messages.h>
#include <lar/imageprocessing.h>


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int vscshfba_subscribe_data(vscshfba_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int vscshfba_publish_data(vscshfba_data_message *msg);
void vscshfba_subscribe_command_message(vscshfba_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void vscshfba_publish_command_message(vscshfba_command_message *msg);

#endif

Include the interface.

#ifndef _LASERPROJECTIONONIMAGE_INTERFACE_H_
#define _LASERPROJECTIONONIMAGE_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/laserprojectiononimage_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################


#endif

#ifndef _LAR_H_
#define _LAR_H_

#define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);}
#define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);}

#define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));}
#define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*))

#define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);}
#define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);}

#include <sys/ipc.h> //System includes to use shared mem
#include <sys/shm.h> //System includes to use shared mem

using namespace std;
#include <iostream>

#if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/
  #include <opencv/cv.h>
  #include <opencv/cxcore.h>
  #include <opencv/highgui.h>
  #include <opencv/cvaux.h>
#endif

#if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/
  #include <carmen/carmen.h>
#endif


//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################

typedef struct {
    int send;           
    double timestamp;   
    char *host;         
}global_dummy_message;


typedef struct {
    int shm_id;         
    int shm_size;       
    double timestamp;   
    char *host;         
}global_shminfo_message;

//####################################################################
// LAR includes:        ##############################################
//####################################################################


#include <lar/timer.h>
#include <lar/pixelaccess.h>
#include <lar/errorhandling.h>
#include <lar/readcommandlineparameters.h>
#include <lar/lensundistort.h>
#include <lar/videosaving.h>
#include <lar/imageprocessing.h>
#include <lar/acl_interface.h>
#include <lar/crc.h>

#include <lar/moduletemplate_interface.h>

#include <lar/xbee_interface.h>
#include <lar/ptucontrol_interface.h>
#include <lar/atlas2000_interface.h>
#include <lar/atlasmv_interface.h>
#include <lar/powermanager_interface.h>
#include <lar/des70_10.h>


#include <lar/soundplayer_interface.h>
#include <lar/soundplayer_messages.h>
#include <lar/processcontrol_interface.h>
#include <lar/processcontrol_messages.h>

#include <lar/gps_interface.h>

#include <lar/xsens_interface.h>

#include <lar/firei_interface.h>
#include <lar/flea2_interface.h>
#include <lar/xb3_interface.h>

//this must be after the xb3_interface
#include <lar/foveationcontrol_interface.h>

#include <lar/hokuyo_utm_interface.h>
#include <lar/laser3d_interface.h>


#include <lar/ipm_interface.h>
#include <lar/egomotiongpsimu_interface.h>

//#include <lar/agent_tracker_interface.h>
#include <lar/agent_clearance_interface.h>

#include <lar/cdltm_interface.h>
//#include <lar/lmssp_interface.h>
#include <lar/rtbm_interface.h>

#include <lar/potkf_interface.h>

#include <lar/tlcstm_interface.h>
#include <lar/cwtm_interface.h>
#include <lar/tlhfcs_interface.h>
#include <lar/pdtm_interface.h>
#include <lar/cwpc_interface.h>
#include <lar/vscshfba_interface.h>

#include <lar/cm_interface.h>


#include <lar/mptn2d_interface.h>
#include <lar/agents_interface.h>


#include <lar/roc_interface.h>

#endif

Include global headers.

#ifndef _GPS_INTERFACE_H_
#define _GPS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     ##################################
//####################################################################
#include <lar/lar.h>
#include <lar/gps_messages.h>


//####################################################################
// Prototypes:  public functions can be declared here  ###############
//####################################################################
void gps_publish_data(gps_gpgga_data_message *msg_gga, gps_gprmc_data_message *msg_rmc);
int gps_subscribe_gpgga_data(gps_gpgga_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int gps_subscribe_gprmc_data(gps_gprmc_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);

#endif

#ifndef _GPS_INTERFACE_H_
#define _GPS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     ##################################
//####################################################################
#include <lar/lar.h>
#include <lar/gps_messages.h>


//####################################################################
// Prototypes:  public functions can be declared here  ###############
//####################################################################
void gps_publish_data(gps_gpgga_data_message *msg_gga, gps_gprmc_data_message *msg_rmc);
int gps_subscribe_gpgga_data(gps_gpgga_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int gps_subscribe_gprmc_data(gps_gprmc_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);

#endif

Include global headers.

#ifndef _XSENS_INTERFACE_H_
#define _XSENS_INTERFACE_H_

#include <lar/lar.h>
#include <lar/xsens_messages.h>

typedef struct{
    char *comport;          
} TYPE_xsens_public_params;

int xsens_publish_data(xsens_data_message *msg);
int xsens_subscribe_data(xsens_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void xsens_param_daemon_install_some_params(TYPE_xsens_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _XSENS_INTERFACE_H_
#define _XSENS_INTERFACE_H_

#include <lar/lar.h>
#include <lar/xsens_messages.h>

typedef struct{
    char *comport;          
} TYPE_xsens_public_params;

int xsens_publish_data(xsens_data_message *msg);
int xsens_subscribe_data(xsens_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void xsens_param_daemon_install_some_params(TYPE_xsens_public_params *p, int subscribe_changes, int verbose);

#endif

Include the interface.

#ifndef _ACL_INTERFACE_H_
#define _ACL_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/acl_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


typedef struct
{
    double minH;
    double maxH;
    double minS;
    double maxS;
    double minV;
    double maxV;
}TYPE_color_lim;





typedef struct{
    TYPE_color_lim green;
    TYPE_color_lim red;
    TYPE_color_lim white;
    TYPE_color_lim yellow;
    TYPE_color_lim blue;
    TYPE_color_lim black;
} TYPE_acl_color_limits;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int param_daemon_set_color_limits(TYPE_acl_color_limits* limits);
//int acl_publish_data(acl_data_message *msg);
//int acl_subscribe_data(acl_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void acl_param_daemon_install_some_params(TYPE_acl_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _ACL_INTERFACE_H_
#define _ACL_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/acl_messages.h>

//####################################################################
// Typedefs:Declare here structs that have interesting params for ####
// other modules besides this one, but that will not be sent through #
// messages. A function to install this struct with param daemon #####
// should be declared ################################################
//####################################################################


typedef struct
{
    double minH;
    double maxH;
    double minS;
    double maxS;
    double minV;
    double maxV;
}TYPE_color_lim;





typedef struct{
    TYPE_color_lim green;
    TYPE_color_lim red;
    TYPE_color_lim white;
    TYPE_color_lim yellow;
    TYPE_color_lim blue;
    TYPE_color_lim black;
} TYPE_acl_color_limits;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int param_daemon_set_color_limits(TYPE_acl_color_limits* limits);
//int acl_publish_data(acl_data_message *msg);
//int acl_subscribe_data(acl_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void acl_param_daemon_install_some_params(TYPE_acl_public_params *p, int subscribe_changes, int verbose);

#endif

Include the interface.

Include the interface.

#ifndef _GPS_INTERFACE_H_
#define _GPS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     ##################################
//####################################################################
#include <lar/lar.h>
#include <lar/gps_messages.h>


//####################################################################
// Prototypes:  public functions can be declared here  ###############
//####################################################################
void gps_publish_data(gps_gpgga_data_message *msg_gga, gps_gprmc_data_message *msg_rmc);
int gps_subscribe_gpgga_data(gps_gpgga_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int gps_subscribe_gprmc_data(gps_gprmc_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);

#endif

int GPS_latitude = 0

Referenced by drawGPSpoint().

int GPS_longitude = 0

Referenced by drawGPSpoint().

unsigned height = 600
int nbuttonpresses = 0 [static]
unsigned width = 800

Referenced by button_press_event(), and zoom_window().

char* xml_filename

Referenced by destroy(), and open_xml().

Include the interface.

#ifndef _XSENS_INTERFACE_H_
#define _XSENS_INTERFACE_H_

#include <lar/lar.h>
#include <lar/xsens_messages.h>

typedef struct{
    char *comport;          
} TYPE_xsens_public_params;

int xsens_publish_data(xsens_data_message *msg);
int xsens_subscribe_data(xsens_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void xsens_param_daemon_install_some_params(TYPE_xsens_public_params *p, int subscribe_changes, int verbose);

#endif

Referenced by button_press_event(), and zoom_window().

Generated on Wed Jun 2 12:43:25 2010 for LAR Atlas by  doxygen 1.6.3