![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Coordinator v2
Dependencies: NerfUSXbee PinDetect EthernetInterface JSON MFRC522 WebSocketClient mbed-rtos mbed
main.cpp
- Committer:
- Ismael Balafrej
- Date:
- 2017-04-10
- Revision:
- 1:e1c5259b7d9a
- Child:
- 2:019d8848cf7e
File content as of revision 1:e1c5259b7d9a:
#include <vector> #include "ports.hpp" #include "serverEvents.hpp" #include "Target.hpp" #include "RealXbeeReceiver.hpp" #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); int main() { cls(); toPc("Coordinator starting..."); 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); //Xbee RealXbeeReceiver xbeeReceiver; xbeeReceiver.start(&dispatch_event_from_target); //Btn interupts BtnHandler startBtn(p21, "start"); BtnHandler nextBtn(p22, "navigate", "next"); BtnHandler previousBtn(p23, "navigate", "previous"); //Creating the targets with their 64 bits address //Bruno/Max Router gameCoordinator.targets.push_back(Target(0x0013A200, 0x4086DA0E, 0)); gameCoordinator.targets.push_back(Target(0x0013A200, 0x4086DA0E, 1)); //TODO: more targets RfChip.PCD_Init(); while(1) { LedGreen = 1; // 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); }