CROTUS / CROTUS_XBee

Dependents:   ProjetCasque

Fork of CROTUS_XBee by Valentin Libioulle

Committer:
libv2001
Date:
Mon Mar 27 16:38:24 2017 +0000
Revision:
2:406da750f115
Parent:
1:13c7d6237a53
Code Review

Who changed what in which revision?

UserRevisionLine numberNew contents of line
libv2001 0:2a59dd59ee5e 1 #include "mbed.h"
libv2001 0:2a59dd59ee5e 2 #include "rtos.h"
libv2001 0:2a59dd59ee5e 3
libv2001 0:2a59dd59ee5e 4 #ifndef XBEE_H
libv2001 0:2a59dd59ee5e 5 #define XBEE_H
libv2001 0:2a59dd59ee5e 6
libv2001 2:406da750f115 7 #define START_BYTE 0x7E
libv2001 0:2a59dd59ee5e 8
libv2001 0:2a59dd59ee5e 9 #define ADDR_64BIT_SIZE 8
libv2001 0:2a59dd59ee5e 10 #define ADDR_16BIT_SIZE 2
libv2001 0:2a59dd59ee5e 11 #define AT_CMD_ID_SIZE 2
libv2001 0:2a59dd59ee5e 12
libv2001 2:406da750f115 13 // Common to all Frame
libv2001 0:2a59dd59ee5e 14 #define START_IDX 0
libv2001 0:2a59dd59ee5e 15 #define LENGTH_MSB_IDX 1
libv2001 0:2a59dd59ee5e 16 #define LENGTH_LSB_IDX 2
libv2001 0:2a59dd59ee5e 17 #define API_ID_IDX 3
libv2001 0:2a59dd59ee5e 18 #define FRAME_MIN_SIZE 4
libv2001 0:2a59dd59ee5e 19
libv2001 2:406da750f115 20 // Supported API ID
libv2001 0:2a59dd59ee5e 21 #define API_ID_AT_CMD 0x08
libv2001 0:2a59dd59ee5e 22 #define API_ID_AT_CMD_QUEUE 0x09
libv2001 0:2a59dd59ee5e 23 #define API_ID_TRANSMIT 0x10
libv2001 0:2a59dd59ee5e 24 #define API_ID_AT_CMD_RSP 0x88
libv2001 0:2a59dd59ee5e 25 #define API_ID_MODEM_STATUS 0x8A
libv2001 0:2a59dd59ee5e 26 #define API_ID_TRANSMIT_STATUS 0x8B
libv2001 0:2a59dd59ee5e 27 #define API_ID_RECEIVED_PACKET 0x90
libv2001 0:2a59dd59ee5e 28
libv2001 2:406da750f115 29 // Common to most of Frame
libv2001 0:2a59dd59ee5e 30 #define FRAME_ID_IDX 4
libv2001 0:2a59dd59ee5e 31
libv2001 2:406da750f115 32 // Specific to AT Command
libv2001 0:2a59dd59ee5e 33 #define AT_CMD_ID_IDX 5
libv2001 0:2a59dd59ee5e 34 #define AT_PARAM_IDX 7
libv2001 0:2a59dd59ee5e 35 #define AT_MIN_SIZE 4
libv2001 0:2a59dd59ee5e 36
libv2001 2:406da750f115 37 // Specific to AT Command Queue
libv2001 0:2a59dd59ee5e 38 #define AT_QUEUE_CMD_1_IDX 5
libv2001 0:2a59dd59ee5e 39 #define AT_QUEUE_CMD_2_IDX 6
libv2001 0:2a59dd59ee5e 40 #define AT_QUEUE_PARAM_IDX 7
libv2001 0:2a59dd59ee5e 41 #define AT_QUEUE_MIN_SIZE 4
libv2001 0:2a59dd59ee5e 42
libv2001 2:406da750f115 43 // Specific to Transmit Command
libv2001 0:2a59dd59ee5e 44 #define TRANSMIT_64BIT_MSB_IDX 5
libv2001 0:2a59dd59ee5e 45 #define TRANSMIT_64BIT_LSB_IDX 12
libv2001 0:2a59dd59ee5e 46 #define TRANSMIT_16BIT_MSB_IDX 13
libv2001 0:2a59dd59ee5e 47 #define TRANSMIT_16BIT_LSB_IDX 14
libv2001 0:2a59dd59ee5e 48 #define TRANSMIT_BROADCAST_IDX 15
libv2001 0:2a59dd59ee5e 49 #define TRANSMIT_OPT_IDX 16
libv2001 0:2a59dd59ee5e 50 #define TRANSMIT_DATA_IDX 17
libv2001 0:2a59dd59ee5e 51 #define TRANSMIT_MIN_SIZE 14
libv2001 0:2a59dd59ee5e 52
libv2001 2:406da750f115 53 // Options for Transmit Command
libv2001 0:2a59dd59ee5e 54 #define TRANSMIT_DEFAULT_BROADCAST 0x00
libv2001 0:2a59dd59ee5e 55 #define TRANSMIT_DEFAULT_OPT 0x00
libv2001 0:2a59dd59ee5e 56
libv2001 2:406da750f115 57 // Specific to AT Command Response
libv2001 0:2a59dd59ee5e 58 #define AT_CMD_RSP_AT_CMD1_IDX 5
libv2001 0:2a59dd59ee5e 59 #define AT_CMD_RSP_AT_CMD2_IDX 6
libv2001 0:2a59dd59ee5e 60 #define AT_CMD_RSP_STATUS_IDX 7
libv2001 0:2a59dd59ee5e 61 #define AT_CMD_RSP_DATA_IDX 8
libv2001 0:2a59dd59ee5e 62 #define AT_CMD_RSP_MIN_SIZE 5
libv2001 0:2a59dd59ee5e 63
libv2001 2:406da750f115 64 // Status for AT Command Response
libv2001 0:2a59dd59ee5e 65 #define AT_CMD_RSP_STATUS_OK 0x00
libv2001 0:2a59dd59ee5e 66 #define AT_CMD_RSP_STATUS_ERROR 0x01
libv2001 0:2a59dd59ee5e 67 #define AT_CMD_RSP_STATUS_INVALID_CMD 0x02
libv2001 0:2a59dd59ee5e 68 #define AT_CMD_RSP_STATUS_INVALID_PARAM 0x03
libv2001 0:2a59dd59ee5e 69 #define AT_CMD_RSP_STATUS_TX_FAILURE 0x04
libv2001 0:2a59dd59ee5e 70
libv2001 2:406da750f115 71 // Specific to Modem Status Command
libv2001 0:2a59dd59ee5e 72 #define MODEM_STATUS_STATUS_IDX 4
libv2001 0:2a59dd59ee5e 73
libv2001 2:406da750f115 74 // Status for Modem Status Command
libv2001 0:2a59dd59ee5e 75 #define MODEM_STATUS_HARDWARE_RST 0x00
libv2001 0:2a59dd59ee5e 76 #define MODEM_STATUS_JOINED_NETWORK 0x02
libv2001 0:2a59dd59ee5e 77 #define MODEM_STATUS_DISASSOCIATED 0x03
libv2001 0:2a59dd59ee5e 78 #define MODEM_STATUS_COORDINATOR_STARTED 0x06
libv2001 0:2a59dd59ee5e 79
libv2001 2:406da750f115 80 // Specific to Transit Status Command
libv2001 0:2a59dd59ee5e 81 #define TRANSMIT_STATUS_16BIT_MSB_IDX 5
libv2001 0:2a59dd59ee5e 82 #define TRANSMIT_STATUS_16BIT_LSB_IDX 6
libv2001 0:2a59dd59ee5e 83 #define TRANSMIT_STATUS_RETRY_COUNT_IDX 7
libv2001 0:2a59dd59ee5e 84 #define TRANSMIT_STATUS_DELIVERY_STATUS_IDX 8
libv2001 0:2a59dd59ee5e 85 #define TRANSMIT_STATUS_DISCOVERY_STATUS_IDX 9
libv2001 0:2a59dd59ee5e 86
libv2001 0:2a59dd59ee5e 87 #define TRANSMIT_STATUS_OK 0x00
libv2001 0:2a59dd59ee5e 88
libv2001 2:406da750f115 89 // Specific to Received Packet Command
libv2001 0:2a59dd59ee5e 90 #define RECEIVED_PACKET_64BIT_MSB_IDX 4
libv2001 0:2a59dd59ee5e 91 #define RECEIVED_PACKET_64BIT_LSB_IDX 11
libv2001 0:2a59dd59ee5e 92 #define RECEIVED_PACKET_16BIT_MSB_IDX 12
libv2001 0:2a59dd59ee5e 93 #define RECEIVED_PACKET_16BIT_LSB_IDX 13
libv2001 0:2a59dd59ee5e 94 #define RECEIVED_PACKET_OPT_IDX 14
libv2001 0:2a59dd59ee5e 95 #define RECEIVED_PACKET_DATA_IDX 15
libv2001 0:2a59dd59ee5e 96 #define RECEIVED_PACKET_MIN_SIZE 12
libv2001 0:2a59dd59ee5e 97
libv2001 1:13c7d6237a53 98 void XbeeSendData(char * data, int dataLength);
libv2001 1:13c7d6237a53 99 bool InitXbee(bool coordinator, void(*packetReceivedCallback)(char*, int), Thread * xbeeTransmitter);
libv2001 0:2a59dd59ee5e 100
libv2001 0:2a59dd59ee5e 101 #endif