Hlimi Omar
/
biniou
TRR2018 omar
Fork of biniou by
stateMachines.cpp@8:1d8c3ca5e508, 2018-09-08 (annotated)
- Committer:
- GaspardD
- Date:
- Sat Sep 08 22:17:15 2018 +0000
- Revision:
- 8:1d8c3ca5e508
- Parent:
- 3:03ea98f5b2e4
- Child:
- 9:747fd4a80225
on simplifie le shmilblik
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
GaspardD | 8:1d8c3ca5e508 | 1 | #include "states_m.h" |
GaspardD | 8:1d8c3ca5e508 | 2 | |
GaspardD | 2:fd0ffe46a87d | 3 | |
GaspardD | 8:1d8c3ca5e508 | 4 | #define NB_ECHANTILLONS_IR 4 |
GaspardD | 8:1d8c3ca5e508 | 5 | #define NB_ECHANTILLONS_LIDAR 4 |
GaspardD | 8:1d8c3ca5e508 | 6 | |
GaspardD | 8:1d8c3ca5e508 | 7 | #define CORRECTEUR_P 1; |
GaspardD | 8:1d8c3ca5e508 | 8 | #define CORRECTEUR_I 0; |
GaspardD | 8:1d8c3ca5e508 | 9 | #define CORRECTEUR_D 0; |
GaspardD | 2:fd0ffe46a87d | 10 | |
GaspardD | 8:1d8c3ca5e508 | 11 | static int mode_courant = ; // mettre en define pour la compilation ? ou régler via télécommande ? |
GaspardD | 2:fd0ffe46a87d | 12 | |
GaspardD | 8:1d8c3ca5e508 | 13 | uint16_t dist_murGF[NB_ECHANTILLONS_IR];//buffer tournant ir avant gauche pour moyenne |
GaspardD | 8:1d8c3ca5e508 | 14 | uint16_t dist_murGL[NB_ECHANTILLONS_IR];//buffer tournant ir coté gauche pour moyenne |
GaspardD | 8:1d8c3ca5e508 | 15 | uint16_t dist_murDF[NB_ECHANTILLONS_IR];//buffer tournant ir avant droit pour moyenne |
GaspardD | 8:1d8c3ca5e508 | 16 | uint16_t dist_murDL[NB_ECHANTILLONS_IR];//buffer tournant ir coté droit pour moyenne |
GaspardD | 8:1d8c3ca5e508 | 17 | int dist_obstacle_lidar[NB_ECHANTILLONS_LIDAR];//buffer tournant |
GaspardD | 8:1d8c3ca5e508 | 18 | int index_fifo_ir = 0;//pour géreer le buffer tournant |
GaspardD | 8:1d8c3ca5e508 | 19 | int index_fifo_lidar = 0; |
GaspardD | 2:fd0ffe46a87d | 20 | |
GaspardD | 8:1d8c3ca5e508 | 21 | int tachy_cmps; |
GaspardD | 8:1d8c3ca5e508 | 22 | |
GaspardD | 8:1d8c3ca5e508 | 23 | //Capteurs |
GaspardD | 8:1d8c3ca5e508 | 24 | |
GaspardD | 8:1d8c3ca5e508 | 25 | AnalogIn anaGF(A0);//capteur ir avant gauche |
GaspardD | 8:1d8c3ca5e508 | 26 | AnalogIn anaGL(A1);//capteur ir coté gauche |
GaspardD | 8:1d8c3ca5e508 | 27 | AnalogIn anaDF(A2);//capteur ir avant droit |
GaspardD | 8:1d8c3ca5e508 | 28 | AnalogIn anaDL(A3);//capteur ir coté droit |
GaspardD | 2:fd0ffe46a87d | 29 | |
GaspardD | 8:1d8c3ca5e508 | 30 | int lidarStr; |
GaspardD | 8:1d8c3ca5e508 | 31 | int lidarDist; |
GaspardD | 8:1d8c3ca5e508 | 32 | |
GaspardD | 8:1d8c3ca5e508 | 33 | //Etats |
GaspardD | 8:1d8c3ca5e508 | 34 | SECTION_ST st_CurrentSection; |
GaspardD | 8:1d8c3ca5e508 | 35 | OBSTACLE_ST st_obstacleDet; |
GaspardD | 8:1d8c3ca5e508 | 36 | MUR_ST st_murs; |
GaspardD | 8:1d8c3ca5e508 | 37 | THROTTLE_ST st_thro; |
GaspardD | 8:1d8c3ca5e508 | 38 | |
GaspardD | 8:1d8c3ca5e508 | 39 | //time monitoring |
GaspardD | 8:1d8c3ca5e508 | 40 | |
GaspardD | 8:1d8c3ca5e508 | 41 | Timer temps;// temps.start()/stop()/sec: read()/ms: read_ms()/µs: read_us() |
GaspardD | 8:1d8c3ca5e508 | 42 | |
GaspardD | 2:fd0ffe46a87d | 43 | |
GaspardD | 2:fd0ffe46a87d | 44 | |
GaspardD | 8:1d8c3ca5e508 | 45 | //########## INIT STATES MACHINES ########## |
GaspardD | 8:1d8c3ca5e508 | 46 | void murs_init(void) |
GaspardD | 8:1d8c3ca5e508 | 47 | { |
GaspardD | 8:1d8c3ca5e508 | 48 | st_murs=MUR_GD_OK; |
GaspardD | 8:1d8c3ca5e508 | 49 | return; |
GaspardD | 8:1d8c3ca5e508 | 50 | } |
GaspardD | 8:1d8c3ca5e508 | 51 | void obstacle_init(void) |
GaspardD | 8:1d8c3ca5e508 | 52 | { |
GaspardD | 8:1d8c3ca5e508 | 53 | st_obstacleDet=LONG_RANGE_CLEAR; |
GaspardD | 8:1d8c3ca5e508 | 54 | return; |
GaspardD | 8:1d8c3ca5e508 | 55 | } |
GaspardD | 8:1d8c3ca5e508 | 56 | void section_init(void) |
GaspardD | 2:fd0ffe46a87d | 57 | { |
GaspardD | 8:1d8c3ca5e508 | 58 | temps.reset(); |
GaspardD | 8:1d8c3ca5e508 | 59 | temps.start(); |
GaspardD | 8:1d8c3ca5e508 | 60 | st_CurrentSection=ARRET; |
GaspardD | 8:1d8c3ca5e508 | 61 | return; |
GaspardD | 8:1d8c3ca5e508 | 62 | } |
GaspardD | 8:1d8c3ca5e508 | 63 | void throttle_init(void) |
GaspardD | 8:1d8c3ca5e508 | 64 | { |
GaspardD | 8:1d8c3ca5e508 | 65 | st_thro = AT_SPEED; |
GaspardD | 8:1d8c3ca5e508 | 66 | return; |
GaspardD | 8:1d8c3ca5e508 | 67 | } |
GaspardD | 2:fd0ffe46a87d | 68 | |
GaspardD | 8:1d8c3ca5e508 | 69 | |
GaspardD | 8:1d8c3ca5e508 | 70 | //########## UPDATE STATES ########## |
GaspardD | 8:1d8c3ca5e508 | 71 | void murs_update(void) |
GaspardD | 2:fd0ffe46a87d | 72 | { |
GaspardD | 8:1d8c3ca5e508 | 73 | MUR_ST st_tmp_murs; |
GaspardD | 8:1d8c3ca5e508 | 74 | dist_murGF=anaGF.read_u16(); |
GaspardD | 8:1d8c3ca5e508 | 75 | dist_murGL=anaGL.read_u16(); |
GaspardD | 8:1d8c3ca5e508 | 76 | dist_murDF=anaDF.read_u16(); |
GaspardD | 8:1d8c3ca5e508 | 77 | dist_murDL=anaDL.read_u16(); |
GaspardD | 8:1d8c3ca5e508 | 78 | |
GaspardD | 8:1d8c3ca5e508 | 79 | if(1) |
GaspardD | 8:1d8c3ca5e508 | 80 | { |
GaspardD | 8:1d8c3ca5e508 | 81 | st_tmp_murs = MUR_GD_OK; |
GaspardD | 8:1d8c3ca5e508 | 82 | }else |
GaspardD | 8:1d8c3ca5e508 | 83 | { |
GaspardD | 8:1d8c3ca5e508 | 84 | st_tmp_murs = MURS_ABSENTS; |
GaspardD | 8:1d8c3ca5e508 | 85 | } |
GaspardD | 2:fd0ffe46a87d | 86 | |
GaspardD | 8:1d8c3ca5e508 | 87 | st_murs = st_tmp_murs; |
GaspardD | 8:1d8c3ca5e508 | 88 | return; |
GaspardD | 8:1d8c3ca5e508 | 89 | } |
GaspardD | 8:1d8c3ca5e508 | 90 | void obstacle_update(void) |
GaspardD | 8:1d8c3ca5e508 | 91 | { |
GaspardD | 8:1d8c3ca5e508 | 92 | return; |
GaspardD | 8:1d8c3ca5e508 | 93 | } |
GaspardD | 8:1d8c3ca5e508 | 94 | void section_update(void) |
GaspardD | 8:1d8c3ca5e508 | 95 | { |
GaspardD | 8:1d8c3ca5e508 | 96 | return; |
GaspardD | 8:1d8c3ca5e508 | 97 | } |
GaspardD | 8:1d8c3ca5e508 | 98 | |
GaspardD | 8:1d8c3ca5e508 | 99 | void throttle_update(void) |
GaspardD | 8:1d8c3ca5e508 | 100 | { |
GaspardD | 8:1d8c3ca5e508 | 101 | return; |
GaspardD | 8:1d8c3ca5e508 | 102 | } |
GaspardD | 2:fd0ffe46a87d | 103 | |
GaspardD | 8:1d8c3ca5e508 | 104 | //########## OUTPUT STATES ########## |
GaspardD | 8:1d8c3ca5e508 | 105 | void murs_output(void) |
GaspardD | 8:1d8c3ca5e508 | 106 | { |
GaspardD | 8:1d8c3ca5e508 | 107 | return; |
GaspardD | 8:1d8c3ca5e508 | 108 | } |
GaspardD | 8:1d8c3ca5e508 | 109 | |
GaspardD | 8:1d8c3ca5e508 | 110 | void obstacle_output(void) |
GaspardD | 8:1d8c3ca5e508 | 111 | { |
GaspardD | 8:1d8c3ca5e508 | 112 | return; |
GaspardD | 8:1d8c3ca5e508 | 113 | } |
GaspardD | 8:1d8c3ca5e508 | 114 | void section_output(void) |
GaspardD | 8:1d8c3ca5e508 | 115 | { |
GaspardD | 8:1d8c3ca5e508 | 116 | return; |
GaspardD | 8:1d8c3ca5e508 | 117 | } |
GaspardD | 8:1d8c3ca5e508 | 118 | |
GaspardD | 8:1d8c3ca5e508 | 119 | void throttle_output(void) |
GaspardD | 8:1d8c3ca5e508 | 120 | { |
GaspardD | 8:1d8c3ca5e508 | 121 | return; |
GaspardD | 8:1d8c3ca5e508 | 122 | } |