35#ifndef _HOST_CLIENT_NCLIENT_H_
36#define _HOST_CLIENT_NCLIENT_H_
53#define MAX_VERTICES 10
58#define MAX_USER_BUF 0xFFFF
75#define STATE_SIM_SPEED 0
94#define STATE_SONAR_0 17
95#define STATE_SONAR_1 18
96#define STATE_SONAR_2 19
97#define STATE_SONAR_3 20
98#define STATE_SONAR_4 21
99#define STATE_SONAR_5 22
100#define STATE_SONAR_6 23
101#define STATE_SONAR_7 24
102#define STATE_SONAR_8 25
103#define STATE_SONAR_9 26
104#define STATE_SONAR_10 27
105#define STATE_SONAR_11 28
106#define STATE_SONAR_12 29
107#define STATE_SONAR_13 30
108#define STATE_SONAR_14 31
109#define STATE_SONAR_15 32
111#define STATE_BUMPER 33
112#define STATE_CONF_X 34
113#define STATE_CONF_Y 35
114#define STATE_CONF_STEER 36
115#define STATE_CONF_TURRET 37
116#define STATE_VEL_TRANS 38
117#define STATE_VEL_RIGHT 38
118#define STATE_VEL_STEER 39
119#define STATE_VEL_LEFT 39
120#define STATE_VEL_TURRET 40
121#define STATE_MOTOR_STATUS 41
122#define STATE_LASER 42
123#define STATE_COMPASS 43
124#define STATE_ERROR 44
131#define SMASK_POS_DATA 0
142#define SMASK_IR_10 10
143#define SMASK_IR_11 11
144#define SMASK_IR_12 12
145#define SMASK_IR_13 13
146#define SMASK_IR_14 14
147#define SMASK_IR_15 15
148#define SMASK_IR_16 16
150#define SMASK_SONAR_1 17
151#define SMASK_SONAR_2 18
152#define SMASK_SONAR_3 19
153#define SMASK_SONAR_4 20
154#define SMASK_SONAR_5 21
155#define SMASK_SONAR_6 22
156#define SMASK_SONAR_7 23
157#define SMASK_SONAR_8 24
158#define SMASK_SONAR_9 25
159#define SMASK_SONAR_10 26
160#define SMASK_SONAR_11 27
161#define SMASK_SONAR_12 28
162#define SMASK_SONAR_13 29
163#define SMASK_SONAR_14 30
164#define SMASK_SONAR_15 31
165#define SMASK_SONAR_16 32
167#define SMASK_BUMPER 33
168#define SMASK_CONF_X 34
169#define SMASK_CONF_Y 35
170#define SMASK_CONF_STEER 36
171#define SMASK_CONF_TURRET 37
172#define SMASK_VEL_TRANS 38
173#define SMASK_VEL_STEER 39
174#define SMASK_VEL_TURRET 40
175#define SMASK_RESERVED 41
176#define SMASK_LASER 42
177#define SMASK_COMPASS 43
203#define ZR_NO_N_GRIPPER 4
216long arm_mv(
long l_mode,
long l_v,
long g_mode,
long g_v);
217long arm_ws(
short lift,
short grip,
long timeout,
long *time_remain);
218long arm_zr(
short mode);
226#define POS_NONE ( 0 << 0 )
227#define POS_INFRARED ( 1 << 0 )
228#define POS_SONAR ( 1 << 1 )
229#define POS_BUMPER ( 1 << 2 )
230#define POS_LASER ( 1 << 3 )
231#define POS_COMPASS ( 1 << 4 )
241#define POS_INFRARED_P ( ( (posDataCheck()) & POS_INFRARED ) ? 1 : 0 )
242#define POS_SONAR_P ( ( (posDataCheck()) & POS_SONAR ) ? 1 : 0 )
243#define POS_BUMPER_P ( ( (posDataCheck()) & POS_BUMPER ) ? 1 : 0 )
244#define POS_LASER_P ( ( (posDataCheck()) & POS_LASER ) ? 1 : 0 )
245#define POS_COMPASS_P ( ( (posDataCheck()) & POS_COMPASS ) ? 1 : 0 )
281#define POS_SONAR_10 9
282#define POS_SONAR_11 10
283#define POS_SONAR_12 11
284#define POS_SONAR_13 12
285#define POS_SONAR_14 13
286#define POS_SONAR_15 14
287#define POS_SONAR_16 15
293#define USER_BUFFER_LENGTH 0xFFFF
297#define ROTATION_CONSTANT 0.118597
299#define RIGHT(trans, steer) (trans + (int)((float)steer*ROTATION_CONSTANT))
300#define LEFT(trans, steer) (trans - (int)((float)steer*ROTATION_CONSTANT))
302#define scout_vm(trans, steer) vm(RIGHT(trans, steer), LEFT(trans, steer), 0)
337typedef unsigned long TimeData;
397 unsigned char bytes[2];
403 unsigned char bytes[2];
409 unsigned char bytes[4];
410 unsigned short words[2];
418 long mesg[USER_BUFFER_LENGTH];
425 long mesg[USER_BUFFER_LENGTH];
452extern long State[NUM_STATE];
466extern int Smask[NUM_MASK];
492extern int Laser[2*NUM_LASER+1];
523extern char SERVER_MACHINE_NAME[80];
530extern int SERV_TCP_PORT;
534extern char ROBOT_MACHINE_NAME[80];
545extern char SERIAL_PORT[40];
550extern int SERIAL_BAUD;
556extern int ROBOT_TCP_PORT;
566extern double LASER_CALIBRATION[8];
567extern double LASER_OFFSET[2];
587int create_robot(
long robot_id);
606int connect_robot(
long robot_id, ...);
616int disconnect_robot(
long robot_id);
627int ac(
int t_ac,
int s_ac,
int r_ac);
639int sp(
int t_sp,
int s_sp,
int r_sp);
656int pr(
int t_pr,
int s_pr,
int r_pr);
670int vm(
int t_vm,
int s_vm,
int r_vm);
711int mv(
int t_mode,
int t_mv,
int s_mode,
int s_mv,
int r_mode,
int r_mv);
743int tk(
char *talk_string);
774int conf_ir(
int history,
int order[16]);
788int conf_sn(
int rate,
int order[16]);
799int conf_cp(
int mode);
833int conf_ls(
unsigned int mode,
834 unsigned int threshold,
836 unsigned int num_data,
837 unsigned int processing);
849int conf_tm(
unsigned char timeout);
918int conf_sg(
unsigned int threshold,
919 unsigned int min_points,
936int da(
int th,
int tu);
951int ws(
unsigned char t_ws,
unsigned char s_ws,
952 unsigned char r_ws,
unsigned char timeout);
957int get_rpx(
long *robot_pos);
979int add_obstacle(
long obs[2*MAX_VERTICES+1]);
984int add_Obs(
long obs[2*MAX_VERTICES+1]);
998int delete_obstacle(
long obs[2*MAX_VERTICES+1]);
1003int delete_Obs(
long obs[2*MAX_VERTICES+1]);
1020int move_obstacle(
long obs[2*MAX_VERTICES+1],
long dx,
long dy);
1028int move_Obs(
long obs[2*MAX_VERTICES+1],
long dx,
long dy);
1048int refresh_all(
void);
1053int refresh_all_traces(
void);
1058int refresh_actual_trace(
void);
1063int refresh_encoder_trace(
void);
1068int refresh_all_sensors(
void);
1073int refresh_bumper_sensor(
void);
1078int refresh_infrared_sensor(
void);
1083int refresh_sonar_sensor(
void);
1088int refresh_laser_sensor(
void);
1094int refresh_client_graphics(
void);
1105void init_mask(
void);
1111int init_sensors(
void);
1124int place_robot(
int x,
int y,
int th,
int tu);
1139int special_request(
unsigned char *user_send_buffer,
1140 unsigned char *user_receive_buffer);
1168int draw_robot(
long x,
long y,
int th,
int tu,
int mode);
1185int draw_line(
long x_1,
long y_1,
long x_2,
long y_2,
int mode);
1206int draw_arc(
long x_0,
long y_0,
long w,
long h,
int th1,
int th2,
int mode);
1248int server_is_running(
void);
1258int quit_server(
void);
1267int real_robot(
void);
1276int simulated_robot(
void);
1292int predict_sensors(
int x,
int y,
int th,
int tu,
long *state,
int *laser);
1324int motion_check(
long type,
double a1,
double a2,
double a3,
double a4,
1325 double a5,
double a6,
double a7,
double collide[3]);
1337int get_robot_conf(
long *conf);
1354int init_receive_buffer(
unsigned short *index);
1370int extract_receive_buffer_header(
unsigned short *length,
1371 unsigned char *serial_number,
1372 unsigned char *packet_type,
1373 unsigned char *buffer);
1382int init_send_buffer(
unsigned short *index);
1400int stuff_send_buffer_header(
unsigned short index,
unsigned char serial_number,
1401 unsigned char packet_type,
unsigned char *buffer);
1412int stuffchar(
signed char data,
unsigned char *buffer,
unsigned short *index);
1424int stuff2byteint(
signed short data,
1425 unsigned char *buffer,
unsigned short *index);
1437int stuff4byteint(
signed long data,
1438 unsigned char *buffer,
unsigned short *index);
1449int stuffuchar(
unsigned char data,
1450 unsigned char *buffer,
unsigned short *index);
1462int stuff2byteuint(
unsigned short data,
unsigned char *buffer,
unsigned short *index);
1474int stuff4byteuint(
unsigned long data,
unsigned char *buffer,
unsigned short *index);
1486int stuffdouble(
double data,
unsigned char *buffer,
unsigned short *index);
1497signed char extractchar(
unsigned char *buffer,
unsigned short *index);
1508signed short extract2byteint(
unsigned char *buffer,
unsigned short *index);
1519signed long extract4byteint(
unsigned char *buffer,
unsigned short *index);
1530unsigned char extractuchar(
unsigned char *buffer,
unsigned short *index);
1542unsigned short extract2byteuint(
unsigned char *buffer,
unsigned short *index);
1554unsigned long extract4byteuint(
unsigned char *buffer,
unsigned short *index);
1565double extractdouble(
unsigned char *buffer,
unsigned short *index);
1574int get_state(
long state[NUM_STATE]);
1576int get_laser(
int laser[2*NUM_LASER+1]);
1578int get_mask(
int mask[NUM_MASK]);
1580int set_mask(
int mask[NUM_MASK]);
1582int set_server_machine_name(
char *sname);
1584int set_serv_tcp_port(
int port);
1611int posDataRequest (
int posRequest );
1627int posDataCheck (
void );
1645int posInfraredRingGet (
PosData posData[INFRAREDS] );
1661int posInfraredGet (
PosData *posData ,
int infraredNumber );
1679int posSonarRingGet (
PosData posData[SONARS] );
1694int posSonarGet (
PosData *posData ,
int sonarNumber );
1713int posBumperGet (
PosData *posData );
1727int posLaserGet (
PosData *posData );
1741int posCompassGet (
PosData *posData );
1757int posTimeGet (
void );
1778float voltCpuGet (
void );
1793float voltMotorGet (
void );
Definition: Nclient.h:347
Definition: Nclient.h:371
Definition: Nclient.h:422
Definition: Nclient.h:415
Definition: Nclient.h:383
Definition: Nclient.h:389
Definition: Nclient.h:396
Definition: Nclient.h:408
Definition: Nclient.h:402