Revision 157
Sweet stuff. Eugene use this. It's good.
(But not tested yet, should work, modular, works for all server side applications,
even those that aren't explicitly colonet related.)
test_main.c | ||
---|---|---|
1 | 1 |
#include <stdlib.h> |
2 | 2 |
#include <stdio.h> |
3 |
#include <unistd.h> |
|
3 | 4 |
#include "data_requests.h" |
5 |
#include "wireless.h" |
|
6 |
#include "wl_token_ring.h" |
|
4 | 7 |
|
8 |
void IR_handler(unsigned char* data); |
|
9 |
void bom_handler(BomNode* head); |
|
10 |
void encoder_handler(unsigned char* data); |
|
11 |
|
|
12 |
char bom_responded_flag; |
|
13 |
char ir_responded_flag; |
|
14 |
char encoder_responded_flag; |
|
15 |
|
|
5 | 16 |
int main(void){ |
6 |
printf("Hello\n"); |
|
7 |
data_requests_init(NULL,NULL,NULL); |
|
8 |
return -1; |
|
17 |
wl_init(); |
|
18 |
wl_token_ring_register(); |
|
19 |
data_requests_init(bom_handler,IR_handler,encoder_handler); |
|
20 |
int robot_id; |
|
21 |
bom_responded_flag = 0; |
|
22 |
ir_responded_flag = 0; |
|
23 |
encoder_responded_flag = 0; |
|
24 |
while(1){ |
|
25 |
wl_token_iterator_begin(); |
|
26 |
printf("This far.\n"); |
|
27 |
while(wl_token_iterator_has_next()){ |
|
28 |
robot_id = wl_token_iterator_next(); |
|
29 |
|
|
30 |
bom_responded_flag = 0; |
|
31 |
ir_responded_flag = 0; |
|
32 |
encoder_responded_flag = 0; |
|
33 |
/* |
|
34 |
request_bom_data(robot_id); |
|
35 |
while(!bom_responded_flag){ |
|
36 |
delay_ms(50); |
|
37 |
} |
|
38 |
*/ |
|
39 |
request_IR_data(robot_id); |
|
40 |
while(!ir_responded_flag){ |
|
41 |
usleep(50000); |
|
42 |
} |
|
43 |
/* |
|
44 |
request_encoder_data(robot_id); |
|
45 |
while(!encoder_responded_flag){ |
|
46 |
delay_ms(50); |
|
47 |
} |
|
48 |
*/ |
|
49 |
} |
|
50 |
} |
|
9 | 51 |
} |
52 |
|
|
53 |
void IR_handler(unsigned char* data){ |
|
54 |
char i; |
|
55 |
for(i=0;i<5;i++){ |
|
56 |
printf("IR %i is %u\n\n",i,data[i]); |
|
57 |
} |
|
58 |
ir_responded_flag=1; |
|
59 |
} |
|
60 |
|
|
61 |
void bom_handler(BomNode* head){ |
|
62 |
bom_responded_flag=1; |
|
63 |
} |
|
64 |
|
|
65 |
void encoder_handler(unsigned char* data){ |
|
66 |
encoder_responded_flag=1; |
|
67 |
} |
|
68 |
|
Also available in: Unified diff