Project

General

Profile

Statistics
| Revision:

root / demos / wireless_test / src / main.c @ 1731

History | View | Annotate | Download (2.13 KB)

1
#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
    //dragonfly_init(ALL_ON);
25
    dragonfly_init(0);
26

    
27
        xbee_init ();
28

    
29
    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
}
102