Code APP3
Dependencies: mbed EthernetInterface WebSocketClient mbed-rtos BufferedSerial
Fork of APP3_Lab by
xbee.h
- Committer:
- Cheroukee
- Date:
- 2017-09-30
- Revision:
- 2:a9bb12eefc08
- Parent:
- 1:ea1b52d0a8a3
- Child:
- 5:9e6a09a38785
File content as of revision 2:a9bb12eefc08:
/*** * xbee.h - en-tete de lib xbee - fouj1807 - mcgj2701 */ #pragma once #include "mbed.h" extern Serial xbee; typedef enum { ATCommand = 0x08, ATCommandQueue = 0x09, TransmitRequest = 0x10, ExplicitAddressing = 0x11, RemoteCommandRequest = 0x17, CreateSourceRoute = 0x21, ATCommandResponse = 0x88, ModemStatus = 0x8A, ZigBeeTransmitStatus = 0x8B, ZigBeeReceivePacket = 0x90, ZigBeeExplicitRxIndicator = 0x91, ZigBeeIODataSampleRxIndicator = 0x92, XBeeSensorReadIndicator = 0x94, NodeIndentificationIndicator = 0x95, RemoteCommandResponse = 0x97, OverTheAirFirmwareUpdateStatus = 0xA0, RouteRecordIndicator = 0xA1, ManyToOneRouteRequestIndicator = 0xA3 } frame_type_t; typedef struct { char addr_0; // MSB char addr_1; char addr_2; char addr_3; char addr_4; char addr_5; char addr_6; char addr_7; // LSB } zigbee_addr_64_t; typedef struct { char addr_msb; char addr_lsb; } zigbee_addr_16_t; typedef enum { // INSERT AT COMMAND LIST } at_command_t; typedef struct { unsigned short length; frame_type_t frame_type; char frame_id; } frame_t; #define FRAME_DELIMITER_POS 0 #define FRAME_LEN_MSB_POS 1 #define FRAME_LEN_LSB_POS 2 #define FRAME_CHEKSUM_POS 3 + frame_data_size #define API_FRAME_TYPE_POS 3 #define API_FRAME_ID_POS 4 #define TRANSMIT_REQ_ADDR64_MSB_POS 5 #define TRANSMIT_REQ_ADDR16_MSB_POS 13 #define TRANSMIT_REQ_RADIUS_POS 15 #define TRANSMIT_REQ_DATA_START 17 #define TRANSMIT_REQ_OVERHEAD_LENGTH 14 #define DECLARE_ADDR16_UNKNOWN_OR_BCAST zigbee_addr_16_t def_addr16_bcast = { 0xFF, 0xFE }; #define USE_ADDR16_UNKNOWN_OR_BCAST def_addr16_bcast #define DECLARE_ADDR64_COORD zigbee_addr_64_t def_addr64_coord = { 0, 0, 0, 0, 0, 0, 0, 0 }; #define USE_ADDR64_COORD def_addr64_coord #define DECLARE_ADDR64_BCAST zigbee_addr_64_t def_addr64_bcast = { 0, 0, 0, 0, 0, 0, 0xFF, 0xFE }; #define USE_ADDR64_BCAST def_addr64_bcast #define ZIGBEE_DELIMITER 0x7E extern char TransmitBuffer[2048]; extern char ReceiveBuffer[2048]; void xbee_init(); bool set_pan_id(long pan_id); long get_pan_id(); int receive_buffer(char* buffer, int max_length); void build_api_frame_header(int frame_data_size); void build_api_frame_checksum(int frame_data_size); void set_api_frame_type(frame_type_t frame_type); void set_api_frame_id(int id); void set_at_command(int at_command); void set_64_addr(long address); void set_16_addr(int address); void set_broadcast_radius(int position, char radius); void set_transmit_request_options(int position, char options); void set_transmit_request_data(char* data, int data_length); bool transmit_request_64(char* buffer, int data_length, char options, zigbee_addr_64_t destination); bool transmit_request_16(char* buffer, int data_length, char options, zigbee_addr_16_t destination); bool transmit_request(char* buffer, int data_length, char options, zigbee_addr_64_t destination64, zigbee_addr_16_t destination16); void transmit(int packet_length);