Xbee
XBEE.h
- Committer:
- renanbmx123
- Date:
- 2018-10-14
- Revision:
- 0:fbed291691a6
File content as of revision 0:fbed291691a6:
#if !defined(__XBEE_H_) #define __XBEE_H_ #include "mbed.h" #include <string.h> #include <stdint.h> // uint8_t #include <stdlib.h> // itoa #include <math.h> #define XB_SIZEBUF 64 #define XB_PAYLOAD 16 #define XBEE_COORD 0 #define XBEE_BROAD 1 // para poder declarar como typedef typedef struct __attribute__ ((__packed__)) { uint8_t start_delimiter; uint8_t length_H; uint8_t length; // Frame do Pacote uint8_t frame_type; // 10 uint8_t frame_id; uint8_t dest_addr64[8]; uint8_t dest_addr16[2]; uint8_t broadcast_radius; uint8_t options; uint8_t rf_data[100]; //NOTE: last byte MUST be checksum }pkt_tx; // para poder declarar como typedef typedef struct __attribute__ ((__packed__)) { uint8_t start_delimiter; uint8_t length_H; uint8_t length; // Frame do Pacote uint8_t frame_type; // 8 uint8_t frame_id; uint8_t command[2]; // ASCII uint8_t rf_data[16]; //NOTE: last byte MUST be checksum }pkt_cmd; /* Classe para controlar XBEE Zigbee usando API*/ class XBEE { public: uint8_t buf_tx[XB_SIZEBUF]; // Serial TX uint8_t buf_rx[XB_SIZEBUF]; // Serial RX //CircularBuffer<uint8_t, XB_SIZEBUF> buf_rx; int count_tx; int count_rx; // DEVICE DATA char NI[16]; // Device Name int ID; // Net ID int MY; // Device Net Address int SH; // Serial High int SL; // Serial Low int PL; // Power Level int BD; // Baud Rate int AO; // API option int DB; // RSSI between messages int TP; // Temperature inside module //XBEE(PinName tx, PinName rx, int baud = 9600); XBEE(Serial* serial, int baud = 9600); /** Class destructor */ virtual ~XBEE(); void recvAttach (void); // High Level Function void init (void); int send_msg(char * str, int dest); int set_cfg(char * cmd, int value); int recv_msg(char * buf, int tam); int read_cfg(char * cmd, int & var); void clear_buf(void); // Low Level Function int create_TX(char * str, int dest); int create_CMD(char * cmd, int val); void sendBuffer(void); //void printBuffer(void); void recv_NI(void); void recv_CMD(int & cmd); void int_mng(int value); // Auxiliar Function //char validPackage (uint8_t * buf, int tam); int dec2hex(int nbr); int hex2dec(int nbr); //ToDo protected: //RawSerial *xbee; Serial* xbee; int int_ctrl; }; #endif /* defined(__XBEE_H_) */