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: mbed EthernetInterface WebSocketClient mbed-rtos BufferedSerial
Fork of APP3_Lab by
xbee.cpp
- Committer:
- Cheroukee
- Date:
- 2017-09-27
- Revision:
- 1:ea1b52d0a8a3
- Child:
- 2:a9bb12eefc08
File content as of revision 1:ea1b52d0a8a3:
/***
* xbee.cpp - en-tete de lib xbee - fouj1807 - mcgj2701
*/
#include "xbee.h"
#define ZIGBEE_DELIMITER 0x7E
DigitalOut xbee_led(LED1);
DigitalOut xbee_reset(p8);
Serial xbee(p13, p14); // tx, rx
char TransmitBuffer[2048] = {0};
char ReceiveBuffer[2048] = {0};
void xbee_init()
{
xbee_reset = 0;
wait_ms(400);
xbee_reset = 1;
wait_ms(5000);
xbee_led = 1;
}
bool set_pan_id(long pan_id)
{
return false;
}
long get_pan_id()
{
return 0L;
}
bool transmit_request(char* buffer, int length)
{
// Delimiter
TransmitBuffer[0] = ZIGBEE_DELIMITER;
char checksum = 0xFF;
// Frame Length
int frame_length = length + 14;
TransmitBuffer[1] = frame_length >> 8;
TransmitBuffer[2] = frame_length & 0xFF;
// Frame Type
TransmitBuffer[3] = 0x10;
// Frame ID
TransmitBuffer[4] = 0x01;
// Should set address if different from coordinator
//TransmitBuffer[5] =
// 16-bit address, broadcast address
TransmitBuffer[13] = 0xFF;
TransmitBuffer[14] = 0xFE;
// Max hops, 0 = max
TransmitBuffer[15] = 0x00;
// Transmit options
TransmitBuffer[16] = 0x00;
// Insert buffer data
for (int i = 0; i < length; i++)
{
TransmitBuffer[17 + i] = buffer[i];
}
// Calculate checksum
for (int i = 3; i < 17 + length; i++)
{
checksum -= TransmitBuffer[i];
}
// Insert checksum into buffer
TransmitBuffer[17 + length] = checksum;
for (int i = 0; i < 17 + length + 1; i++)
{
xbee.putc(TransmitBuffer[i]);
}
xbee_led = !xbee_led;
return false;
}
int receive_buffer(char* buffer, int max_length)
{
return 0;
}
