Library used to receive data through a wireless channel using XBEE.
Dependencies: mbed
Fork of frdm_xbee by
Diff: xbee.cpp
- Revision:
- 3:377a8165aae1
- Parent:
- 2:ccf471fbd56c
--- a/xbee.cpp Sat Oct 18 19:58:20 2014 +0000 +++ b/xbee.cpp Mon Oct 20 07:04:24 2014 +0000 @@ -1,20 +1,19 @@ -#include "mbed.h" +#include "xbee.h" #define XBEE_SERVER 0 #define XBEE_CLIENT 1 #define SERIAL_BAUDRATE 115200 -#define BUFFER_SIZE 14 #define BUFFER_FORMAT "%X %X %X %X %X %X %X %X %X" -#define BUFFER_FORMAT_RX "%c%c%c%c%c%c%c%c%c%c%c%c" +#define BUFFER_FORMAT_RX "%c%c%c%c%c%c%c%c%c%c%c%c%c%c" #define BUFFER_RX_DATA_WR &CommandRx[0],&CommandRx[1],&CommandRx[2],&CommandRx[3],\ &CommandRx[4],&CommandRx[5],&CommandRx[6],&CommandRx[7],\ - &CommandRx[8],&CommandRx[9],&CommandRx[10],&CommandRx[11] + &CommandRx[8],&CommandRx[9],&CommandRx[10],&CommandRx[11],&CommandRx[12],&CommandRx[13] #define BUFFER_RX_DATA_RD CommandRx[0],CommandRx[1],CommandRx[2],CommandRx[3],\ CommandRx[4],CommandRx[5],CommandRx[6],CommandRx[7],\ CommandRx[8] Serial PC(USBTX, USBRX); -DigitalOut Indicator(LED_GREEN); +DigitalOut Indicator(LED2); int XBee_u16Loop; #if XBEE_SERVER == 1 @@ -26,9 +25,10 @@ #endif #if XBEE_CLIENT == 1 -Serial XBeeClient(PTE24, PTE25); /* Tx, Rx*/ -DigitalOut RSTClient(PTA1); +Serial XBeeClient(p9, p10); /* Tx, Rx*/ +DigitalOut RSTClient(p26); char CommandRx[BUFFER_SIZE]; +extern char inBuffer[]; volatile int XBee_u8RxResult; int XBee_boRxIndication = 0; int XBee_boRxAllowed = 1; @@ -70,8 +70,10 @@ if(XBee_boRxIndication == 1) { - PC.printf("\r\nRx done [%i]. ",XBee_u8RxResult); + PC.printf("\r\nRx done [%i] %X. ",XBee_u8RxResult,CommandRx[0]); PC.printf( BUFFER_FORMAT, BUFFER_RX_DATA_RD ); + memcpy(inBuffer,CommandRx,BUFFER_SIZE-5); + } } return; @@ -92,7 +94,7 @@ #endif #if XBEE_CLIENT == 1 - PC.printf("\r\nSetting client XBee..."); + //PC.printf("\r\nSetting client XBee..."); XBeeClient.baud(SERIAL_BAUDRATE); XBeeClient.attach(&XBeeClientRx, Serial::RxIrq); XBee_u8RxResult = 0; @@ -120,7 +122,7 @@ void XBee_vMain(void) { XBee_u16Loop++; - PC.printf("\r\n[%i]:",XBee_u16Loop); + //PC.printf("\r\n[%i]:",XBee_u16Loop); if(XBee_u8TxRq == 1) { @@ -153,7 +155,7 @@ } #endif /*#if XBEE_SERVER == 1*/ -#if 1 +#if 0 int main() {