Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: SDFileSystem mbed
Fork of All_Combined_Real2 by
XBeeLib.cpp
- Committer:
- colingm
- Date:
- 2016-03-23
- Revision:
- 5:6532c5a5f576
File content as of revision 5:6532c5a5f576:
#include "XBeeLib.h"
#include "xbee.h"
#define UINT64(msb,lsb) (uint64_t)(((uint64_t)(msb) << 32) | (lsb))
#define REMOTE_NODE_ADDR64_MSB ((uint32_t)0x0013A200)
#define REMOTE_NODE_ADDR64_LSB ((uint32_t)0x41030E8A)
#define REMOTE_NODE_ADDR64 UINT64(REMOTE_NODE_ADDR64_MSB, REMOTE_NODE_ADDR64_LSB)
#define XBEE_BAUD_RATE 115200
#define MAX_BYTES 256
#define MAX_SIZE 512
Serial *log_serial;
XBee xbee;
Serial xbeeSerial(D1, D0);
int frameID = 0;
void send_data_to_remote_node(char *data, int frame, int framePart, int length)
{
unsigned char outFrame[MAX_SIZE];
// log_serial->printf("Old Length: %04x\r\n", (uint16_t)(length + 11));
int frameLen = xbee.Send((unsigned char*)data, length, outFrame, REMOTE_NODE_ADDR64);
log_serial->printf("Message prepared to send\r\n");
for (int i = 0; i < frameLen; i++) {
// log_serial->printf("%02x ", outFrame[i]);
xbeeSerial.putc(outFrame[i]);
}
// log_serial->printf("\r\n");
log_serial->printf("Message finished sending\r\n");
}
void XBeeInit(Serial *pcLogger)
{
log_serial = pcLogger;
xbeeSerial.baud(XBEE_BAUD_RATE);
}
void XBeeSend(const char *message, int length)
{
int framePart = 0;
for (int i = 0; i < length; i += MAX_BYTES) {
log_serial->printf("partition at %d\r\n", i);
int arraySize = length - i;
if (arraySize > MAX_BYTES + 1)
arraySize = MAX_BYTES + 1;
char partition[arraySize];
int j;
for (j = i; ((j - i) < MAX_BYTES) && (j < length); j++) {
partition[j-i] = message[j];
}
send_data_to_remote_node(partition, frameID, framePart, j-i);
wait_ms(25);
}
frameID++;
}
void XBeeDestroy()
{
}
