Projet_S5 / Mbed 2 deprecated Repo_Noeud_Mobile_refactor

Dependencies:   mbed-rtos mbed

Fork of Repo_Noeud_Mobile by Projet_S5

Committer:
groygirard
Date:
Thu Mar 05 19:36:48 2015 +0000
Revision:
8:51f6c8f59449
Parent:
7:ce6e58c5a119
Child:
11:a9fbf205233a
Child:
12:ebb08773dbdb
Included accelerometer data acquisition in 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
groygirard 6:fd1bf5563299 3 *
llarose 1:601d2922ff06 4 * @author Equipe de projet 2
groygirard 6:fd1bf5563299 5 *
llarose 1:601d2922ff06 6 */
groygirard 6:fd1bf5563299 7
groygirard 6:fd1bf5563299 8 // System libraries
llarose 1:601d2922ff06 9 #include "mbed.h"
llarose 1:601d2922ff06 10 #include "rtos.h"
groygirard 6:fd1bf5563299 11
groygirard 6:fd1bf5563299 12 // Proprietary libraries
groygirard 8:51f6c8f59449 13 #include "Cible.h"
groygirard 6:fd1bf5563299 14 #include "CountDown.h"
llarose 1:601d2922ff06 15 #include "FlexSensor.h"
groygirard 6:fd1bf5563299 16 #include "MMA8452Q.h"
llarose 1:601d2922ff06 17
llarose 1:601d2922ff06 18 #define GO 0x01
llarose 1:601d2922ff06 19
llarose 1:601d2922ff06 20 enum GameMode { GUNNER, RPS, AirGuitar};
llarose 1:601d2922ff06 21
groygirard 6:fd1bf5563299 22 //PROTOTYPES DE FONCTION
llarose 1:601d2922ff06 23 void gunner(void const* args);
llarose 1:601d2922ff06 24 void rps(void const* args);
llarose 1:601d2922ff06 25 void airGuitar(void const* args);
groygirard 6:fd1bf5563299 26 void accelTesting(void const* args);
llarose 1:601d2922ff06 27
llarose 1:601d2922ff06 28 FlexSensor index(DIGITAL, p15); // flex sensor 1.
llarose 1:601d2922ff06 29 FlexSensor majeur(DIGITAL, p16); // flex sensor 2.
llarose 1:601d2922ff06 30 FlexSensor annulaire(DIGITAL, p17); // flex sensor 3.
llarose 1:601d2922ff06 31 CountDown countDown;
groygirard 6:fd1bf5563299 32 Accel accel;
llarose 1:601d2922ff06 33
groygirard 6:fd1bf5563299 34 Thread* gunner_thread_ptr = NULL; // Possiblement mettre dans un tableau
groygirard 6:fd1bf5563299 35 Thread* rps_thread_ptr = NULL; // avec des position codees
groygirard 6:fd1bf5563299 36 Thread* airguitar_thread_ptr = NULL; // dans des define. guillaume
llarose 1:601d2922ff06 37
llarose 1:601d2922ff06 38 int main(void const* args)
llarose 1:601d2922ff06 39 {
groygirard 6:fd1bf5563299 40 // Initializing the accelerometer
groygirard 6:fd1bf5563299 41 accel = Accel();
groygirard 6:fd1bf5563299 42 accel.init_MMA8452();
groygirard 6:fd1bf5563299 43
groygirard 6:fd1bf5563299 44 RtosTimer sync(accelTesting, osTimerPeriodic, (void *)0);
groygirard 8:51f6c8f59449 45 sync.start(250);
groygirard 6:fd1bf5563299 46
llarose 1:601d2922ff06 47 GameMode mode = GUNNER;
llarose 1:601d2922ff06 48 countDown.run();
groygirard 6:fd1bf5563299 49 switch(mode) {
llarose 1:601d2922ff06 50 case GUNNER:
llarose 1:601d2922ff06 51 gunner_thread_ptr = new Thread(gunner);
llarose 1:601d2922ff06 52 break;
llarose 1:601d2922ff06 53 case RPS:
llarose 1:601d2922ff06 54 rps_thread_ptr = new Thread(rps);
llarose 1:601d2922ff06 55 break;
llarose 1:601d2922ff06 56 case AirGuitar:
llarose 1:601d2922ff06 57 airguitar_thread_ptr = new Thread(airGuitar);
llarose 1:601d2922ff06 58 break;
llarose 1:601d2922ff06 59 default:
llarose 1:601d2922ff06 60 break;
llarose 1:601d2922ff06 61 }
groygirard 6:fd1bf5563299 62 while(1) {
groygirard 6:fd1bf5563299 63 }
llarose 1:601d2922ff06 64 }
llarose 1:601d2922ff06 65
llarose 1:601d2922ff06 66 void gunner(void const* args)
llarose 1:601d2922ff06 67 {
llarose 1:601d2922ff06 68 // local variables
llarose 3:a77d02cb5694 69 Cible* cible = new Cible();
llarose 3:a77d02cb5694 70 countDown.run();
llarose 1:601d2922ff06 71
llarose 1:601d2922ff06 72 while(true)
llarose 1:601d2922ff06 73 {
llarose 3:a77d02cb5694 74 // Thread::signal_wait(GO);
llarose 3:a77d02cb5694 75 cible->reset();
llarose 3:a77d02cb5694 76 int target = rand() % 3;
llarose 3:a77d02cb5694 77
llarose 3:a77d02cb5694 78 cible->set(target);
llarose 3:a77d02cb5694 79 countDown.run();
llarose 1:601d2922ff06 80 }
llarose 1:601d2922ff06 81 }
llarose 1:601d2922ff06 82
llarose 1:601d2922ff06 83 void rps(void const* args)
llarose 1:601d2922ff06 84 {
groygirard 6:fd1bf5563299 85 // local variables
groygirard 6:fd1bf5563299 86
groygirard 6:fd1bf5563299 87 while(true) {
llarose 1:601d2922ff06 88 Thread::signal_wait(GO);
llarose 1:601d2922ff06 89 // code...
llarose 1:601d2922ff06 90 }
llarose 1:601d2922ff06 91 }
llarose 1:601d2922ff06 92
llarose 1:601d2922ff06 93 void airGuitar(void const* args)
llarose 1:601d2922ff06 94 {
groygirard 6:fd1bf5563299 95 // local variables
groygirard 6:fd1bf5563299 96
groygirard 6:fd1bf5563299 97 while(true) {
llarose 1:601d2922ff06 98 Thread::signal_wait(GO);
llarose 1:601d2922ff06 99 // code...
llarose 1:601d2922ff06 100 }
llarose 1:601d2922ff06 101 }
llarose 1:601d2922ff06 102
groygirard 6:fd1bf5563299 103 void accelTesting(void const* args)
groygirard 6:fd1bf5563299 104 {
groygirard 6:fd1bf5563299 105 accel.get_axis_values();
groygirard 6:fd1bf5563299 106 }
llarose 1:601d2922ff06 107