NerfUS / Mbed 2 deprecated NerfUS-Coord

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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include <vector>
00002 #include "ports.hpp"
00003 #include "serverEvents.hpp"
00004 #include "Target.hpp"
00005 #include "RealXbeeReceiver.hpp"
00006 #include "BtnHandler.hpp"
00007 #include "GameCoordinator.hpp"
00008 #include "FreeMem.h"
00009 #include "Rfid.hpp"
00010 #include "serverEvents.hpp"
00011 
00012 int main()
00013 {
00014     cls();
00015     toPc("Coordinator starting...");
00016     //toPc("Initial Memory: %i", FreeMem());
00017 
00018     //Starting the different threads
00019     //Websocket
00020     Thread Twebsocket_message_receiver(websocket_message_receiver, osPriorityLow, 2400);
00021     Thread Twebsocket_message_sender(websocket_message_sender, osPriorityLow, 1400);
00022 
00023     //Xbee
00024     RealXbeeReceiver xbeeReceiver;
00025     xbeeReceiver.start(&dispatch_event_from_target);
00026 
00027     //Btn interupts
00028     BtnHandler startBtn(p21, "start");
00029     BtnHandler nextBtn(p22, "navigate", "next");
00030     BtnHandler previousBtn(p23, "navigate", "previous");
00031 
00032     //Creating the targets with their 64 bits address
00033     //Bruno/Max Router - Brisé
00034     // gameCoordinator.targets.push_back(Target(0x0013A200, 0x4086DA0E, 0));
00035     // gameCoordinator.targets.push_back(Target(0x0013A200, 0x4086DA0E, 1));
00036 
00037     //Routeur antenne
00038     gameCoordinator.targets.push_back(Target(0x0013A200, 0x408B419E, 0));
00039     gameCoordinator.targets.push_back(Target(0x0013A200, 0x408B419E, 1)); // moteur brisé
00040 
00041     gameCoordinator.targets.push_back(Target(0x0013A200, 0x4033198C, 0));
00042     gameCoordinator.targets.push_back(Target(0x0013A200, 0x4033198C, 1));
00043 
00044     gameCoordinator.on_game_finish = &websocket_message_send;
00045 
00046     Rfid rfid(p5, p6, p7, p28, p27);
00047 
00048     //  while(1) {
00049     //      //Memory monitoring
00050     //     toPc("Thread Twebsocket_message_receiver max stack: %i / %i", Twebsocket_message_receiver.max_stack(), Twebsocket_message_receiver.stack_size());
00051     //     toPc("Thread Twebsocket_message_sender max stack: %i / %i", Twebsocket_message_sender.max_stack(), Twebsocket_message_sender.stack_size());
00052     //     toPc("Thread gameCoordinator.Tget_next_round max stack: %i / %i", gameCoordinator.Tget_next_round.max_stack(), gameCoordinator.Tget_next_round.stack_size());
00053     //     toPc("Thread xbeeReceiver.message_handler_thread max stack: %i / %i", xbeeReceiver.message_handler_thread.max_stack(), xbeeReceiver.message_handler_thread.stack_size());
00054     //     toPc("Thread xbeeReceiver.message_reader_thread max stack: %i / %i", xbeeReceiver.message_reader_thread.max_stack(), xbeeReceiver.message_reader_thread.stack_size());
00055     //     toPc("Thread rfid.rfid_thread max stack: %i / %i", rfid.rfid_thread.max_stack(), rfid.rfid_thread.stack_size());
00056     //     Thread::wait(20000);
00057     // }
00058     Thread::wait(osWaitForever);
00059 }
00060