first commit

Dependencies:   C12832_lcd DigiLogger XBeeLib mbed

Fork of XBee802_Receive_Data by Digi International Inc.

Committer:
hbujanda
Date:
Thu May 14 16:22:29 2015 +0200
Revision:
5:b4cf3c26e2ec
Child:
7:2e6ea668bc9e
Automatic upload

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hbujanda 5:b4cf3c26e2ec 1 /**
hbujanda 5:b4cf3c26e2ec 2 * Copyright (c) 2015 Digi International Inc.,
hbujanda 5:b4cf3c26e2ec 3 * All rights not expressly granted are reserved.
hbujanda 5:b4cf3c26e2ec 4 *
hbujanda 5:b4cf3c26e2ec 5 * This Source Code Form is subject to the terms of the Mozilla Public
hbujanda 5:b4cf3c26e2ec 6 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
hbujanda 5:b4cf3c26e2ec 7 * You can obtain one at http://mozilla.org/MPL/2.0/.
hbujanda 5:b4cf3c26e2ec 8 *
hbujanda 5:b4cf3c26e2ec 9 * Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
hbujanda 5:b4cf3c26e2ec 10 * =======================================================================
hbujanda 5:b4cf3c26e2ec 11 */
hbujanda 5:b4cf3c26e2ec 12
hbujanda 5:b4cf3c26e2ec 13 #include "mbed.h"
hbujanda 5:b4cf3c26e2ec 14 #include "XBeeLib.h"
hbujanda 5:b4cf3c26e2ec 15 #if defined(ENABLE_LOGGING)
hbujanda 5:b4cf3c26e2ec 16 #include "DigiLoggerMbedSerial.h"
hbujanda 5:b4cf3c26e2ec 17 using namespace DigiLog;
hbujanda 5:b4cf3c26e2ec 18 #endif
hbujanda 5:b4cf3c26e2ec 19
hbujanda 5:b4cf3c26e2ec 20 using namespace XBeeLib;
hbujanda 5:b4cf3c26e2ec 21
hbujanda 5:b4cf3c26e2ec 22 Serial *log_serial;
hbujanda 5:b4cf3c26e2ec 23
hbujanda 5:b4cf3c26e2ec 24 static void receive_cb(const RemoteXBee802& remote, bool broadcast, const uint8_t *const data, uint16_t len)
hbujanda 5:b4cf3c26e2ec 25 {
hbujanda 5:b4cf3c26e2ec 26 if (remote.is_valid_addr16b()) {
hbujanda 5:b4cf3c26e2ec 27 log_serial->printf("\r\nGot a %s 16-bit RX packet [%04x], len %d\r\nData: ", broadcast ? "BROADCAST" : "UNICAST", remote.get_addr16(), len);
hbujanda 5:b4cf3c26e2ec 28 } else {
hbujanda 5:b4cf3c26e2ec 29 log_serial->printf("\r\nGot a %s 64-bit RX packet [%08x:%08x], len %d\r\nData: ", broadcast ? "BROADCAST" : "UNICAST", remote.get_addr64(), len);
hbujanda 5:b4cf3c26e2ec 30 }
hbujanda 5:b4cf3c26e2ec 31
hbujanda 5:b4cf3c26e2ec 32 for (int i = 0; i < len; i++)
hbujanda 5:b4cf3c26e2ec 33 log_serial->printf("%02x ", data[i]);
hbujanda 5:b4cf3c26e2ec 34
hbujanda 5:b4cf3c26e2ec 35 log_serial->printf("\r\n");
hbujanda 5:b4cf3c26e2ec 36 }
hbujanda 5:b4cf3c26e2ec 37
hbujanda 5:b4cf3c26e2ec 38 int main()
hbujanda 5:b4cf3c26e2ec 39 {
hbujanda 5:b4cf3c26e2ec 40 log_serial = new Serial(DEBUG_TX, DEBUG_RX);
hbujanda 5:b4cf3c26e2ec 41 log_serial->baud(9600);
hbujanda 5:b4cf3c26e2ec 42 log_serial->printf("Sample application to demo how to receive unicast and broadcast data with the XBee802\r\n\r\n");
hbujanda 5:b4cf3c26e2ec 43 log_serial->printf(XB_LIB_BANNER);
hbujanda 5:b4cf3c26e2ec 44
hbujanda 5:b4cf3c26e2ec 45 #if defined(ENABLE_LOGGING)
hbujanda 5:b4cf3c26e2ec 46 new DigiLoggerMbedSerial(log_serial, LogLevelInfo);
hbujanda 5:b4cf3c26e2ec 47 #endif
hbujanda 5:b4cf3c26e2ec 48
hbujanda 5:b4cf3c26e2ec 49 XBee802 xbee = XBee802(RADIO_TX, RADIO_RX, RADIO_RESET, NC, NC, 9600);
hbujanda 5:b4cf3c26e2ec 50
hbujanda 5:b4cf3c26e2ec 51 /* Register callback */
hbujanda 5:b4cf3c26e2ec 52 xbee.register_receive_cb(&receive_cb);
hbujanda 5:b4cf3c26e2ec 53
hbujanda 5:b4cf3c26e2ec 54 RadioStatus const radioStatus = xbee.init();
hbujanda 5:b4cf3c26e2ec 55 MBED_ASSERT(radioStatus == Success);
hbujanda 5:b4cf3c26e2ec 56
hbujanda 5:b4cf3c26e2ec 57 while (true) {
hbujanda 5:b4cf3c26e2ec 58 xbee.process_rx_frames();
hbujanda 5:b4cf3c26e2ec 59 wait_ms(100);
hbujanda 5:b4cf3c26e2ec 60 log_serial->printf(".");
hbujanda 5:b4cf3c26e2ec 61 }
hbujanda 5:b4cf3c26e2ec 62
hbujanda 5:b4cf3c26e2ec 63 delete(log_serial);
hbujanda 5:b4cf3c26e2ec 64 }