Revision 105
Recharging code for the robots now compiles. It is entirely untested.
wl_recharge_group.c | ||
---|---|---|
14 | 14 |
void wl_recharge_cleanup(void); |
15 | 15 |
|
16 | 16 |
// messgae handlers |
17 |
void wl_recharge_station_available(int source);
|
|
17 |
void wl_recharge_available_station(int source);
|
|
18 | 18 |
void wl_recharge_request_accepted(int source); |
19 | 19 |
void wl_recharge_verify(int source); |
20 | 20 |
void wl_recharge_cancel(int source); |
... | ... | |
51 | 51 |
|
52 | 52 |
//global varaibles |
53 | 53 |
//state variables |
54 |
int state = NOT_RECHARGING; |
|
54 |
int recharge_state = NOT_RECHARGING;
|
|
55 | 55 |
int station = -1; |
56 | 56 |
|
57 | 57 |
//counter variables |
... | ... | |
88 | 88 |
**/ |
89 | 89 |
void wl_recharge_begin(void) |
90 | 90 |
{ |
91 |
state = POLLING; |
|
91 |
recharge_state = POLLING;
|
|
92 | 92 |
station = -1; |
93 | 93 |
pollCount = 0; |
94 | 94 |
} |
... | ... | |
100 | 100 |
**/ |
101 | 101 |
void wl_recharge_stop() |
102 | 102 |
{ |
103 |
state = NOT_RECHARGING; |
|
103 |
recharge_state = NOT_RECHARGING;
|
|
104 | 104 |
} |
105 | 105 |
|
106 | 106 |
/** |
... | ... | |
109 | 109 |
**/ |
110 | 110 |
void wl_recharge_dock(void) |
111 | 111 |
{ |
112 |
if (state != SEEKING) |
|
112 |
if (recharge_state != SEEKING)
|
|
113 | 113 |
{ |
114 | 114 |
WL_DEBUG_PRINT("Unexpected docking occurred.\n"); |
115 | 115 |
return; |
116 | 116 |
} |
117 | 117 |
|
118 |
state = DOCKED; |
|
118 |
recharge_state = DOCKED;
|
|
119 | 119 |
} |
120 | 120 |
|
121 | 121 |
/** |
... | ... | |
124 | 124 |
**/ |
125 | 125 |
void wl_recharge_depart(void) |
126 | 126 |
{ |
127 |
if (state != DOCKED) |
|
127 |
if (recharge_state != DOCKED)
|
|
128 | 128 |
{ |
129 | 129 |
WL_DEBUG_PRINT("Unexpected departure occurred.\n"); |
130 | 130 |
return; |
131 | 131 |
} |
132 | 132 |
|
133 |
state = DEPARTING; |
|
133 |
recharge_state = DEPARTING;
|
|
134 | 134 |
} |
135 | 135 |
|
136 | 136 |
/** |
... | ... | |
142 | 142 |
**/ |
143 | 143 |
int wl_recharge_get_state(void) |
144 | 144 |
{ |
145 |
return state; |
|
145 |
return recharge_state;
|
|
146 | 146 |
} |
147 | 147 |
|
148 | 148 |
/** |
... | ... | |
162 | 162 |
**/ |
163 | 163 |
void wl_recharge_send_poll(void) |
164 | 164 |
{ |
165 |
wl_send_global_packet(RECHARGE_GROUP, WL_RECHARGE_POLL_STATIONS, |
|
165 |
wl_send_global_packet(WL_RECHARGE_GROUP, WL_RECHARGE_POLL_STATIONS,
|
|
166 | 166 |
NULL, 0, 0); |
167 | 167 |
} |
168 | 168 |
|
... | ... | |
173 | 173 |
**/ |
174 | 174 |
void wl_recharge_send_request(int dest) |
175 | 175 |
{ |
176 |
wl_send_robot_to_robot_global_packet(RECHARGE_GROUP, WL_RECHARGE_REQUEST, |
|
176 |
wl_send_robot_to_robot_global_packet(WL_RECHARGE_GROUP, WL_RECHARGE_REQUEST,
|
|
177 | 177 |
NULL, 0, dest, REQUEST_FRAME); |
178 | 178 |
} |
179 | 179 |
|
... | ... | |
185 | 185 |
**/ |
186 | 186 |
void wl_recharge_send_verify(int dest) |
187 | 187 |
{ |
188 |
wl_send_robot_to_robot_global_packet(RECHARGE_GROUP, WL_RECHARGE_VERIFY, |
|
188 |
wl_send_robot_to_robot_global_packet(WL_RECHARGE_GROUP, WL_RECHARGE_VERIFY,
|
|
189 | 189 |
NULL, 0, dest, VERIFY_FRAME); |
190 | 190 |
} |
191 | 191 |
|
... | ... | |
195 | 195 |
**/ |
196 | 196 |
void wl_recharge_send_cancel(int dest) |
197 | 197 |
{ |
198 |
wl_send_robot_to_robot_global_packet(RECHARGE_GROUP, WL_RECHARGE_CANCEL, |
|
198 |
wl_send_robot_to_robot_global_packet(WL_RECHARGE_GROUP, WL_RECHARGE_CANCEL,
|
|
199 | 199 |
NULL, 0, dest, CANCEL_FRAME); |
200 | 200 |
} |
201 | 201 |
|
... | ... | |
207 | 207 |
**/ |
208 | 208 |
void wl_recharge_send_seeking(int dest) |
209 | 209 |
{ |
210 |
wl_send_robot_to_robot_global_packet(RECHARGE_GROUP, WL_RECHARGE_SEEKING, |
|
210 |
wl_send_robot_to_robot_global_packet(WL_RECHARGE_GROUP, WL_RECHARGE_SEEKING,
|
|
211 | 211 |
NULL, 0, dest, SEEKING_FRAME); |
212 | 212 |
} |
213 | 213 |
|
... | ... | |
219 | 219 |
**/ |
220 | 220 |
void wl_recharge_send_docked(int dest) |
221 | 221 |
{ |
222 |
wl_send_robot_to_robot_global_packet(RECHARGE_GROUP, WL_RECHARGE_DOCKED, |
|
222 |
wl_send_robot_to_robot_global_packet(WL_RECHARGE_GROUP, WL_RECHARGE_DOCKED,
|
|
223 | 223 |
NULL, 0, dest, DOCKED_FRAME); |
224 | 224 |
} |
225 | 225 |
|
... | ... | |
236 | 236 |
**/ |
237 | 237 |
void wl_recharge_timeout_handler(void) |
238 | 238 |
{ |
239 |
switch (state) |
|
239 |
switch (recharge_state)
|
|
240 | 240 |
{ |
241 | 241 |
case POLLING: |
242 | 242 |
if (pollCount <= 0) |
... | ... | |
252 | 252 |
{ |
253 | 253 |
//request failed |
254 | 254 |
station = -1; |
255 |
state = POLLING; |
|
255 |
recharge_state = POLLING;
|
|
256 | 256 |
break; |
257 | 257 |
} |
258 | 258 |
requestCount--; |
... | ... | |
263 | 263 |
{ |
264 | 264 |
//station is down |
265 | 265 |
station = -1; |
266 |
state = POLLING; |
|
266 |
recharge_state = POLLING;
|
|
267 | 267 |
break; |
268 | 268 |
} |
269 | 269 |
if (verifyCount % VERIFY_FREQUENCY == 0 && verifyCount != VERIFY_DELAY) |
... | ... | |
322 | 322 |
case WL_RECHARGE_STATION_AVAILABLE: |
323 | 323 |
wl_recharge_available_station(source); |
324 | 324 |
break; |
325 |
case WL_RECHRAGE_REQUEST:
|
|
325 |
case WL_RECHARGE_REQUEST:
|
|
326 | 326 |
WL_DEBUG_PRINT("Only stations should receive WL_RECHARGE_REQUEST.\n"); |
327 | 327 |
break; |
328 | 328 |
case WL_RECHARGE_REQUEST_ACCEPT: |
... | ... | |
354 | 354 |
**/ |
355 | 355 |
void wl_recharge_available_station(int source) |
356 | 356 |
{ |
357 |
if (state != POLLING) |
|
357 |
if (recharge_state != POLLING)
|
|
358 | 358 |
return; |
359 | 359 |
station = source; |
360 |
state = REQUESTING; |
|
360 |
recharge_state = REQUESTING;
|
|
361 | 361 |
requestCount = REQUEST_DELAY; |
362 | 362 |
wl_recharge_send_request(station); |
363 | 363 |
} |
... | ... | |
370 | 370 |
**/ |
371 | 371 |
void wl_recharge_request_accepted(int source) |
372 | 372 |
{ |
373 |
if (state != REQUESTING) |
|
373 |
if (recharge_state != REQUESTING)
|
|
374 | 374 |
{ |
375 | 375 |
WL_DEBUG_PRINT("Accepted when we weren't requesting.\n"); |
376 | 376 |
return; |
... | ... | |
381 | 381 |
return; |
382 | 382 |
} |
383 | 383 |
|
384 |
state = SEEKING; |
|
384 |
recharge_state = SEEKING;
|
|
385 | 385 |
verifyCount = VERIFY_DELAY; |
386 | 386 |
} |
387 | 387 |
|
... | ... | |
400 | 400 |
return; |
401 | 401 |
} |
402 | 402 |
|
403 |
switch (state) |
|
403 |
switch (recharge_state)
|
|
404 | 404 |
{ |
405 | 405 |
case SEEKING: |
406 | 406 |
wl_recharge_send_seeking(station); |
... | ... | |
430 | 430 |
} |
431 | 431 |
|
432 | 432 |
verifyCount = VERIFY_DELAY; |
433 |
switch (state) |
|
433 |
switch (recharge_state)
|
|
434 | 434 |
{ |
435 | 435 |
case REQUESTING: |
436 | 436 |
station = -1; |
437 |
state = POLLING; |
|
437 |
recharge_state = POLLING;
|
|
438 | 438 |
break; |
439 | 439 |
case SEEKING: |
440 | 440 |
station = -1; |
441 |
state = POLLING; |
|
441 |
recharge_state = POLLING;
|
|
442 | 442 |
break; |
443 | 443 |
case DOCKED: |
444 | 444 |
WL_DEBUG_PRINT("Charging station kicked us out.\n"); |
... | ... | |
469 | 469 |
} |
470 | 470 |
|
471 | 471 |
verifyCount = VERIFY_DELAY; |
472 |
switch (state) |
|
472 |
switch (recharge_state)
|
|
473 | 473 |
{ |
474 | 474 |
case SEEKING: |
475 | 475 |
break; |
... | ... | |
499 | 499 |
} |
500 | 500 |
|
501 | 501 |
verifyCount = VERIFY_DELAY; |
502 |
switch (state) |
|
502 |
switch (recharge_state)
|
|
503 | 503 |
{ |
504 | 504 |
case DOCKED: |
505 | 505 |
case DEPARTING: |
Also available in: Unified diff