Xbee

Committer:
renanbmx123
Date:
Sun Oct 14 02:01:07 2018 +0000
Revision:
0:fbed291691a6
Xbee

Who changed what in which revision?

UserRevisionLine numberNew contents of line
renanbmx123 0:fbed291691a6 1 #if !defined(__XBEE_H_)
renanbmx123 0:fbed291691a6 2 #define __XBEE_H_
renanbmx123 0:fbed291691a6 3
renanbmx123 0:fbed291691a6 4 #include "mbed.h"
renanbmx123 0:fbed291691a6 5 #include <string.h>
renanbmx123 0:fbed291691a6 6 #include <stdint.h> // uint8_t
renanbmx123 0:fbed291691a6 7 #include <stdlib.h> // itoa
renanbmx123 0:fbed291691a6 8 #include <math.h>
renanbmx123 0:fbed291691a6 9
renanbmx123 0:fbed291691a6 10 #define XB_SIZEBUF 64
renanbmx123 0:fbed291691a6 11 #define XB_PAYLOAD 16
renanbmx123 0:fbed291691a6 12
renanbmx123 0:fbed291691a6 13 #define XBEE_COORD 0
renanbmx123 0:fbed291691a6 14 #define XBEE_BROAD 1
renanbmx123 0:fbed291691a6 15
renanbmx123 0:fbed291691a6 16 // para poder declarar como typedef
renanbmx123 0:fbed291691a6 17 typedef struct __attribute__ ((__packed__)) {
renanbmx123 0:fbed291691a6 18 uint8_t start_delimiter;
renanbmx123 0:fbed291691a6 19 uint8_t length_H;
renanbmx123 0:fbed291691a6 20 uint8_t length;
renanbmx123 0:fbed291691a6 21 // Frame do Pacote
renanbmx123 0:fbed291691a6 22 uint8_t frame_type; // 10
renanbmx123 0:fbed291691a6 23 uint8_t frame_id;
renanbmx123 0:fbed291691a6 24 uint8_t dest_addr64[8];
renanbmx123 0:fbed291691a6 25 uint8_t dest_addr16[2];
renanbmx123 0:fbed291691a6 26 uint8_t broadcast_radius;
renanbmx123 0:fbed291691a6 27 uint8_t options;
renanbmx123 0:fbed291691a6 28 uint8_t rf_data[100]; //NOTE: last byte MUST be checksum
renanbmx123 0:fbed291691a6 29 }pkt_tx;
renanbmx123 0:fbed291691a6 30
renanbmx123 0:fbed291691a6 31 // para poder declarar como typedef
renanbmx123 0:fbed291691a6 32 typedef struct __attribute__ ((__packed__)) {
renanbmx123 0:fbed291691a6 33 uint8_t start_delimiter;
renanbmx123 0:fbed291691a6 34 uint8_t length_H;
renanbmx123 0:fbed291691a6 35 uint8_t length;
renanbmx123 0:fbed291691a6 36 // Frame do Pacote
renanbmx123 0:fbed291691a6 37 uint8_t frame_type; // 8
renanbmx123 0:fbed291691a6 38 uint8_t frame_id;
renanbmx123 0:fbed291691a6 39 uint8_t command[2]; // ASCII
renanbmx123 0:fbed291691a6 40 uint8_t rf_data[16]; //NOTE: last byte MUST be checksum
renanbmx123 0:fbed291691a6 41 }pkt_cmd;
renanbmx123 0:fbed291691a6 42
renanbmx123 0:fbed291691a6 43
renanbmx123 0:fbed291691a6 44 /* Classe para controlar XBEE Zigbee usando API*/
renanbmx123 0:fbed291691a6 45 class XBEE {
renanbmx123 0:fbed291691a6 46 public:
renanbmx123 0:fbed291691a6 47 uint8_t buf_tx[XB_SIZEBUF]; // Serial TX
renanbmx123 0:fbed291691a6 48 uint8_t buf_rx[XB_SIZEBUF]; // Serial RX
renanbmx123 0:fbed291691a6 49 //CircularBuffer<uint8_t, XB_SIZEBUF> buf_rx;
renanbmx123 0:fbed291691a6 50 int count_tx;
renanbmx123 0:fbed291691a6 51 int count_rx;
renanbmx123 0:fbed291691a6 52 // DEVICE DATA
renanbmx123 0:fbed291691a6 53 char NI[16]; // Device Name
renanbmx123 0:fbed291691a6 54 int ID; // Net ID
renanbmx123 0:fbed291691a6 55 int MY; // Device Net Address
renanbmx123 0:fbed291691a6 56 int SH; // Serial High
renanbmx123 0:fbed291691a6 57 int SL; // Serial Low
renanbmx123 0:fbed291691a6 58 int PL; // Power Level
renanbmx123 0:fbed291691a6 59 int BD; // Baud Rate
renanbmx123 0:fbed291691a6 60 int AO; // API option
renanbmx123 0:fbed291691a6 61 int DB; // RSSI between messages
renanbmx123 0:fbed291691a6 62 int TP; // Temperature inside module
renanbmx123 0:fbed291691a6 63
renanbmx123 0:fbed291691a6 64 //XBEE(PinName tx, PinName rx, int baud = 9600);
renanbmx123 0:fbed291691a6 65 XBEE(Serial* serial, int baud = 9600);
renanbmx123 0:fbed291691a6 66 /** Class destructor */
renanbmx123 0:fbed291691a6 67 virtual ~XBEE();
renanbmx123 0:fbed291691a6 68 void recvAttach (void);
renanbmx123 0:fbed291691a6 69
renanbmx123 0:fbed291691a6 70 // High Level Function
renanbmx123 0:fbed291691a6 71 void init (void);
renanbmx123 0:fbed291691a6 72 int send_msg(char * str, int dest);
renanbmx123 0:fbed291691a6 73 int set_cfg(char * cmd, int value);
renanbmx123 0:fbed291691a6 74 int recv_msg(char * buf, int tam);
renanbmx123 0:fbed291691a6 75 int read_cfg(char * cmd, int & var);
renanbmx123 0:fbed291691a6 76 void clear_buf(void);
renanbmx123 0:fbed291691a6 77
renanbmx123 0:fbed291691a6 78 // Low Level Function
renanbmx123 0:fbed291691a6 79 int create_TX(char * str, int dest);
renanbmx123 0:fbed291691a6 80 int create_CMD(char * cmd, int val);
renanbmx123 0:fbed291691a6 81 void sendBuffer(void);
renanbmx123 0:fbed291691a6 82 //void printBuffer(void);
renanbmx123 0:fbed291691a6 83 void recv_NI(void);
renanbmx123 0:fbed291691a6 84 void recv_CMD(int & cmd);
renanbmx123 0:fbed291691a6 85 void int_mng(int value);
renanbmx123 0:fbed291691a6 86
renanbmx123 0:fbed291691a6 87 // Auxiliar Function
renanbmx123 0:fbed291691a6 88 //char validPackage (uint8_t * buf, int tam);
renanbmx123 0:fbed291691a6 89 int dec2hex(int nbr);
renanbmx123 0:fbed291691a6 90 int hex2dec(int nbr); //ToDo
renanbmx123 0:fbed291691a6 91
renanbmx123 0:fbed291691a6 92 protected:
renanbmx123 0:fbed291691a6 93 //RawSerial *xbee;
renanbmx123 0:fbed291691a6 94 Serial* xbee;
renanbmx123 0:fbed291691a6 95 int int_ctrl;
renanbmx123 0:fbed291691a6 96 };
renanbmx123 0:fbed291691a6 97
renanbmx123 0:fbed291691a6 98 #endif /* defined(__XBEE_H_) */