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.
Fork of CROTUS_XBee by
xbee.h
- Committer:
- libv2001
- Date:
- 2017-04-03
- Revision:
- 6:1ea0d334c9de
- Parent:
- 2:406da750f115
File content as of revision 6:1ea0d334c9de:
#include "mbed.h"
#include "rtos.h"
#ifndef XBEE_H
#define XBEE_H
#define START_BYTE 0x7E
#define ADDR_64BIT_SIZE 8
#define ADDR_16BIT_SIZE 2
#define AT_CMD_ID_SIZE 2
// Common to all Frame
#define START_IDX 0
#define LENGTH_MSB_IDX 1
#define LENGTH_LSB_IDX 2
#define API_ID_IDX 3
#define FRAME_MIN_SIZE 4
// Supported API ID
#define API_ID_AT_CMD 0x08
#define API_ID_AT_CMD_QUEUE 0x09
#define API_ID_TRANSMIT 0x10
#define API_ID_AT_CMD_RSP 0x88
#define API_ID_MODEM_STATUS 0x8A
#define API_ID_TRANSMIT_STATUS 0x8B
#define API_ID_RECEIVED_PACKET 0x90
// Common to most of Frame
#define FRAME_ID_IDX 4
// Specific to AT Command
#define AT_CMD_ID_IDX 5
#define AT_PARAM_IDX 7
#define AT_MIN_SIZE 4
// Specific to AT Command Queue
#define AT_QUEUE_CMD_1_IDX 5
#define AT_QUEUE_CMD_2_IDX 6
#define AT_QUEUE_PARAM_IDX 7
#define AT_QUEUE_MIN_SIZE 4
// Specific to Transmit Command
#define TRANSMIT_64BIT_MSB_IDX 5
#define TRANSMIT_64BIT_LSB_IDX 12
#define TRANSMIT_16BIT_MSB_IDX 13
#define TRANSMIT_16BIT_LSB_IDX 14
#define TRANSMIT_BROADCAST_IDX 15
#define TRANSMIT_OPT_IDX 16
#define TRANSMIT_DATA_IDX 17
#define TRANSMIT_MIN_SIZE 14
// Options for Transmit Command
#define TRANSMIT_DEFAULT_BROADCAST 0x00
#define TRANSMIT_DEFAULT_OPT 0x00
// Specific to AT Command Response
#define AT_CMD_RSP_AT_CMD1_IDX 5
#define AT_CMD_RSP_AT_CMD2_IDX 6
#define AT_CMD_RSP_STATUS_IDX 7
#define AT_CMD_RSP_DATA_IDX 8
#define AT_CMD_RSP_MIN_SIZE 5
// Status for AT Command Response
#define AT_CMD_RSP_STATUS_OK 0x00
#define AT_CMD_RSP_STATUS_ERROR 0x01
#define AT_CMD_RSP_STATUS_INVALID_CMD 0x02
#define AT_CMD_RSP_STATUS_INVALID_PARAM 0x03
#define AT_CMD_RSP_STATUS_TX_FAILURE 0x04
// Specific to Modem Status Command
#define MODEM_STATUS_STATUS_IDX 4
// Status for Modem Status Command
#define MODEM_STATUS_HARDWARE_RST 0x00
#define MODEM_STATUS_JOINED_NETWORK 0x02
#define MODEM_STATUS_DISASSOCIATED 0x03
#define MODEM_STATUS_COORDINATOR_STARTED 0x06
// Specific to Transit Status Command
#define TRANSMIT_STATUS_16BIT_MSB_IDX 5
#define TRANSMIT_STATUS_16BIT_LSB_IDX 6
#define TRANSMIT_STATUS_RETRY_COUNT_IDX 7
#define TRANSMIT_STATUS_DELIVERY_STATUS_IDX 8
#define TRANSMIT_STATUS_DISCOVERY_STATUS_IDX 9
#define TRANSMIT_STATUS_OK 0x00
// Specific to Received Packet Command
#define RECEIVED_PACKET_64BIT_MSB_IDX 4
#define RECEIVED_PACKET_64BIT_LSB_IDX 11
#define RECEIVED_PACKET_16BIT_MSB_IDX 12
#define RECEIVED_PACKET_16BIT_LSB_IDX 13
#define RECEIVED_PACKET_OPT_IDX 14
#define RECEIVED_PACKET_DATA_IDX 15
#define RECEIVED_PACKET_MIN_SIZE 12
void XbeeSendData(char * data, int dataLength);
bool InitXbee(bool coordinator, void(*packetReceivedCallback)(char*, int), Thread * xbeeTransmitter);
#endif
