Gestion du Traffic Adaptatif- Code du mbed coordinateur

Dependencies:   XBeeLib mbed mbed-rtos EthernetInterface

Revision:
19:a302b82c4357
Parent:
17:0694b399bd0d
--- a/main.cpp	Sun Nov 11 19:40:46 2018 +0000
+++ b/main.cpp	Sun Nov 11 21:13:34 2018 +0000
@@ -21,7 +21,7 @@
 #define REMOTE_NODE_ADDR64_MSB  ((uint32_t)0x0013A200)
 
 //#error "Replace next define with the LSB of the remote module's 64-bit address (SL parameter)"
-#define REMOTE_NODE_ADDR64_LSB  ((uint32_t)0x40C0E3A1)
+#define REMOTE_NODE_ADDR64_LSB  ((uint32_t)0x40E779AF)
 
 #define REMOTE_NODE_ADDR64      UINT64(REMOTE_NODE_ADDR64_MSB, REMOTE_NODE_ADDR64_LSB)
 
@@ -29,17 +29,17 @@
 
 //feux gauche
     //rouge
-DigitalOut feux_gauche_rouge(p29);
+DigitalOut feux_gauche_rouge(p30);
     //orange
-DigitalOut feux_gauche_orange(p27);
+DigitalOut feux_gauche_orange(p28);
     //vert
-DigitalOut feux_gauche_vert(p25);
+DigitalOut feux_gauche_vert(p26);
 
     //liste des message a envoyer rouge et vert seulement pour le coordinateur
     ////////////////////////// 
     /////
-    char rouge = 'r';
-    char vert = 'v';
+    char rouge[] = "r";
+    char vert[] = "v";
     /////
     uint8_t ok = 0x02;
     //////////////////////////
@@ -56,25 +56,45 @@
 
     for (int i = 0; i < len; i++)
         log_serial->printf("%02x ", data[i]);
-
+        
     log_serial->printf("\r\n");
 }
 
 
-static void send_explicit_data_to_remote_node(XBeeZB& xbee, const RemoteXBeeZB& RemoteDevice,char message)
-{
-
-    const uint8_t data_len = 0x01;
+static void send_explicit_data_to_remote_node(XBeeZB& xbee, const RemoteXBeeZB& RemoteDevice,int message){
+    
+    //const uint8_t data_len = strlen(data);
     const uint8_t dstEP = 0xE8;
     const uint8_t srcEP = 0xE8;
     const uint16_t clusterID = 0x0011;
     const uint16_t profileID = 0xC105;
 
-    const TxStatus txStatus = xbee.send_data(RemoteDevice, dstEP, srcEP, clusterID, profileID, (const uint8_t *)message, data_len);
-    if (txStatus == TxStatusSuccess)
-        log_serial->printf("send_explicit_data_to_remote_node OK\r\n");
-    else
-        log_serial->printf("send_explicit_data_to_remote_node failed with %d\r\n", (int) txStatus);
+    char data1[]="r";
+    char data2[]="v";
+    char data3[]="e";
+    if (message ==0){
+        const TxStatus txStatus = xbee.send_data(RemoteDevice, dstEP, srcEP, clusterID, profileID, (const uint8_t *)data1, strlen(data1)); 
+        if (txStatus == TxStatusSuccess)
+            log_serial->printf("send_explicit_data_to_remote_node OK\r\n");
+        else
+            log_serial->printf("send_explicit_data_to_remote_node failed with %d\r\n", (int) txStatus);
+    }
+    else if (message ==1){
+        const TxStatus txStatus = xbee.send_data(RemoteDevice, dstEP, srcEP, clusterID, profileID, (const uint8_t *)data2, strlen(data2)); 
+        if (txStatus == TxStatusSuccess)
+            log_serial->printf("send_explicit_data_to_remote_node OK\r\n");
+        else
+            log_serial->printf("send_explicit_data_to_remote_node failed with %d\r\n", (int) txStatus);
+    }
+    else {
+        const TxStatus txStatus = xbee.send_data(RemoteDevice, dstEP, srcEP, clusterID, profileID, (const uint8_t *)data3, strlen(data3));
+        if (txStatus == TxStatusSuccess)
+            log_serial->printf("send_explicit_data_to_remote_node OK\r\n");
+        else
+            log_serial->printf("send_explicit_data_to_remote_node failed with %d\r\n", (int) txStatus);
+    }
+   
+    
 }
 
 
@@ -120,10 +140,10 @@
         //partie gestion des feux a mettre sur le coordinateur 
         /////////////////////////////////////////////
         if(i==10){
-            send_explicit_data_to_remote_node(xbee, remoteDevice,rouge);
+            send_explicit_data_to_remote_node(xbee, remoteDevice,1);
             }
         if(i==20){
-            send_explicit_data_to_remote_node(xbee, remoteDevice,vert);
+            send_explicit_data_to_remote_node(xbee, remoteDevice,0);
             i=0;
             }
         ////////////////////////////////////////////