Project

General

Profile

Statistics
| Revision:

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
}