Is it working Ben?

Dependencies:   EthernetInterface WebSocketClient mbed-rtos mbed ID12RFID XBeeLib

Revision:
1:30d760c7478e
Parent:
0:634fbc4f9bc7
Child:
2:28d134cf84f8
--- a/main.cpp	Fri Mar 31 02:01:35 2017 +0000
+++ b/main.cpp	Mon Apr 10 19:00:02 2017 +0000
@@ -2,7 +2,11 @@
 #include "rtos.h"
 #include "EthernetInterface.h"
 #include "Websocket.h"
+#include "ID12RFID.h"
+#include "XBeeLib.h"
+#include "DigiLoggerMbedSerial.h"
 
+using namespace XBeeLib;
 //static const char* mbedIp       = "192.168.1.2";
 //static const char* mbedMask     = "255.255.255.0";
 //static const char* mbedGateway  = "192.168.1.1";
@@ -12,45 +16,74 @@
 static char* WEBSOCKET_URL = "ws://24.203.139.78:8080/"; // Adresse Serveur M-A
 bool IsReponseRecu;
 char* Reponse = "";
-Thread ThreadLecture;
+bool frameIsOk = true;
+
+ID12RFID rfid(p10); // uart rx
 
-void wsocket_message_recu()
+Websocket ws(WEBSOCKET_URL);
+
+static void receive_cb(const RemoteXBeeZB& remote, bool broadcast, const uint8_t *const data, uint16_t len)
 {
-    while (true)
-    {
-        ThreadLecture.signal_wait(1);
-        myled = !myled;
-        pc.printf("Message Recu :\n\r");
-        pc.printf(Reponse);
-        pc.printf("\n\rFin Message\n\r");
-    }
+    const uint64_t remote_addr64 = remote.get_addr64();
+
+    //pc.printf("\r\nGot a %s RX packet [%08x:%08x|%04x], len %d\r\nData: ", broadcast ? "BROADCAST" : "UNICAST", UINT64_HI32(remote_addr64), UINT64_LO32(remote_addr64), remote.get_addr16(), len);
+
+    for (int i = 0; i < len; i++)
+        pc.printf("%02x ", data[i]);
+    int x ;
+    ((char*)&x)[2] = data[1];
+    ((char*)&x)[1] = data[2];
+    ((char*)&x)[0] = data[3];
+    pc.printf("%d ", x);
+    ws.send("WS Test"); //envoie de message de chute
+    pc.printf("\r\n");
 }
 
-int main() {
+
+
+int main()
+{
     // Setup du port ethernet
-    EthernetInterface eth;      
+    EthernetInterface eth;
     eth.init(); //Use DHCP
     //eth.init(mbedIp, mbedMask, mbedGateway); //Use config
     eth.connect();
-    
+
+
     IsReponseRecu = false;
-    Websocket ws(WEBSOCKET_URL);
-    ws.connect();
-    
+    XBeeZB xbee = XBeeZB(RADIO_TX, RADIO_RX, RADIO_RESET, NC, NC, 9600);
+
+    /* Register callbacks */
+    xbee.register_receive_cb(&receive_cb);
+
+    RadioStatus const radioStatus = xbee.init();
+    if(ws.connect())
+    {
+        pc.printf("ok");
+        }
+        else{
+            pc.printf("bad");
+            }
+
     myled = false;
-    ThreadLecture.start(wsocket_message_recu);
-    
+
     while (1) {
-        IsReponseRecu = false;
-        ws.send("WS Test");
-        while(IsReponseRecu == false)
-        {
-            if(ws.read(Reponse))
-            {
-                ThreadLecture.signal_set(1);
-                //printf("We Got Something : %v", Reponse);
-                IsReponseRecu = true;
-            }
+        xbee.process_rx_frames();
+
+        if(rfid.readable()) {
+            int i = rfid.read();
+            printf("RFID Tag number : %d\n", i);
+            ws.send("WS Test");   //envoie de commande rfid
         }
+        wait_ms(100);
+        // IsReponseRecu = false;
+//        ws.send("WS Test");
+//        while(IsReponseRecu == false) {
+//            if(ws.read(Reponse)) {
+//                ThreadLecture.signal_set(1);
+//                //printf("We Got Something : %v", Reponse);
+//                IsReponseRecu = true;
+//            }
+//        }
     }
 }