Programme de contrôle de l'octopode 4DOF, Theraphosa-Salconi.

Dependencies:   debug mbed

CtrlBridge

  • fonction quelquonque pour communiquer avec les module
  • fonction quelquonque pour faire des recherche dans les module dispo
  • autre fonction pour jouer avec MemRegistre

Version 1.2.0

  • Ajout d'un mode de simulation pour tester le code avec seulement un contrôleur stm32
Committer:
salco
Date:
Mon Oct 05 23:46:11 2015 +0000
Revision:
38:57d5f36a0333
Parent:
37:f53e9f7a14df
Child:
39:34d7802e8d15
analise du labirinte pas fini pas implementer mais le plus gros de la carcasse est mont? reste a faire les point technique

Who changed what in which revision?

UserRevisionLine numberNew contents of line
salco 28:ac5c6350ed9a 1 /**
salco 35:d81f6b927932 2 * @file labyrinthe.h
salco 35:d81f6b927932 3 * @brief Regroupement de fonction pour enregistrer le millieu en 2D.
salco 28:ac5c6350ed9a 4 * @author Salco
salco 28:ac5c6350ed9a 5 * @version 2.00
salco 28:ac5c6350ed9a 6 * @date 11 mars 2015
salco 28:ac5c6350ed9a 7 */
salco 28:ac5c6350ed9a 8 #ifndef LABYRINTHE_H
salco 28:ac5c6350ed9a 9 #define LABYRINTHE_H
salco 35:d81f6b927932 10
salco 28:ac5c6350ed9a 11 #define DEFAULTLABLEIGHT 4
salco 35:d81f6b927932 12 #define DEBUGLABCOORD 0
salco 37:f53e9f7a14df 13 #define DEBUGLABSEARCHCOORD 0
salco 28:ac5c6350ed9a 14
salco 28:ac5c6350ed9a 15 #include "mbed.h"
salco 28:ac5c6350ed9a 16 #include "debug.h"
salco 35:d81f6b927932 17 #include "settingDebug.h"
salco 28:ac5c6350ed9a 18 #include <string>
salco 28:ac5c6350ed9a 19
salco 28:ac5c6350ed9a 20 #define UP 1
salco 28:ac5c6350ed9a 21 #define DOWN 2
salco 28:ac5c6350ed9a 22 #define LEFT 3
salco 28:ac5c6350ed9a 23 #define RIGHT 4
salco 28:ac5c6350ed9a 24
salco 28:ac5c6350ed9a 25
salco 37:f53e9f7a14df 26 /*#define VIDE 3
salco 28:ac5c6350ed9a 27 #define EXPLORER 1
salco 28:ac5c6350ed9a 28 #define MUR 2
salco 37:f53e9f7a14df 29 #define PAS_EXPLORER 0*/
salco 28:ac5c6350ed9a 30
salco 35:d81f6b927932 31 // 1 tuile == 4 byte
salco 35:d81f6b927932 32
salco 36:474d4795aafa 33
salco 36:474d4795aafa 34
salco 36:474d4795aafa 35 class Labyrinthe
salco 36:474d4795aafa 36 {
salco 37:f53e9f7a14df 37 signed char m_posX,m_posY;
salco 36:474d4795aafa 38 char direction;
salco 36:474d4795aafa 39 string mapDuLabyrinthe;
salco 36:474d4795aafa 40
salco 37:f53e9f7a14df 41
salco 36:474d4795aafa 42
salco 36:474d4795aafa 43 public:
salco 36:474d4795aafa 44 enum coordoner_t{
salco 33:c8b4e5a392e6 45 /* C7,C8,C9 */
salco 33:c8b4e5a392e6 46 /* C4,C5,C6 */
salco 33:c8b4e5a392e6 47 /* C1,C2,C3 */
salco 36:474d4795aafa 48 unset = -1,
salco 28:ac5c6350ed9a 49 C1 = 1,
salco 28:ac5c6350ed9a 50 C2 = 2,
salco 28:ac5c6350ed9a 51 C3 = 3,
salco 28:ac5c6350ed9a 52 C4 = 4,
salco 28:ac5c6350ed9a 53 C5 = 5,
salco 28:ac5c6350ed9a 54 C6 = 6,
salco 28:ac5c6350ed9a 55 C7 = 7,
salco 28:ac5c6350ed9a 56 C8 = 8,
salco 28:ac5c6350ed9a 57 C9 = 9
salco 28:ac5c6350ed9a 58 };
salco 28:ac5c6350ed9a 59
salco 36:474d4795aafa 60 enum case_t{
salco 37:f53e9f7a14df 61 error =-1,
salco 36:474d4795aafa 62 pasExplorer = 0,
salco 36:474d4795aafa 63 explorer = 1,
salco 36:474d4795aafa 64 mur = 2,
salco 36:474d4795aafa 65 vide = 3
salco 36:474d4795aafa 66 };
salco 36:474d4795aafa 67
salco 28:ac5c6350ed9a 68 Labyrinthe();
salco 28:ac5c6350ed9a 69 ~Labyrinthe();
salco 28:ac5c6350ed9a 70
salco 28:ac5c6350ed9a 71 char getDirection(){return direction;}
salco 28:ac5c6350ed9a 72 void setDirection(char dir){direction= dir;}
salco 28:ac5c6350ed9a 73
salco 37:f53e9f7a14df 74 signed char getX(void){return m_posX;}
salco 37:f53e9f7a14df 75 void setX(signed char x){m_posX = x;}
salco 28:ac5c6350ed9a 76
salco 37:f53e9f7a14df 77 signed char getY(void){return m_posY;}
salco 38:57d5f36a0333 78 void setY(signed char y){m_posY = y;}
salco 28:ac5c6350ed9a 79
salco 28:ac5c6350ed9a 80 void goUp(void){m_posY++;}
salco 28:ac5c6350ed9a 81 void goDown(void){m_posY--;}
salco 28:ac5c6350ed9a 82 void goLeft(void){m_posX--;}
salco 37:f53e9f7a14df 83 void goRight(void){m_posX++;}
salco 28:ac5c6350ed9a 84
salco 38:57d5f36a0333 85 void moveFoward(void){moveFoward(direction);}
salco 38:57d5f36a0333 86 void moveFoward(char dir);
salco 38:57d5f36a0333 87 void moveBackward(void){moveBackward(direction);}
salco 38:57d5f36a0333 88 void moveBackward(char dir);
salco 38:57d5f36a0333 89 void moveToLeft(void){moveToLeft(direction);}
salco 38:57d5f36a0333 90 void moveToLeft(char dir);
salco 38:57d5f36a0333 91 void moveToRight(void){moveToRight(direction);}
salco 38:57d5f36a0333 92 void moveToRight(char dir);
salco 37:f53e9f7a14df 93
salco 38:57d5f36a0333 94 void turnBack(void);
salco 38:57d5f36a0333 95 void turnLeft(void);
salco 38:57d5f36a0333 96 void turnRight(void);
salco 38:57d5f36a0333 97
salco 38:57d5f36a0333 98 char caseToChar(case_t value);
salco 38:57d5f36a0333 99
salco 38:57d5f36a0333 100 case_t getC_Foward(void){return getC_Foward(direction);}
salco 38:57d5f36a0333 101 case_t getC_Foward(char dir);
salco 38:57d5f36a0333 102 case_t getC_Backward(void){return getC_Backward(direction);}
salco 38:57d5f36a0333 103 case_t getC_Backward(char dir);
salco 38:57d5f36a0333 104 case_t getC_ToLeft(void){return getC_ToLeft(direction);}
salco 38:57d5f36a0333 105 case_t getC_ToLeft(char dir);
salco 38:57d5f36a0333 106 case_t getC_ToRight(void){return getC_ToRight(direction);}
salco 38:57d5f36a0333 107 case_t getC_ToRight(char dir);
salco 28:ac5c6350ed9a 108
salco 36:474d4795aafa 109 case_t getC(coordoner_t cX);
salco 37:f53e9f7a14df 110 case_t getC(signed char x, signed char y, coordoner_t cX);
salco 37:f53e9f7a14df 111 case_t getC(signed char x, signed char y);
salco 37:f53e9f7a14df 112 void setC(case_t value, signed char x, signed char y, coordoner_t cX);
salco 36:474d4795aafa 113 void setC(case_t value, coordoner_t cX);
salco 37:f53e9f7a14df 114 void setC(case_t value, signed char x, signed char y);
salco 28:ac5c6350ed9a 115
salco 36:474d4795aafa 116 void setC_Up(case_t value);
salco 36:474d4795aafa 117 void setC_Down(case_t value);
salco 36:474d4795aafa 118 void setC_Left(case_t value);
salco 36:474d4795aafa 119 void setC_Right(case_t value);
salco 36:474d4795aafa 120 void setMyPos(case_t value);
salco 28:ac5c6350ed9a 121
salco 35:d81f6b927932 122 /**
salco 35:d81f6b927932 123 * Surcharge de showMap(void)
salco 35:d81f6b927932 124 * @return The formated map 3x3 result
salco 35:d81f6b927932 125 */
salco 35:d81f6b927932 126 string showMap(void);
salco 35:d81f6b927932 127
salco 35:d81f6b927932 128 /**
salco 35:d81f6b927932 129 * Fonction permetant de sortire la map de la position x et y
salco 35:d81f6b927932 130 * @param x position X.
salco 35:d81f6b927932 131 * @param y position Y.
salco 35:d81f6b927932 132 * @return The formated map 3x3 result
salco 35:d81f6b927932 133 */
salco 37:f53e9f7a14df 134 string showMap(signed char x, signed char y);
salco 38:57d5f36a0333 135 string getAllMap(void){return mapDuLabyrinthe;}
salco 38:57d5f36a0333 136 void setAllMap(string updatedMap){mapDuLabyrinthe = updatedMap;}
salco 37:f53e9f7a14df 137
salco 37:f53e9f7a14df 138
salco 28:ac5c6350ed9a 139
salco 37:f53e9f7a14df 140 private:
salco 37:f53e9f7a14df 141 int searchCoord(signed char posX,signed char posY);
salco 28:ac5c6350ed9a 142
salco 37:f53e9f7a14df 143 coordoner_t getCoordoner(signed char &x, signed char &y);
salco 37:f53e9f7a14df 144 coordoner_t getCoordoner(void);
salco 37:f53e9f7a14df 145
salco 37:f53e9f7a14df 146 bool updateMap(string mapUpdated);
salco 37:f53e9f7a14df 147 bool updateMap(string mapUpdated,signed char x, signed char y);
salco 37:f53e9f7a14df 148 bool addMap(signed char x, signed char y);
salco 28:ac5c6350ed9a 149
salco 28:ac5c6350ed9a 150 };
salco 28:ac5c6350ed9a 151 #endif //LABYRINTHE_H//