Hiroshi Yamaguchi / Mbed 2 deprecated XBeeExamples

Dependencies:   mbed XBee mbed-rtos

Committer:
yamaguch
Date:
Thu Apr 12 10:21:11 2012 +0000
Revision:
5:d01cf03058f6
1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yamaguch 5:d01cf03058f6 1 #include "XBee.h"
yamaguch 5:d01cf03058f6 2
yamaguch 5:d01cf03058f6 3 void printNetInfo(XBee& xbee) {
yamaguch 5:d01cf03058f6 4 printf("OP: %s\n", (char *) XBeeAddress64(*(uint64_t *) xbee.executeCommand("OP")));
yamaguch 5:d01cf03058f6 5 printf("OI: %s\n", (char *) XBeeAddress16(*(uint16_t *) xbee.executeCommand("OI")));
yamaguch 5:d01cf03058f6 6 printf("CH: %d\n", *(uint8_t *) xbee.executeCommand("CH"));
yamaguch 5:d01cf03058f6 7 }
yamaguch 5:d01cf03058f6 8
yamaguch 5:d01cf03058f6 9 int receiveModemStatus(XBee& xbee) {
yamaguch 5:d01cf03058f6 10 if (xbee.receive() == XBee::ModemStatus) {
yamaguch 5:d01cf03058f6 11 XBeeStatus status;
yamaguch 5:d01cf03058f6 12 if (xbee.scan(status)) {
yamaguch 5:d01cf03058f6 13 const char *modemStatus[] = {
yamaguch 5:d01cf03058f6 14 "Hardware reset", // 0
yamaguch 5:d01cf03058f6 15 "Watchdog timer reset", // 1
yamaguch 5:d01cf03058f6 16 "Joined network (routers and end devices)", // 2
yamaguch 5:d01cf03058f6 17 "Disassociated", // 3
yamaguch 5:d01cf03058f6 18 "?", "?", // 4, 5
yamaguch 5:d01cf03058f6 19 "Coordinator started" // 6
yamaguch 5:d01cf03058f6 20 };
yamaguch 5:d01cf03058f6 21 printf("Modem Status = %s\n", status < 7 ? modemStatus[status] : "?");
yamaguch 5:d01cf03058f6 22 }
yamaguch 5:d01cf03058f6 23 return status;
yamaguch 5:d01cf03058f6 24 }
yamaguch 5:d01cf03058f6 25 return -1;
yamaguch 5:d01cf03058f6 26 }
yamaguch 5:d01cf03058f6 27
yamaguch 5:d01cf03058f6 28 void network_reset() {
yamaguch 5:d01cf03058f6 29 XBee xbee(p9, p10);
yamaguch 5:d01cf03058f6 30 xbee.baud(115200);
yamaguch 5:d01cf03058f6 31
yamaguch 5:d01cf03058f6 32 printf("*** Network Reset ***\n");
yamaguch 5:d01cf03058f6 33
yamaguch 5:d01cf03058f6 34 if (xbee.init()) {
yamaguch 5:d01cf03058f6 35 printNetInfo(xbee);
yamaguch 5:d01cf03058f6 36
yamaguch 5:d01cf03058f6 37 printf("Issuing NR0 command...\n");
yamaguch 5:d01cf03058f6 38 xbee.sendCommand("NR", 0);
yamaguch 5:d01cf03058f6 39
yamaguch 5:d01cf03058f6 40 // wait for XBee to join network
yamaguch 5:d01cf03058f6 41 while (receiveModemStatus(xbee) != 2)
yamaguch 5:d01cf03058f6 42 ;
yamaguch 5:d01cf03058f6 43 printNetInfo(xbee);
yamaguch 5:d01cf03058f6 44 } else {
yamaguch 5:d01cf03058f6 45 printf("XBee connection error");
yamaguch 5:d01cf03058f6 46 }
yamaguch 5:d01cf03058f6 47
yamaguch 5:d01cf03058f6 48 }