123

Dependencies:   mbed XBeeLib_Fixed

Committer:
hexogen85
Date:
Wed Mar 23 13:11:58 2022 +0000
Revision:
11:5b192dd2d8a6
Parent:
7:8c6addd3f909
123

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hbujanda 5:6342ebe62e5f 1 /**
hbujanda 5:6342ebe62e5f 2 * Copyright (c) 2015 Digi International Inc.,
hbujanda 5:6342ebe62e5f 3 * All rights not expressly granted are reserved.
hbujanda 5:6342ebe62e5f 4 *
hbujanda 5:6342ebe62e5f 5 * This Source Code Form is subject to the terms of the Mozilla Public
hbujanda 5:6342ebe62e5f 6 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
hbujanda 5:6342ebe62e5f 7 * You can obtain one at http://mozilla.org/MPL/2.0/.
hbujanda 5:6342ebe62e5f 8 *
hbujanda 5:6342ebe62e5f 9 * Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
hbujanda 5:6342ebe62e5f 10 * =======================================================================
hbujanda 5:6342ebe62e5f 11 */
hbujanda 5:6342ebe62e5f 12
hbujanda 5:6342ebe62e5f 13 #include "mbed.h"
hbujanda 5:6342ebe62e5f 14 #include "XBeeLib.h"
hbujanda 5:6342ebe62e5f 15 #if defined(ENABLE_LOGGING)
hbujanda 5:6342ebe62e5f 16 #include "DigiLoggerMbedSerial.h"
hbujanda 5:6342ebe62e5f 17 using namespace DigiLog;
hbujanda 5:6342ebe62e5f 18 #endif
hbujanda 5:6342ebe62e5f 19
hbujanda 5:6342ebe62e5f 20 using namespace XBeeLib;
hbujanda 5:6342ebe62e5f 21
hbujanda 5:6342ebe62e5f 22 Serial *log_serial;
hbujanda 5:6342ebe62e5f 23
hbujanda 5:6342ebe62e5f 24 /** Callback function, invoked at packet reception */
hbujanda 5:6342ebe62e5f 25 static void receive_cb(const RemoteXBeeZB& remote, bool broadcast, const uint8_t *const data, uint16_t len)
hbujanda 5:6342ebe62e5f 26 {
hbujanda 5:6342ebe62e5f 27 const uint64_t remote_addr64 = remote.get_addr64();
hbujanda 5:6342ebe62e5f 28
hbujanda 5:6342ebe62e5f 29 log_serial->printf("\r\nGot a %s RX packet [%08x:%08x|%04x], len %d\r\nData: ", broadcast ? "BROADCAST" : "UNICAST", UINT64_HI32(remote_addr64), UINT64_LO32(remote_addr64), remote.get_addr16(), len);
hexogen85 11:5b192dd2d8a6 30 char str[10];
hexogen85 11:5b192dd2d8a6 31 int data1 = 0;
hexogen85 11:5b192dd2d8a6 32
hbujanda 5:6342ebe62e5f 33 for (int i = 0; i < len; i++)
hexogen85 11:5b192dd2d8a6 34 {
hexogen85 11:5b192dd2d8a6 35 str[i]=data[i];
hexogen85 11:5b192dd2d8a6 36
hexogen85 11:5b192dd2d8a6 37 ///data1=data1|(data2 << (8*(len-i-1)));
hexogen85 11:5b192dd2d8a6 38
hexogen85 11:5b192dd2d8a6 39 }
hexogen85 11:5b192dd2d8a6 40
hexogen85 11:5b192dd2d8a6 41
hexogen85 11:5b192dd2d8a6 42 std::sscanf(str, "d", &data1);
hexogen85 11:5b192dd2d8a6 43 log_serial->printf("%d ", data1);
hbujanda 5:6342ebe62e5f 44
spastor 7:8c6addd3f909 45 log_serial->printf("\r\n");
hbujanda 5:6342ebe62e5f 46 }
hbujanda 5:6342ebe62e5f 47
spastor 7:8c6addd3f909 48 int main()
hbujanda 5:6342ebe62e5f 49 {
hbujanda 5:6342ebe62e5f 50 log_serial = new Serial(DEBUG_TX, DEBUG_RX);
hbujanda 5:6342ebe62e5f 51 log_serial->baud(9600);
hbujanda 5:6342ebe62e5f 52 log_serial->printf("Sample application to demo how to receive unicast and broadcast data with the XBeeZB\r\n\r\n");
hbujanda 5:6342ebe62e5f 53 log_serial->printf(XB_LIB_BANNER);
hbujanda 5:6342ebe62e5f 54
hbujanda 5:6342ebe62e5f 55 #if defined(ENABLE_LOGGING)
hbujanda 5:6342ebe62e5f 56 new DigiLoggerMbedSerial(log_serial, LogLevelInfo);
hbujanda 5:6342ebe62e5f 57 #endif
hbujanda 5:6342ebe62e5f 58
hbujanda 5:6342ebe62e5f 59 XBeeZB xbee = XBeeZB(RADIO_TX, RADIO_RX, RADIO_RESET, NC, NC, 9600);
hbujanda 5:6342ebe62e5f 60
hbujanda 5:6342ebe62e5f 61 /* Register callbacks */
hbujanda 5:6342ebe62e5f 62 xbee.register_receive_cb(&receive_cb);
hbujanda 5:6342ebe62e5f 63
hbujanda 5:6342ebe62e5f 64 RadioStatus const radioStatus = xbee.init();
hbujanda 5:6342ebe62e5f 65 MBED_ASSERT(radioStatus == Success);
hbujanda 5:6342ebe62e5f 66
hbujanda 5:6342ebe62e5f 67 /* Wait until the device has joined the network */
hbujanda 5:6342ebe62e5f 68 log_serial->printf("Waiting for device to join the network: ");
hbujanda 5:6342ebe62e5f 69 while (!xbee.is_joined()) {
hbujanda 5:6342ebe62e5f 70 wait_ms(1000);
hbujanda 5:6342ebe62e5f 71 log_serial->printf(".");
hbujanda 5:6342ebe62e5f 72 }
hbujanda 5:6342ebe62e5f 73 log_serial->printf("OK\r\n");
hbujanda 5:6342ebe62e5f 74
hbujanda 5:6342ebe62e5f 75 while (true) {
hbujanda 5:6342ebe62e5f 76 xbee.process_rx_frames();
hbujanda 5:6342ebe62e5f 77 wait_ms(100);
hbujanda 5:6342ebe62e5f 78 log_serial->printf(".");
hbujanda 5:6342ebe62e5f 79 }
hbujanda 5:6342ebe62e5f 80
hbujanda 5:6342ebe62e5f 81 delete(log_serial);
hbujanda 5:6342ebe62e5f 82 }