34 #ifndef _HOST_CLIENT_NCLIENT_H_
35 #define _HOST_CLIENT_NCLIENT_H_
52 #define MAX_VERTICES 10
57 #define MAX_USER_BUF 0xFFFF
63 #define MODEL_SCOUT2 2
74 #define STATE_SIM_SPEED 0
86 #define STATE_IR_10 11
87 #define STATE_IR_11 12
88 #define STATE_IR_12 13
89 #define STATE_IR_13 14
90 #define STATE_IR_14 15
91 #define STATE_IR_15 16
93 #define STATE_SONAR_0 17
94 #define STATE_SONAR_1 18
95 #define STATE_SONAR_2 19
96 #define STATE_SONAR_3 20
97 #define STATE_SONAR_4 21
98 #define STATE_SONAR_5 22
99 #define STATE_SONAR_6 23
100 #define STATE_SONAR_7 24
101 #define STATE_SONAR_8 25
102 #define STATE_SONAR_9 26
103 #define STATE_SONAR_10 27
104 #define STATE_SONAR_11 28
105 #define STATE_SONAR_12 29
106 #define STATE_SONAR_13 30
107 #define STATE_SONAR_14 31
108 #define STATE_SONAR_15 32
110 #define STATE_BUMPER 33
111 #define STATE_CONF_X 34
112 #define STATE_CONF_Y 35
113 #define STATE_CONF_STEER 36
114 #define STATE_CONF_TURRET 37
115 #define STATE_VEL_TRANS 38
116 #define STATE_VEL_RIGHT 38
117 #define STATE_VEL_STEER 39
118 #define STATE_VEL_LEFT 39
119 #define STATE_VEL_TURRET 40
120 #define STATE_MOTOR_STATUS 41
121 #define STATE_LASER 42
122 #define STATE_COMPASS 43
123 #define STATE_ERROR 44
130 #define SMASK_POS_DATA 0
141 #define SMASK_IR_10 10
142 #define SMASK_IR_11 11
143 #define SMASK_IR_12 12
144 #define SMASK_IR_13 13
145 #define SMASK_IR_14 14
146 #define SMASK_IR_15 15
147 #define SMASK_IR_16 16
149 #define SMASK_SONAR_1 17
150 #define SMASK_SONAR_2 18
151 #define SMASK_SONAR_3 19
152 #define SMASK_SONAR_4 20
153 #define SMASK_SONAR_5 21
154 #define SMASK_SONAR_6 22
155 #define SMASK_SONAR_7 23
156 #define SMASK_SONAR_8 24
157 #define SMASK_SONAR_9 25
158 #define SMASK_SONAR_10 26
159 #define SMASK_SONAR_11 27
160 #define SMASK_SONAR_12 28
161 #define SMASK_SONAR_13 29
162 #define SMASK_SONAR_14 30
163 #define SMASK_SONAR_15 31
164 #define SMASK_SONAR_16 32
166 #define SMASK_BUMPER 33
167 #define SMASK_CONF_X 34
168 #define SMASK_CONF_Y 35
169 #define SMASK_CONF_STEER 36
170 #define SMASK_CONF_TURRET 37
171 #define SMASK_VEL_TRANS 38
172 #define SMASK_VEL_STEER 39
173 #define SMASK_VEL_TURRET 40
174 #define SMASK_RESERVED 41
175 #define SMASK_LASER 42
176 #define SMASK_COMPASS 43
202 #define ZR_NO_N_GRIPPER 4
215 long arm_mv(
long l_mode,
long l_v,
long g_mode,
long g_v);
216 long arm_ws(
short lift,
short grip,
long timeout,
long *time_remain);
217 long arm_zr(
short mode);
225 #define POS_NONE ( 0 << 0 )
226 #define POS_INFRARED ( 1 << 0 )
227 #define POS_SONAR ( 1 << 1 )
228 #define POS_BUMPER ( 1 << 2 )
229 #define POS_LASER ( 1 << 3 )
230 #define POS_COMPASS ( 1 << 4 )
240 #define POS_INFRARED_P ( ( (posDataCheck()) & POS_INFRARED ) ? 1 : 0 )
241 #define POS_SONAR_P ( ( (posDataCheck()) & POS_SONAR ) ? 1 : 0 )
242 #define POS_BUMPER_P ( ( (posDataCheck()) & POS_BUMPER ) ? 1 : 0 )
243 #define POS_LASER_P ( ( (posDataCheck()) & POS_LASER ) ? 1 : 0 )
244 #define POS_COMPASS_P ( ( (posDataCheck()) & POS_COMPASS ) ? 1 : 0 )
271 #define POS_SONAR_1 0
272 #define POS_SONAR_2 1
273 #define POS_SONAR_3 2
274 #define POS_SONAR_4 3
275 #define POS_SONAR_5 4
276 #define POS_SONAR_6 5
277 #define POS_SONAR_7 6
278 #define POS_SONAR_8 7
279 #define POS_SONAR_9 8
280 #define POS_SONAR_10 9
281 #define POS_SONAR_11 10
282 #define POS_SONAR_12 11
283 #define POS_SONAR_13 12
284 #define POS_SONAR_14 13
285 #define POS_SONAR_15 14
286 #define POS_SONAR_16 15
292 #define USER_BUFFER_LENGTH 0xFFFF
296 #define ROTATION_CONSTANT 0.118597
298 #define RIGHT(trans, steer) (trans + (int)((float)steer*ROTATION_CONSTANT))
299 #define LEFT(trans, steer) (trans - (int)((float)steer*ROTATION_CONSTANT))
301 #define scout_vm(trans, steer) vm(RIGHT(trans, steer), LEFT(trans, steer), 0)
336 typedef unsigned long TimeData;
396 unsigned char bytes[2];
402 unsigned char bytes[2];
408 unsigned char bytes[4];
409 unsigned short words[2];
417 long mesg[USER_BUFFER_LENGTH];
424 long mesg[USER_BUFFER_LENGTH];
451 extern long State[NUM_STATE];
465 extern int Smask[NUM_MASK];
491 extern int Laser[2*NUM_LASER+1];
522 extern char SERVER_MACHINE_NAME[80];
529 extern int SERV_TCP_PORT;
533 extern char ROBOT_MACHINE_NAME[80];
539 extern int CONN_TYPE;
544 extern char SERIAL_PORT[40];
549 extern int SERIAL_BAUD;
555 extern int ROBOT_TCP_PORT;
565 extern double LASER_CALIBRATION[8];
566 extern double LASER_OFFSET[2];
586 int create_robot(
long robot_id);
605 int connect_robot(
long robot_id, ...);
615 int disconnect_robot(
long robot_id);
626 int ac(
int t_ac,
int s_ac,
int r_ac);
638 int sp(
int t_sp,
int s_sp,
int r_sp);
655 int pr(
int t_pr,
int s_pr,
int r_pr);
669 int vm(
int t_vm,
int s_vm,
int r_vm);
710 int mv(
int t_mode,
int t_mv,
int s_mode,
int s_mv,
int r_mode,
int r_mv);
742 int tk(
char *talk_string);
750 int dp(
int x,
int y);
773 int conf_ir(
int history,
int order[16]);
787 int conf_sn(
int rate,
int order[16]);
798 int conf_cp(
int mode);
832 int conf_ls(
unsigned int mode,
833 unsigned int threshold,
835 unsigned int num_data,
836 unsigned int processing);
848 int conf_tm(
unsigned char timeout);
917 int conf_sg(
unsigned int threshold,
918 unsigned int min_points,
935 int da(
int th,
int tu);
950 int ws(
unsigned char t_ws,
unsigned char s_ws,
951 unsigned char r_ws,
unsigned char timeout);
956 int get_rpx(
long *robot_pos);
978 int add_obstacle(
long obs[2*MAX_VERTICES+1]);
983 int add_Obs(
long obs[2*MAX_VERTICES+1]);
997 int delete_obstacle(
long obs[2*MAX_VERTICES+1]);
1002 int delete_Obs(
long obs[2*MAX_VERTICES+1]);
1019 int move_obstacle(
long obs[2*MAX_VERTICES+1],
long dx,
long dy);
1027 int move_Obs(
long obs[2*MAX_VERTICES+1],
long dx,
long dy);
1035 int new_world(
void);
1047 int refresh_all(
void);
1052 int refresh_all_traces(
void);
1057 int refresh_actual_trace(
void);
1062 int refresh_encoder_trace(
void);
1067 int refresh_all_sensors(
void);
1072 int refresh_bumper_sensor(
void);
1077 int refresh_infrared_sensor(
void);
1082 int refresh_sonar_sensor(
void);
1087 int refresh_laser_sensor(
void);
1093 int refresh_client_graphics(
void);
1104 void init_mask(
void);
1110 int init_sensors(
void);
1123 int place_robot(
int x,
int y,
int th,
int tu);
1138 int special_request(
unsigned char *user_send_buffer,
1139 unsigned char *user_receive_buffer);
1167 int draw_robot(
long x,
long y,
int th,
int tu,
int mode);
1184 int draw_line(
long x_1,
long y_1,
long x_2,
long y_2,
int mode);
1205 int draw_arc(
long x_0,
long y_0,
long w,
long h,
int th1,
int th2,
int mode);
1247 int server_is_running(
void);
1257 int quit_server(
void);
1266 int real_robot(
void);
1275 int simulated_robot(
void);
1291 int predict_sensors(
int x,
int y,
int th,
int tu,
long *state,
int *laser);
1323 int motion_check(
long type,
double a1,
double a2,
double a3,
double a4,
1324 double a5,
double a6,
double a7,
double collide[3]);
1336 int get_robot_conf(
long *conf);
1353 int init_receive_buffer(
unsigned short *index);
1369 int extract_receive_buffer_header(
unsigned short *length,
1370 unsigned char *serial_number,
1371 unsigned char *packet_type,
1372 unsigned char *buffer);
1381 int init_send_buffer(
unsigned short *index);
1399 int stuff_send_buffer_header(
unsigned short index,
unsigned char serial_number,
1400 unsigned char packet_type,
unsigned char *buffer);
1411 int stuffchar(
signed char data,
unsigned char *buffer,
unsigned short *index);
1423 int stuff2byteint(
signed short data,
1424 unsigned char *buffer,
unsigned short *index);
1436 int stuff4byteint(
signed long data,
1437 unsigned char *buffer,
unsigned short *index);
1448 int stuffuchar(
unsigned char data,
1449 unsigned char *buffer,
unsigned short *index);
1461 int stuff2byteuint(
unsigned short data,
unsigned char *buffer,
unsigned short *index);
1473 int stuff4byteuint(
unsigned long data,
unsigned char *buffer,
unsigned short *index);
1485 int stuffdouble(
double data,
unsigned char *buffer,
unsigned short *index);
1496 signed char extractchar(
unsigned char *buffer,
unsigned short *index);
1507 signed short extract2byteint(
unsigned char *buffer,
unsigned short *index);
1518 signed long extract4byteint(
unsigned char *buffer,
unsigned short *index);
1529 unsigned char extractuchar(
unsigned char *buffer,
unsigned short *index);
1541 unsigned short extract2byteuint(
unsigned char *buffer,
unsigned short *index);
1553 unsigned long extract4byteuint(
unsigned char *buffer,
unsigned short *index);
1564 double extractdouble(
unsigned char *buffer,
unsigned short *index);
1573 int get_state(
long state[NUM_STATE]);
1575 int get_laser(
int laser[2*NUM_LASER+1]);
1577 int get_mask(
int mask[NUM_MASK]);
1579 int set_mask(
int mask[NUM_MASK]);
1581 int set_server_machine_name(
char *sname);
1583 int set_serv_tcp_port(
int port);
1610 int posDataRequest (
int posRequest );
1626 int posDataCheck (
void );
1644 int posInfraredRingGet (
PosData posData[INFRAREDS] );
1660 int posInfraredGet (
PosData *posData ,
int infraredNumber );
1678 int posSonarRingGet (
PosData posData[SONARS] );
1693 int posSonarGet (
PosData *posData ,
int sonarNumber );
1712 int posBumperGet (
PosData *posData );
1726 int posLaserGet (
PosData *posData );
1740 int posCompassGet (
PosData *posData );
1756 int posTimeGet (
void );
1777 float voltCpuGet (
void );
1792 float voltMotorGet (
void );
Definition: Nclient.h:406
Definition: Nclient.h:400
Definition: Nclient.h:420
Definition: Nclient.h:387
Definition: Nclient.h:345
Definition: Nclient.h:369
Definition: Nclient.h:413
Definition: Nclient.h:394
Definition: Nclient.h:381