Code APP3

Dependencies:   mbed EthernetInterface WebSocketClient mbed-rtos BufferedSerial

Fork of APP3_Lab by Jean-Philippe Fournier

Revision:
5:9e6a09a38785
Parent:
2:a9bb12eefc08
Child:
6:9ed8153f1328
--- a/xbee.h	Sat Sep 30 18:24:44 2017 +0000
+++ b/xbee.h	Sat Sep 30 18:36:28 2017 +0000
@@ -6,16 +6,18 @@
 
 #include "mbed.h"
 
+// xbee serial port object
 extern Serial xbee;
 
+// Type de frames possible dans le mode API
 typedef enum {
-    ATCommand = 0x08,
+    ATCommand = 0x08,           // Commande AT
     ATCommandQueue = 0x09,
-    TransmitRequest = 0x10,
+    TransmitRequest = 0x10,     // Requete d'envoi de donnees
     ExplicitAddressing = 0x11,
-    RemoteCommandRequest = 0x17,
+    RemoteCommandRequest = 0x17,// Commande AT a distance
     CreateSourceRoute = 0x21,
-    ATCommandResponse = 0x88,
+    ATCommandResponse = 0x88,   
     ModemStatus = 0x8A,
     ZigBeeTransmitStatus = 0x8B,
     ZigBeeReceivePacket = 0x90,
@@ -29,6 +31,7 @@
     ManyToOneRouteRequestIndicator = 0xA3
 } frame_type_t;
 
+// Structure d'addressage du zigbee (64-bit)
 typedef struct {
     char addr_0;    // MSB
     char addr_1;
@@ -41,38 +44,46 @@
     char addr_7;    // LSB
 } zigbee_addr_64_t;
 
+// Structure d'addressage du zigbee (16-bit)
 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;
-
-
+// Position du frame delimiter
 #define FRAME_DELIMITER_POS 0
+// Length position MSB
 #define FRAME_LEN_MSB_POS 1
+// Length position LSB
 #define FRAME_LEN_LSB_POS 2
 
+// position Checksum 
 #define FRAME_CHEKSUM_POS 3 + frame_data_size
 
+// position Frame type 
 #define API_FRAME_TYPE_POS 3
+// position Frame ID
 #define API_FRAME_ID_POS 4
 
+// position Transmit req 64-bit address 
 #define TRANSMIT_REQ_ADDR64_MSB_POS 5
+// position Transmit req 16-bit address
 #define TRANSMIT_REQ_ADDR16_MSB_POS 13
+// position Transmit req radius
 #define TRANSMIT_REQ_RADIUS_POS 15
 
+// position de depart du data dans un transmit request
 #define TRANSMIT_REQ_DATA_START 17
+// taille du header de transmit request
 #define TRANSMIT_REQ_OVERHEAD_LENGTH 14
 
+/*
+* Macro permettant de declarer une address 64-bit ou 16-bit reservee
+* Usage : 
+*               DECLARE_ADDR16_UNKNOWN_OR_BCAST // declaration de l'addresse
+*               USE_ADDR16_UNKNOWN_OR_BCAST // usage de l'addresse
+*/
 #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 };
@@ -80,28 +91,36 @@
 #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
 
+// Zigbee delimiter value
 #define ZIGBEE_DELIMITER 0x7E
 
-
+// Transmit/receive buffer space
 extern char TransmitBuffer[2048];
 extern char ReceiveBuffer[2048];
 
+// Init xbee communication
 void xbee_init();
 
+// Set le PAN ID du Xbee
 bool set_pan_id(long pan_id);
+// Recupere le PAN ID du Xbee
 long get_pan_id();
 
-int receive_buffer(char* buffer, int max_length);
-
+// insere le api frame header dans le buffer
 void build_api_frame_header(int frame_data_size);
+// insere le api frame cheksum dans le buffer
 void build_api_frame_checksum(int frame_data_size);
 
+// Set le type d'api frame
 void set_api_frame_type(frame_type_t frame_type);
+// set le ID du frame
 void set_api_frame_id(int id);
 
+// Set at command not implemented
 void set_at_command(int at_command);
-void set_64_addr(long address);
-void set_16_addr(int address);
+// Set l'address 64 bit 
+void set_64_addr(zigbee_addr_64_t address);
+void set_16_addr(zigbee_addr_16_t address);
 
 void set_broadcast_radius(int position, char radius);
 void set_transmit_request_options(int position, char options);
@@ -112,5 +131,5 @@
 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);
+int receive(char* buffer, int max_length);