Project

General

Profile

Statistics
| Revision:

root / branches / wireless / code / projects / unit_tests / test_xbee.c @ 1792

History | View | Annotate | Download (2.41 KB)

1 1432 dsschult
#include <dragonfly_lib.h>
2 1624 dsschult
#include <wl_defs.h>
3
#include "xbee.h"
4 1432 dsschult
5
#define ROBOT
6
#define WL_DEBUG
7
8
/*
9
 * This function tests the xbee, returning the results to teraterm
10
 *
11
 *
12
 */
13 1625 dsschult
14 1432 dsschult
int testxbee(void) {
15
16
  unsigned char buf[100];
17
  int i=0;
18
19
        usb_init();
20
        usb_puts("usb turned on, test starting:\r\n");
21
22 1624 dsschult
  int ret = xbee_init();
23
24
  if (ret != WL_SUCCESS) {
25 1617 dsschult
    usb_puts("xbee_init() failed\r\n");
26 1624 dsschult
    usb_puti(ret);
27
    usb_puts("|\r\n");
28 1437 dsschult
    return -1;
29
  } else {
30 1617 dsschult
    usb_puts("xbee_init successful\r\n");
31 1432 dsschult
  }
32 1625 dsschult
33 1432 dsschult
        usb_puts("\r\n\n");
34 1492 dsschult
35
  // check registers
36 1624 dsschult
  WL_DEBUG_PRINT("receive interrupt flag(80)=");
37
  WL_DEBUG_PRINT_HEX(UCSR1B&(1<<RXCIE1));
38
  WL_DEBUG_PRINT("|\r\nreceive flag(10)=");
39
  WL_DEBUG_PRINT_HEX(UCSR1B&(1<<RXEN1));
40
  WL_DEBUG_PRINT("|\r\ntransmit flag(08)=");
41
  WL_DEBUG_PRINT_HEX(UCSR1B&(1<<TXEN1));
42
  WL_DEBUG_PRINT("|\r\ncharacter size(06)=");
43
  WL_DEBUG_PRINT_HEX(UCSR1C&((1<<UCSZ10)|(1<<UCSZ11)));
44
  WL_DEBUG_PRINT("|\r\ncharacter size2(00)=");
45
  WL_DEBUG_PRINT_HEX((UCSR1B&(1<<UCSZ12))|(0<<UCSZ12));
46
  WL_DEBUG_PRINT("|\r\n");
47 1638 dsschult
48 1432 dsschult
        // try getting xbee address
49 1638 dsschult
  uint16_t address = xbee_get_address();
50
  if(address != WL_ERROR_XBEE_COMMAND_16BIT) {
51
    usb_puts("MY address:");
52
    usb_puth8((uint8_t)(address>>8));
53
    usb_puth8((uint8_t)(address&0xFF));
54
    usb_puts("\r\n");
55
  } else {
56
    usb_puts("error getting MY address\r\n");
57
  }
58 1437 dsschult
59 1492 dsschult
  // try setting channel
60 1642 dsschult
  if (xbee_set_channel(0x0F) != WL_SUCCESS) {
61
    usb_puts("error setting channel\r\n");
62
  } else {
63
    usb_puts("ok from setting channel\r\n");
64 1492 dsschult
  }
65
66 1642 dsschult
  int8_t channel = xbee_get_channel();
67
  if (channel != WL_ERROR_XBEE_COMMAND) {
68
    usb_puts("Channel reported:");
69
    usb_puth8((uint8_t)channel);
70
    usb_puts("|should be:");
71
    usb_puth8(0x0F);
72
    usb_puts("\r\n");
73
  } else {
74
    usb_puts("error getting channel\r\n");
75 1492 dsschult
  }
76
77 1642 dsschult
  // try setting pan
78
  if (xbee_set_pan(0x1234) != WL_SUCCESS) {
79
    usb_puts("error setting pan\r\n");
80
  } else {
81
    usb_puts("ok from setting pan\r\n");
82
  }
83 1492 dsschult
84 1642 dsschult
  uint16_t pan = xbee_get_pan();
85
  if (channel != WL_ERROR_XBEE_COMMAND_16BIT) {
86
    usb_puts("pan reported:");
87
    usb_puth16(pan);
88
    usb_puts("|should be:");
89
    usb_puth16(0x1234);
90
    usb_puts("\r\n");
91
  } else {
92
    usb_puts("error getting pan\r\n");
93 1492 dsschult
  }
94 1658 dsschult
95 1492 dsschult
  // end of tests
96 1638 dsschult
  if (xbee_terminate() != 0) {
97 1617 dsschult
    usb_puts("xbee_terminate error\r\n");
98
  } else {
99
    usb_puts("xbee_terminate success\r\n");
100 1638 dsschult
  }
101 1432 dsschult
  usb_puts("testxbee done\r\n\r\n");
102 1437 dsschult
103 1432 dsschult
        return 0;
104 1617 dsschult
}