root / trunk / code / behaviors / wireless_test / main.c @ 1519
History | View | Annotate | Download (2.13 KB)
1 | 1156 | deffi | #include <dragonfly_lib.h> |
---|---|---|---|
2 | #include <wireless.h> |
||
3 | #include <xbee.h> |
||
4 | |||
5 | // GROUP must be between 0 and 15
|
||
6 | #define GROUP 1 |
||
7 | #define TYPE_RED 'r' |
||
8 | #define TYPE_GREEN 'g' |
||
9 | |||
10 | void receive_handler(char type, int source, unsigned char* packet, int length) |
||
11 | { |
||
12 | |||
13 | orb_set (0,0,0); |
||
14 | |||
15 | switch (type)
|
||
16 | { |
||
17 | case TYPE_RED: orb2_set (255, 0, 0); break; |
||
18 | case TYPE_GREEN: orb2_set (0, 255, 0); break; |
||
19 | } |
||
20 | } |
||
21 | |||
22 | |||
23 | int main(void) { |
||
24 | 1158 | deffi | //dragonfly_init(ALL_ON);
|
25 | dragonfly_init(0);
|
||
26 | 1156 | deffi | |
27 | 1158 | deffi | xbee_init (); |
28 | |||
29 | 1156 | deffi | usb_init (); |
30 | usb_puts ("Startup\r\n");
|
||
31 | |||
32 | orb_init_pwm (); |
||
33 | |||
34 | |||
35 | |||
36 | if (button2_read ())
|
||
37 | { |
||
38 | // Transmitter
|
||
39 | usb_puts ("Transmitter\r\n");
|
||
40 | |||
41 | orb1_set (255, 0, 0); |
||
42 | wl_init(); |
||
43 | orb2_set (255, 0, 0); |
||
44 | |||
45 | while (1) |
||
46 | { |
||
47 | wl_send_global_packet (GROUP, TYPE_RED, "Test\r", 5, 0); |
||
48 | wl_do(); |
||
49 | delay_ms (100);
|
||
50 | |||
51 | wl_send_global_packet (GROUP, TYPE_GREEN, "Test\r", 5, 0); |
||
52 | wl_do(); |
||
53 | delay_ms (100);
|
||
54 | } |
||
55 | } |
||
56 | else
|
||
57 | { |
||
58 | // Receiver
|
||
59 | usb_puts ("Receiver\r\n");
|
||
60 | |||
61 | orb1_set (0, 255, 0); |
||
62 | wl_init(); |
||
63 | orb2_set (0, 255, 0); |
||
64 | |||
65 | usb_puts ("PAN ID: "); usb_puti (xbee_get_pan_id ()); usb_puts ("\r\n"); // -1 |
||
66 | usb_puts ("Channel: "); usb_puti (xbee_get_channel ()); usb_puts ("\r\n"); // 0 |
||
67 | usb_puts ("Address: "); usb_puti (xbee_get_address ()); usb_puts ("\r\n"); // 4/8 |
||
68 | |||
69 | PacketGroupHandler handler = {GROUP, NULL, NULL, &receive_handler, NULL}; |
||
70 | wl_register_packet_group(&handler); |
||
71 | |||
72 | while (1) |
||
73 | { |
||
74 | delay_ms (10);
|
||
75 | wl_do(); |
||
76 | } |
||
77 | } |
||
78 | |||
79 | // +++ => ok
|
||
80 | // ATVR: Version
|
||
81 | // ATMY: ID
|
||
82 | // ATCH: Channel (default C)
|
||
83 | // ATWR: Write
|
||
84 | // ATID: PAN ID
|
||
85 | // ATCN: continue (?)
|
||
86 | |||
87 | // Channel PAN ID // GROUP MESSAGETYPE
|
||
88 | |||
89 | //Send a packet to a specific robot in any PAN.
|
||
90 | //void wl_send_robot_to_robot_global_packet (char group, char type, char *data, int len, int dest, char frame)
|
||
91 | |||
92 | //Send a packet to a specific robot in our PAN.
|
||
93 | //void wl_send_robot_to_robot_packet (char group, char type, char *data, int len, int dest, char frame)
|
||
94 | |||
95 | //Send a packet to all robots.
|
||
96 | //void wl_send_global_packet (char group, char type, char *data, int len, char frame)
|
||
97 | |||
98 | //Send a packet to all robots in our PAN.
|
||
99 | //void?wl_send_pan_packet (char group, char type, char *data, int len, char frame)
|
||
100 | |||
101 | } |