160 bool RecvBytes(
unsigned char*s,
int len );
161 int ReadBuf(
unsigned char* s,
size_t len);
162 int WriteBuf(
unsigned char* s,
size_t len);
163 int sendCmdCom(
unsigned char address,
unsigned char c,
164 int cmd_num,
unsigned char* arg,
165 int ret_num,
unsigned char * ret );
166 int sendCmd0(
unsigned char address,
unsigned char c,
167 int ret_num,
unsigned char * ret );
168 int sendCmd16(
unsigned char address,
unsigned char c,
169 int16_t arg,
int ret_num,
unsigned char * ret );
170 int sendCmd32(
unsigned char address,
unsigned char c,
171 int32_t arg,
int ret_num,
unsigned char * ret );
173 int32_t BytesToInt32(
unsigned char *ptr );
174 int16_t BytesToInt16(
unsigned char *ptr );
176 int ResetRawPositions();
183 void HandleVelocityCommand(player_position2d_cmd_vel_t* cmd );
184 void HandleDigitalOutCommand( player_dio_data_t* doutCmd );
185 void SetDigitalData( player_dio_data_t * d );
188 void GetAllData(
void );
189 void GetPositionData( player_position2d_data_t* d );
190 void GetIRData( player_ir_data_t * d );
191 void GetAnalogData( player_aio_data_t * d );
192 void GetDigitalData( player_dio_data_t * d );
194 void PublishData(
void);
197 const char* GetPMDErrorString(
int rc );
200 void Stop(
int StopMode );
202 bool EnableMotors(
bool enable );
204 void SetVelocity( uint8_t chan,
float mps );
205 void SetVelocity(
float mpsL,
float mpsR );
206 void SetVelocityInTicks( int32_t left, int32_t right );
207 void GetVelocityInTicks( int32_t* left, int32_t* right );
209 void Move( uint8_t chan,
float meters );
210 void Move(
float metersL,
float metersR );
212 void SetPosition( uint8_t chan,
float meters );
213 void SetPosition(
float metersL,
float metersR );
214 void SetActualPositionInTicks( int32_t left, int32_t right );
215 void SetActualPosition(
float left,
float right );
216 void GetPositionInTicks( int32_t* left, int32_t* right );
218 void SetAccelerationProfile();
220 int GetAnalogSensor(
int s,
short * val );
221 void GetDigitalIn(
unsigned short* digIn );
222 void SetDigitalOut(
unsigned short digOut );
223 void SetOdometry( player_position2d_set_odom_req_t* od );
224 void SetContourMode( ProfileMode_t prof );
225 void SetMicrosteps();
229 int32_t Meters2Ticks(
float meters );
230 float Ticks2Meters( int32_t ticks );
231 int32_t MPS2Vel(
float mps );
232 float Vel2MPS( int32_t vel );
237 struct termios _old_tio;
242 const char* _serial_port;
253 int position_subscriptions;
254 int ir_subscriptions;
255 int aio_subscriptions;
256 int dio_subscriptions;
259 int direct_wheel_vel_control;
261 player_position2d_cmd_vel_t last_position_cmd;
265 int motor_max_turnspeed;
268 short motor_max_trans_accel, motor_max_trans_decel;
269 short motor_max_rot_accel, motor_max_rot_decel;
273 player_position2d_geom_t _robot2d_geom;
274 player_position3d_geom_t _robot3d_geom;
275 player_ir_pose_t _ir_geom;
293 uint16_t _lastDigOut;