root / trunk / code / projects / colonet / server / VirtualWall.cpp @ 1856
History | View | Annotate | Download (1.47 KB)
1 | 659 | jknichel | /**
|
---|---|---|---|
2 | * Eugene Marinelli
|
||
3 | */
|
||
4 | |||
5 | #include <VirtualWall.h> |
||
6 | 661 | jknichel | #include <colonet_wireless.h> |
7 | 659 | jknichel | |
8 | VirtualWall::VirtualWall(void) {
|
||
9 | wall_available = false;
|
||
10 | } |
||
11 | |||
12 | VirtualWall::~VirtualWall(void) {
|
||
13 | } |
||
14 | |||
15 | int VirtualWall::set_coordinates(int upper_x, int upper_y, int lower_x, int lower_y) { |
||
16 | if (upper_x < 0 || upper_y < 0 || lower_x < 0 || lower_y < 0) { |
||
17 | return -1; |
||
18 | } |
||
19 | |||
20 | upper_left_x = upper_x; |
||
21 | upper_left_y = upper_y; |
||
22 | lower_right_x = lower_x; |
||
23 | lower_right_y = lower_y; |
||
24 | |||
25 | wall_available = true;
|
||
26 | |||
27 | 661 | jknichel | /* Let the robots know. */
|
28 | send_to_robots(); |
||
29 | |||
30 | 659 | jknichel | return 0; |
31 | } |
||
32 | |||
33 | 661 | jknichel | void VirtualWall::send_to_robots() {
|
34 | if (wall_available) {
|
||
35 | unsigned char args[PACKET_DATA_LEN]; |
||
36 | |||
37 | args[0] = (upper_left_x >> 8) & 0xFF; |
||
38 | args[1] = upper_left_x & 0xFF; |
||
39 | args[2] = (upper_left_y >> 8) & 0xFF; |
||
40 | args[3] = upper_left_y & 0xFF; |
||
41 | colonet_wl_send(0, GLOBAL_DEST, COLONET_COMMAND, SERVER_REPORT_VIRTUAL_WALL_UPPER, args);
|
||
42 | |||
43 | args[0] = (lower_right_x >> 8) & 0xFF; |
||
44 | args[1] = lower_right_x & 0xFF; |
||
45 | args[2] = (lower_right_y >> 8) & 0xFF; |
||
46 | args[3] = lower_right_y & 0xFF; |
||
47 | colonet_wl_send(0, GLOBAL_DEST, COLONET_COMMAND, SERVER_REPORT_VIRTUAL_WALL_LOWER, args);
|
||
48 | } |
||
49 | } |
||
50 | |||
51 | 659 | jknichel | void VirtualWall::clear() {
|
52 | wall_available = false;
|
||
53 | } |
||
54 | |||
55 | int VirtualWall::get_coordinates(int* upper_x, int* upper_y, int* lower_x, int* lower_y) { |
||
56 | if (wall_available) {
|
||
57 | *upper_x = upper_left_x; |
||
58 | *upper_y = upper_left_y; |
||
59 | *lower_x = lower_right_x; |
||
60 | *lower_y = lower_right_y; |
||
61 | |||
62 | return 0; |
||
63 | } else {
|
||
64 | return -1; |
||
65 | } |
||
66 | } |