Project

General

Profile

Revision 1032

Having trouble with wireless (I think) hopefully this will work by friday.

View differences:

test.c
11 11

  
12 12
#define MAP_REQUEST_GROUP 23
13 13

  
14
#define DATA_INIT 4
14
#define DATA_SERVER_IDENTIFY 5
15
#define DATA_SERVER_REPLY 4
15 16
#define DATA_POINT 2 
16 17
#define DATA_REQUEST 3
17 18

  
18
#define WL_CHANNEL = 0xE
19
#define WL_CHANNEL 0xE
19 20

  
20
int state;
21
int velocity;
22
int server = -1;
21
int state; int velocity;
22
int server;
23 23
char buf[100];
24 24

  
25 25
void respond(char type, int source, unsigned char* packet, int length);
......
30 30

  
31 31
int main(void)
32 32
{
33
	server = -1;
34
		
33 35
    /* initialize components and join the token ring */
34 36
    dragonfly_init(RANGE | BOM | COMM);
35
    odometry_init();
37
	
38
	usb_init(); usb_puts("usb turned on\r\n");
39
		
40
    //odometry_init();
36 41
    
37
	wl_init();
42
	wl_init(); usb_puts("wireless turned on\r\n");
38 43
    wl_set_channel(WL_CHANNEL);
39 44
    wl_register_packet_group(&requestHandler);
40 45
    
41 46
    wl_token_ring_register();
42 47
	wl_token_ring_set_bom_functions(transmit, bom_off, get_max_bom);
43 48
    wl_token_ring_join();
49
	usb_puts("token ring joined\r\n");
44 50

  
51
	char buf[500];
52
	
53
	int prescalar = 0;
54

  
45 55
    while(1)
46 56
    {
47 57
		wl_do();
58
		
59
		if(!(++prescalar%1000)){	
60
			sprintf(buf, "# Robots = %d, # Robots in matrix = %d\r\n",
61
				wl_token_get_robots_in_ring(), wl_token_get_num_robots());
62
			usb_puts(buf);
63
		}
48 64
    }
49 65

  
66
	usb_puts("Terminating\r\n");
67

  
50 68
    wl_terminate();
51 69
    return 0;
52 70
}
......
60 78
		store[0] = 0;
61 79
    	store[1] = 0;
62 80
    	*((double*)(store + 2)) = 5.0;
63
    	store[4] = 125;	// IR1 range
81
    	store[4] = 125;	/* IR1 range*/
64 82
		store[5] = 125;	// IR2 range
65 83
		store[6] = 125;	// IR3 range
66 84
		store[7] = 125;	// IR4 range
......
70 88

  
71 89
		wl_send_robot_to_robot_global_packet(MAP_REQUEST_GROUP, 
72 90
			DATA_POINT, data, 18, source, 0);
91
		delay_ms(50);
73 92
	}
74
	else if(type==DATA_INIT){
93
	else if(type==DATA_SERVER_REPLY){
75 94
		server = source;
76 95
	}
77 96
}
78 97

  
79 98
void transmit(){
80
	bom_on();
81

  
82 99
	/*If a server hasn't declared itself, return.*/
83
	if(server == -1) return;
100
	if(server == -1){
101
		wl_send_global_packet(MAP_REQUEST_GROUP, 
102
			DATA_SERVER_IDENTIFY, NULL, 0, 0);
103
		delay_ms(50);
104
	}
105
	else{
84 106
	
85
	int store[9];
86
	store[0] = 0; //X
87
    store[1] = 0; //Y
88
    *((double*)(store + 2)) = 5.0; //Theta.
89
    store[4] = 125;	// IR1 range
90
	store[5] = 125;	// IR2 range
91
	store[6] = 125;	// IR3 range
92
	store[7] = 125;	// IR4 range
93
	store[8] = 125;	// IR5 range
107
		int store[9];
108
		store[0] = 0; //X
109
    	store[1] = 0; //Y
110
    	*((double*)(store + 2)) = 5.0; //Theta.
111
    	store[4] = 125;	// IR1 range
112
		store[5] = 125;	// IR2 range
113
		store[6] = 125;	// IR3 range
114
		store[7] = 125;	// IR4 range
115
		store[8] = 125;	// IR5 range
94 116

  
95
	char* data = (char*)store;
117
		char* data = (char*)store;
96 118

  
97
	wl_send_robot_to_robot_global_packet(MAP_REQUEST_GROUP, 
98
		DATA_POINT, data, 18, server, 0);
119
		wl_send_robot_to_robot_global_packet(MAP_REQUEST_GROUP, 
120
			DATA_POINT, data, 18, server, 0);
121
		delay_ms(50);
122
	
123
		bom_on();
124
	}
99 125
}
100 126

  
101 127

  

Also available in: Unified diff