CROTUS / CROTUS_XBee

Dependents:   ProjetCasque

Fork of CROTUS_XBee by Valentin Libioulle

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