Coordinator v2

Dependencies:   NerfUSXbee PinDetect EthernetInterface JSON MFRC522 WebSocketClient mbed-rtos mbed

Revision:
2:019d8848cf7e
Parent:
1:e1c5259b7d9a
Child:
3:501120a68c11
--- a/main.cpp	Mon Apr 10 15:02:24 2017 -0400
+++ b/main.cpp	Tue Apr 11 12:40:05 2017 -0400
@@ -6,29 +6,25 @@
 #include "BtnHandler.hpp"
 #include "GameCoordinator.hpp"
 #include "FreeMem.h"
-#include "MFRC522.h"
-
-#define MF_RESET    D8
-
-DigitalOut LedGreen(LED1);
-MFRC522 RfChip(p5, p6, p7, p21, p22);
+#include "Rfid.hpp"
+#include "serverEvents.hpp"
 
 int main()
 {
     cls();
     toPc("Coordinator starting...");
-    toPc("Initial Memory: %i", FreeMem());
+    //toPc("Initial Memory: %i", FreeMem());
 
     //Starting the different threads
     //Websocket
-    Thread Twebsocket_message_receiver(websocket_message_receiver, osPriorityLow, 2300);
-    Thread Twebsocket_message_sender(websocket_message_sender, osPriorityLow, 1500);
+    Thread Twebsocket_message_receiver(websocket_message_receiver, osPriorityLow, 2400);
+    Thread Twebsocket_message_sender(websocket_message_sender, osPriorityLow, 1400);
 
     //Xbee
     RealXbeeReceiver xbeeReceiver;
     xbeeReceiver.start(&dispatch_event_from_target);
 
-    //Btn interupts
+    // //Btn interupts
     BtnHandler startBtn(p21, "start");
     BtnHandler nextBtn(p22, "navigate", "next");
     BtnHandler previousBtn(p23, "navigate", "previous");
@@ -37,50 +33,29 @@
     //Bruno/Max Router
     gameCoordinator.targets.push_back(Target(0x0013A200, 0x4086DA0E, 0));
     gameCoordinator.targets.push_back(Target(0x0013A200, 0x4086DA0E, 1));
+
+    //Routeur antenne
+    gameCoordinator.targets.push_back(Target(0x0013A200, 0x408B419E, 0));
+    gameCoordinator.targets.push_back(Target(0x0013A200, 0x408B419E, 1)); // moteur brisé
+
+    gameCoordinator.targets.push_back(Target(0x0013A200, 0x4033198C, 0));
+    gameCoordinator.targets.push_back(Target(0x0013A200, 0x4033198C, 1));
+
+    gameCoordinator.on_game_finish = &websocket_message_send;
     //TODO: more targets
 
-    RfChip.PCD_Init();
-
-    while(1) {
-        LedGreen = 1;
+    Rfid rfid(p5, p6, p7, p28, p27);
 
-        // Look for new cards
-        if ( ! RfChip.PICC_IsNewCardPresent())
-        {
-            toPc("No card detected");
-            Thread::wait(500);
-            continue;
-        }
-    
-        // Select one of the cards
-        if ( ! RfChip.PICC_ReadCardSerial())
-        {
-            toPc("Cant read serial");
-            Thread::wait(500);
-            //wait_ms(500);
-            continue;
-        }
-        toPc("Printing card");
-        LedGreen = 0;
- 
-        // Print Card UID
-        pc.printf("Card UID: ");
-        for (uint8_t i = 0; i < RfChip.uid.size; i++)
-        {
-        pc.printf(" %X02", RfChip.uid.uidByte[i]);
-        }
-        pc.printf("\n\r");
-
-
-        //Memory monitoring
-        // toPc("Thread Twebsocket_message_receiver max stack: %i / %i", Twebsocket_message_receiver.max_stack(), Twebsocket_message_receiver.stack_size());
-        // toPc("Thread Twebsocket_message_sender max stack: %i / %i", Twebsocket_message_sender.max_stack(), Twebsocket_message_sender.stack_size());
-        // toPc("Thread gameCoordinator.Tget_next_round max stack: %i / %i", gameCoordinator.Tget_next_round.max_stack(), gameCoordinator.Tget_next_round.stack_size());
-        // toPc("Thread xbeeReceiver.message_handler_thread max stack: %i / %i", xbeeReceiver.message_handler_thread.max_stack(), xbeeReceiver.message_handler_thread.stack_size());
-        // toPc("Thread xbeeReceiver.message_reader_thread max stack: %i / %i", xbeeReceiver.message_reader_thread.max_stack(), xbeeReceiver.message_reader_thread.stack_size());
-        // toPc("Free Memory: %i", FreeMem());
-        Thread::wait(1000);
-    }
-    //Thread::wait(osWaitForever);
+    //  while(1) {
+    //      //Memory monitoring
+    //     toPc("Thread Twebsocket_message_receiver max stack: %i / %i", Twebsocket_message_receiver.max_stack(), Twebsocket_message_receiver.stack_size());
+    //     toPc("Thread Twebsocket_message_sender max stack: %i / %i", Twebsocket_message_sender.max_stack(), Twebsocket_message_sender.stack_size());
+    //     toPc("Thread gameCoordinator.Tget_next_round max stack: %i / %i", gameCoordinator.Tget_next_round.max_stack(), gameCoordinator.Tget_next_round.stack_size());
+    //     toPc("Thread xbeeReceiver.message_handler_thread max stack: %i / %i", xbeeReceiver.message_handler_thread.max_stack(), xbeeReceiver.message_handler_thread.stack_size());
+    //     toPc("Thread xbeeReceiver.message_reader_thread max stack: %i / %i", xbeeReceiver.message_reader_thread.max_stack(), xbeeReceiver.message_reader_thread.stack_size());
+    //     toPc("Thread rfid.rfid_thread max stack: %i / %i", rfid.rfid_thread.max_stack(), rfid.rfid_thread.stack_size());
+    //     Thread::wait(20000);
+    // }
+    Thread::wait(osWaitForever);
 }