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:
Tue Jan 31 13:15:42 2017 +0000
Revision:
41:0b5c14dda54a
Parent:
39:34d7802e8d15
Tentative de modifier les commit inutile sur debug.h

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 39:34d7802e8d15 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 39:34d7802e8d15 94 void getXY_Foward(signed char &x, signed char &y){getXY_Foward(x,y,direction);}
salco 39:34d7802e8d15 95 void getXY_Foward(signed char &x, signed char &y,char dir);
salco 39:34d7802e8d15 96 void getXY_Backward(signed char &x, signed char &y){getXY_Backward(x,y,direction);}
salco 39:34d7802e8d15 97 void getXY_Backward(signed char &x, signed char &y,char dir);
salco 39:34d7802e8d15 98 void getXY_Left(signed char &x, signed char &y){getXY_Left(x,y,direction);}
salco 39:34d7802e8d15 99 void getXY_Left(signed char &x, signed char &y, char dir);
salco 39:34d7802e8d15 100 void getXY_Right(signed char &x, signed char &y){getXY_Right(x,y,direction);}
salco 39:34d7802e8d15 101 void getXY_Right(signed char &x, signed char &y, char dir);
salco 39:34d7802e8d15 102
salco 38:57d5f36a0333 103 void turnBack(void);
salco 38:57d5f36a0333 104 void turnLeft(void);
salco 38:57d5f36a0333 105 void turnRight(void);
salco 38:57d5f36a0333 106
salco 38:57d5f36a0333 107 char caseToChar(case_t value);
salco 38:57d5f36a0333 108
salco 38:57d5f36a0333 109 case_t getC_Foward(void){return getC_Foward(direction);}
salco 38:57d5f36a0333 110 case_t getC_Foward(char dir);
salco 38:57d5f36a0333 111 case_t getC_Backward(void){return getC_Backward(direction);}
salco 38:57d5f36a0333 112 case_t getC_Backward(char dir);
salco 38:57d5f36a0333 113 case_t getC_ToLeft(void){return getC_ToLeft(direction);}
salco 38:57d5f36a0333 114 case_t getC_ToLeft(char dir);
salco 38:57d5f36a0333 115 case_t getC_ToRight(void){return getC_ToRight(direction);}
salco 38:57d5f36a0333 116 case_t getC_ToRight(char dir);
salco 28:ac5c6350ed9a 117
salco 36:474d4795aafa 118 case_t getC(coordoner_t cX);
salco 37:f53e9f7a14df 119 case_t getC(signed char x, signed char y, coordoner_t cX);
salco 37:f53e9f7a14df 120 case_t getC(signed char x, signed char y);
salco 37:f53e9f7a14df 121 void setC(case_t value, signed char x, signed char y, coordoner_t cX);
salco 36:474d4795aafa 122 void setC(case_t value, coordoner_t cX);
salco 37:f53e9f7a14df 123 void setC(case_t value, signed char x, signed char y);
salco 28:ac5c6350ed9a 124
salco 36:474d4795aafa 125 void setC_Up(case_t value);
salco 36:474d4795aafa 126 void setC_Down(case_t value);
salco 36:474d4795aafa 127 void setC_Left(case_t value);
salco 36:474d4795aafa 128 void setC_Right(case_t value);
salco 36:474d4795aafa 129 void setMyPos(case_t value);
salco 28:ac5c6350ed9a 130
salco 35:d81f6b927932 131 /**
salco 35:d81f6b927932 132 * Surcharge de showMap(void)
salco 35:d81f6b927932 133 * @return The formated map 3x3 result
salco 35:d81f6b927932 134 */
salco 35:d81f6b927932 135 string showMap(void);
salco 35:d81f6b927932 136
salco 35:d81f6b927932 137 /**
salco 35:d81f6b927932 138 * Fonction permetant de sortire la map de la position x et y
salco 35:d81f6b927932 139 * @param x position X.
salco 35:d81f6b927932 140 * @param y position Y.
salco 35:d81f6b927932 141 * @return The formated map 3x3 result
salco 35:d81f6b927932 142 */
salco 37:f53e9f7a14df 143 string showMap(signed char x, signed char y);
salco 38:57d5f36a0333 144 string getAllMap(void){return mapDuLabyrinthe;}
salco 38:57d5f36a0333 145 void setAllMap(string updatedMap){mapDuLabyrinthe = updatedMap;}
salco 37:f53e9f7a14df 146
salco 37:f53e9f7a14df 147
salco 28:ac5c6350ed9a 148
salco 37:f53e9f7a14df 149 private:
salco 37:f53e9f7a14df 150 int searchCoord(signed char posX,signed char posY);
salco 28:ac5c6350ed9a 151
salco 37:f53e9f7a14df 152 coordoner_t getCoordoner(signed char &x, signed char &y);
salco 37:f53e9f7a14df 153 coordoner_t getCoordoner(void);
salco 37:f53e9f7a14df 154
salco 37:f53e9f7a14df 155 bool updateMap(string mapUpdated);
salco 37:f53e9f7a14df 156 bool updateMap(string mapUpdated,signed char x, signed char y);
salco 37:f53e9f7a14df 157 bool addMap(signed char x, signed char y);
salco 28:ac5c6350ed9a 158
salco 28:ac5c6350ed9a 159 };
salco 28:ac5c6350ed9a 160 #endif //LABYRINTHE_H//