109 int ProcessMessage(ClientData * client,
player_msghdr * hdr, uint8_t * data, uint8_t * resp_data,
size_t * resp_len);
112 virtual int Subscribe(player_device_id_t
id);
113 virtual int Unsubscribe(player_device_id_t
id);
122 void SetOdometry(
int,
int,
short);
125 void SetIRState(
int);
127 void UpdateData(
void);
129 void UpdateIRData(player_ir_data_t *);
130 void UpdatePowerData(player_power_data_t *);
131 void UpdatePosData(player_position_data_t *);
135 void ConfigAD(
int,
int);
136 unsigned short ReadAD(
int);
137 void ReadAllIR(uint16_t * ir);
140 void SetSpeed(
int,
int );
143 void SetPos(
int,
int);
145 void SetPosCounter(
int,
int);
148 unsigned char ReadStatus(
int,
int *,
int *);
149 void ConfigPosPID(
int,
int,
int,
int);
150 void ConfigSpeedPID(
int,
int,
int,
int);
151 void ConfigSpeedProfile(
int,
int,
int);
155 int write_serial(
char *,
int);
156 int read_serial_until(
char *,
int,
char *,
int);
157 int write_command(
char *buf,
int len,
int maxsize);
159 player_device_id_t ir_id;
160 player_device_id_t position_id;
161 player_device_id_t power_id;
163 int ir_subscriptions;
164 int position_subscriptions;
169 struct timeval last_position;
170 bool refresh_last_position;
171 int last_lpos, last_rpos;
172 int last_x_f, last_y_f;
175 struct timeval last_pos_update;
176 struct timeval last_power_update;
177 struct timeval last_ir_update;
179 int pos_update_period;
182 short desired_heading;
185 struct timeval last_ir;
189 bool direct_velocity_control;
192 char reb_serial_port[MAX_FILENAME_SIZE];
194 struct pollfd write_pfd, read_pfd;
197 int ProcessCommand(player_position_cmd_t * poscmd);
198 short last_trans_command, last_rot_command;
199 int leftvel, rightvel;
200 int leftpos, rightpos;