Project

General

Profile

Statistics
| Revision:

root / branches / wireless / code / projects / unit_tests / test_wireless.c.bak @ 1617

History | View | Annotate | Download (3.02 KB)

1 1393 cmar
/**
2
 * Instructions:
3 1425 cmar
 *  - wait for both robots to show ORB 1 RED and ORB 2 GREEN
4 1393 cmar
 *  - press BUTTON 1 on robot to send first (ROBOT 1) - orbs should turn PURPLE
5
 *  - press BUTTON 2 on robot to receive first (ROBOT 2) - orbs should turn ORANGE
6
 *  - wait at least a second, then press BUTTON 1 on both robots SIMULTANEOUSLY
7
 *  - ROBOT 2 orbs should cycle ORANGE to RED to BLUE
8
 *  - then ROBOT 1 orbs should cycle PURPLE to RED to BLUE
9
 *  - then orbs on both robots should turn GREEN
10
 *  - test will reset to ORB 1 RED and ORB 2 CYAN
11
 *  - test should take ~7 seconds
12 1425 cmar
 *
13
 * Depends on:
14
 *  - Orbs (Lights)
15
 *  - Serial (for debugging)
16 1393 cmar
 **/
17
18
#include <dragonfly_lib.h>
19
#include <wl_basic.h>
20
21
unsigned char* packet;
22 1427 cmar
int length;
23 1393 cmar
24
int testwireless(void) {
25
    int count = 0;
26
    int is_sender = 0;
27
28
    wl_basic_init_default();
29
    wl_set_channel(0x0E);
30
31
    orb1_set_color(RED);
32 1425 cmar
    orb2_set_color(GREEN);
33 1393 cmar
    delay_ms(500);
34
    while (count < 1) {
35
        if (button1_click()) {
36
            is_sender = 1;
37
            orb_set_color(PURPLE);
38
            count++;
39
        }
40
        if (button2_click()) {
41
            is_sender = 0;
42
            orb_set_color(ORANGE);
43
            count++;
44
        }
45
    }
46
    count = 0;
47
48
    delay_ms(1000);
49
50
    button1_wait();
51
52
    delay_ms(500);
53
54
    if (is_sender == 1) {
55
        delay_ms(1000);
56
        wl_basic_send_global_packet(1, "r", 2);
57
        usb_puts("sent RED packet\r\n");
58
        delay_ms(1000);
59
        wl_basic_send_global_packet(1, "b", 2);
60
        usb_puts("sent BLUE packet\r\n");
61
        while(count < 2) {
62 1427 cmar
            packet = wl_basic_do_default(&length);
63 1393 cmar
            if (packet != 0) {
64 1427 cmar
                if (length > 0) {
65 1393 cmar
                    if (packet[0] == 'r') {
66
                        orb_set_color(RED);
67
                        usb_puts("received RED packet\r\n");
68
                        count++;
69
                    }
70
                    else if (packet[0] == 'b') {
71
                        orb_set_color(BLUE);
72
                        usb_puts("received BLUE packet\r\n");
73
                        count++;
74
                    }
75
                }
76
            }
77
        }
78
    }
79
    else {
80
        while(count < 2) {
81 1427 cmar
            packet = wl_basic_do_default(&length);
82 1393 cmar
            if (packet != 0) {
83 1427 cmar
                if (length > 0) {
84 1393 cmar
                    if (packet[0] == 'r') {
85
                        orb_set_color(RED);
86
                        usb_puts("received RED packet\r\n");
87
                        count++;
88
                    }
89
                    else if (packet[0] == 'b') {
90
                        orb_set_color(BLUE);
91
                        usb_puts("received BLUE packet\r\n");
92
                        count++;
93
                    }
94
                }
95
            }
96
        }
97
        delay_ms(1000);
98
        wl_basic_send_global_packet(1, "r", 2);
99
        usb_puts("sent RED packet\r\n");
100
        delay_ms(1000);
101
        wl_basic_send_global_packet(1, "b", 2);
102
        usb_puts("sent BLUE packet\r\n");
103
    }
104
    delay_ms(1000);
105
106
	wl_terminate();
107
108
    orb_set_color(GREEN);
109
110
    delay_ms(2000);
111
112
    return 0;
113
}