Projet_S5 / Mbed 2 deprecated Repo_Noeud_Mobile_refactor

Dependencies:   mbed-rtos mbed

Fork of Repo_Noeud_Mobile by Projet_S5

Committer:
llarose
Date:
Sat Mar 21 17:19:51 2015 +0000
Revision:
16:982409595a7a
Parent:
3:a77d02cb5694
branching to main

Who changed what in which revision?

UserRevisionLine numberNew contents of line
llarose 1:601d2922ff06 1 /* S5 Projet - Conception d'un systeme embarque reseaute
llarose 1:601d2922ff06 2 * main.cpp
llarose 1:601d2922ff06 3 *
llarose 1:601d2922ff06 4 * @author Equipe de projet 2
llarose 1:601d2922ff06 5 *
llarose 1:601d2922ff06 6 */
llarose 1:601d2922ff06 7 #include "mbed.h"
llarose 1:601d2922ff06 8 #include "rtos.h"
llarose 1:601d2922ff06 9 #include "FlexSensor.h"
llarose 1:601d2922ff06 10 #include "CountDown.h"
llarose 3:a77d02cb5694 11 #include "Cible.h"
llarose 16:982409595a7a 12 #include "ConsolePrint.h"
llarose 1:601d2922ff06 13
llarose 1:601d2922ff06 14 #define GO 0x01
llarose 1:601d2922ff06 15
llarose 1:601d2922ff06 16 enum GameMode { GUNNER, RPS, AirGuitar};
llarose 1:601d2922ff06 17
llarose 1:601d2922ff06 18 //PROTOTYPES DE FONCTION
llarose 1:601d2922ff06 19 void gunner(void const* args);
llarose 1:601d2922ff06 20 void rps(void const* args);
llarose 1:601d2922ff06 21 void airGuitar(void const* args);
llarose 16:982409595a7a 22 void ReadThread(void const* args);
llarose 1:601d2922ff06 23
llarose 1:601d2922ff06 24 CountDown countDown;
llarose 16:982409595a7a 25 Serial pc(USBTX, USBRX); // tx, rx
llarose 1:601d2922ff06 26 Thread* gunner_thread_ptr = NULL;
llarose 1:601d2922ff06 27 Thread* rps_thread_ptr = NULL;
llarose 1:601d2922ff06 28 Thread* airguitar_thread_ptr = NULL;
llarose 16:982409595a7a 29 Thread* IndexReadThreadPtr = NULL;
llarose 16:982409595a7a 30 Thread* MajeurReadThreadPtr = NULL;
llarose 16:982409595a7a 31 Thread* AnnulaireReadThreadPtr = NULL;
llarose 1:601d2922ff06 32
llarose 1:601d2922ff06 33 int main(void const* args)
llarose 1:601d2922ff06 34 {
llarose 3:a77d02cb5694 35 GameMode mode(GUNNER);
llarose 1:601d2922ff06 36 switch(mode)
llarose 1:601d2922ff06 37 {
llarose 1:601d2922ff06 38 case GUNNER:
llarose 1:601d2922ff06 39 gunner_thread_ptr = new Thread(gunner);
llarose 1:601d2922ff06 40 break;
llarose 1:601d2922ff06 41 case RPS:
llarose 1:601d2922ff06 42 rps_thread_ptr = new Thread(rps);
llarose 1:601d2922ff06 43 break;
llarose 1:601d2922ff06 44 case AirGuitar:
llarose 1:601d2922ff06 45 airguitar_thread_ptr = new Thread(airGuitar);
llarose 1:601d2922ff06 46 break;
llarose 1:601d2922ff06 47 default:
llarose 1:601d2922ff06 48 break;
llarose 1:601d2922ff06 49 }
llarose 1:601d2922ff06 50 }
llarose 1:601d2922ff06 51
llarose 16:982409595a7a 52 void ReadThread(void const* args)
llarose 16:982409595a7a 53 {
llarose 16:982409595a7a 54 FlexSensor flex = *(FlexSensor *) args;
llarose 16:982409595a7a 55 flex.Run();
llarose 16:982409595a7a 56 }
llarose 16:982409595a7a 57
llarose 1:601d2922ff06 58 void gunner(void const* args)
llarose 1:601d2922ff06 59 {
llarose 1:601d2922ff06 60 // local variables
llarose 16:982409595a7a 61 //Cible* cible = new Cible();
llarose 16:982409595a7a 62
llarose 16:982409595a7a 63 unsigned int indexValue;
llarose 16:982409595a7a 64 FlexSensor index(p15); // flex sensor 1.
llarose 16:982409595a7a 65 FlexSensor majeur(p16); // flex sensor 2.
llarose 16:982409595a7a 66 FlexSensor annulaire(p17); // flex sensor 3.
llarose 16:982409595a7a 67
llarose 16:982409595a7a 68 IndexReadThreadPtr = new Thread(ReadThread, &index);
llarose 16:982409595a7a 69 MajeurReadThreadPtr = new Thread(ReadThread, &majeur);
llarose 16:982409595a7a 70 AnnulaireReadThreadPtr = new Thread(ReadThread, &annulaire);
llarose 16:982409595a7a 71
llarose 3:a77d02cb5694 72 countDown.run();
llarose 1:601d2922ff06 73
llarose 1:601d2922ff06 74 while(true)
llarose 1:601d2922ff06 75 {
llarose 16:982409595a7a 76 pc.printf("index value : %#04x\r\n",indexValue);
llarose 16:982409595a7a 77 //Thread::signal_wait(GO);
llarose 16:982409595a7a 78 //cible->reset();
llarose 16:982409595a7a 79 //int target = rand() % 3;
llarose 3:a77d02cb5694 80
llarose 16:982409595a7a 81 //cible->set(target);
llarose 16:982409595a7a 82 //countDown.run();
llarose 1:601d2922ff06 83 }
llarose 1:601d2922ff06 84 }
llarose 1:601d2922ff06 85
llarose 1:601d2922ff06 86 void rps(void const* args)
llarose 1:601d2922ff06 87 {
llarose 1:601d2922ff06 88 // local variables
llarose 1:601d2922ff06 89
llarose 1:601d2922ff06 90 while(true)
llarose 1:601d2922ff06 91 {
llarose 1:601d2922ff06 92 Thread::signal_wait(GO);
llarose 1:601d2922ff06 93 // code...
llarose 1:601d2922ff06 94 }
llarose 1:601d2922ff06 95 }
llarose 1:601d2922ff06 96
llarose 1:601d2922ff06 97 void airGuitar(void const* args)
llarose 1:601d2922ff06 98 {
llarose 1:601d2922ff06 99 // local variables
llarose 1:601d2922ff06 100
llarose 1:601d2922ff06 101 while(true)
llarose 1:601d2922ff06 102 {
llarose 1:601d2922ff06 103 Thread::signal_wait(GO);
llarose 1:601d2922ff06 104 // code...
llarose 1:601d2922ff06 105 }
llarose 1:601d2922ff06 106 }
llarose 1:601d2922ff06 107
llarose 1:601d2922ff06 108