Programme carte strategie (disco)

Dependencies:   mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac

Committer:
Sitkah
Date:
Thu Apr 26 20:14:18 2018 +0000
Revision:
34:6aa4b46b102e
Parent:
29:41e02746041d
Child:
38:76f886a1c8e6
Ne pas tenir compte si besoin du code 2017

Who changed what in which revision?

UserRevisionLine numberNew contents of line
antbig 0:ad97421fb1fb 1 #ifndef CRAC_INSTRUCTION
antbig 0:ad97421fb1fb 2 #define CRAC_INSTRUCTION
antbig 0:ad97421fb1fb 3
antbig 0:ad97421fb1fb 4
antbig 0:ad97421fb1fb 5 enum E_InstructionType
antbig 0:ad97421fb1fb 6 {
antbig 0:ad97421fb1fb 7 MV_COURBURE, // C -> Courbure
antbig 0:ad97421fb1fb 8 MV_LINE, // L -> Ligne droite
antbig 0:ad97421fb1fb 9 MV_TURN, // T -> Rotation sur place
antbig 0:ad97421fb1fb 10 MV_XYT, // X -> Aller à
antbig 0:ad97421fb1fb 11 MV_RECALAGE, // R -> Recalage bordure
antbig 0:ad97421fb1fb 12 ACTION, // A -> Action
antbig 0:ad97421fb1fb 13 UNKNOWN // Erreur, instruction inconnue
antbig 0:ad97421fb1fb 14 };
antbig 0:ad97421fb1fb 15 enum E_InstructionDirection
antbig 0:ad97421fb1fb 16 {
antbig 0:ad97421fb1fb 17 NODIRECTION, // N -> Parametre absent
antbig 0:ad97421fb1fb 18 BACKWARD,
antbig 0:ad97421fb1fb 19 FORWARD,
antbig 0:ad97421fb1fb 20 RELATIVE,
antbig 11:ed13a480ddca 21 ABSOLUTE,
antbig 11:ed13a480ddca 22 LEFT,
antbig 11:ed13a480ddca 23 RIGHT
antbig 0:ad97421fb1fb 24 };
antbig 0:ad97421fb1fb 25 enum E_InstructionPrecisionOuRecalage
antbig 0:ad97421fb1fb 26 {
antbig 0:ad97421fb1fb 27 NOPRECISION,// N -> Parametre absent
antbig 0:ad97421fb1fb 28 PRECISION, // P -> Precision, verifier la position à la fin du mouvement et refaire un XYT si erreur > 1cm
antbig 0:ad97421fb1fb 29 RECALAGE_X, // X -> Recalage en X, indique un recalage sur l'axe X
Sitkah 34:6aa4b46b102e 30 RECALAGE_Y, // Y -> Recalage en Y, indique un recalage sur l'axe Y
Sitkah 34:6aa4b46b102e 31 RECALAGE_T
antbig 0:ad97421fb1fb 32 };
antbig 0:ad97421fb1fb 33 enum E_InstructionNextActionType
antbig 0:ad97421fb1fb 34 {
antbig 0:ad97421fb1fb 35 NONEXTACTION, // N -> Parametre absent
antbig 0:ad97421fb1fb 36 JUMP,
antbig 0:ad97421fb1fb 37 WAIT,
Sitkah 34:6aa4b46b102e 38 ENCHAINEMENT,
Sitkah 34:6aa4b46b102e 39 MECANIQUE,
Sitkah 34:6aa4b46b102e 40 CAPTEUR
antbig 0:ad97421fb1fb 41 };
antbig 0:ad97421fb1fb 42 enum E_InstructionNextActionJumpType
antbig 0:ad97421fb1fb 43 {
antbig 0:ad97421fb1fb 44 NONEXTACTIONJUMPTYPE, // N -> Parametre absent
antbig 0:ad97421fb1fb 45 JUMP_TIME,
antbig 0:ad97421fb1fb 46 JUMP_POSITION
antbig 0:ad97421fb1fb 47 };
antbig 0:ad97421fb1fb 48 struct S_Instruction
antbig 0:ad97421fb1fb 49 {
antbig 0:ad97421fb1fb 50 short lineNumber;//Numéro de la ligne
antbig 0:ad97421fb1fb 51 enum E_InstructionType order; //Type de l'instruction
antbig 0:ad97421fb1fb 52 enum E_InstructionDirection direction; //BackWard ou Forward || Relative ou Absolu
antbig 0:ad97421fb1fb 53
antbig 0:ad97421fb1fb 54 unsigned short arg1;
antbig 0:ad97421fb1fb 55 unsigned short arg2;
antbig 0:ad97421fb1fb 56 signed short arg3;
antbig 0:ad97421fb1fb 57
antbig 0:ad97421fb1fb 58 enum E_InstructionPrecisionOuRecalage precision;
antbig 0:ad97421fb1fb 59 enum E_InstructionNextActionType nextActionType;
antbig 0:ad97421fb1fb 60 enum E_InstructionNextActionJumpType jumpAction;
antbig 0:ad97421fb1fb 61 unsigned short JumpTimeOrX;
antbig 0:ad97421fb1fb 62 unsigned short JumpY;
antbig 0:ad97421fb1fb 63 unsigned short nextLineOK;
antbig 0:ad97421fb1fb 64 unsigned short nextLineError;
antbig 0:ad97421fb1fb 65 };
antbig 0:ad97421fb1fb 66
antbig 0:ad97421fb1fb 67 /**
antbig 0:ad97421fb1fb 68 * Convertir un char en type d'instruction
antbig 0:ad97421fb1fb 69 **/
antbig 0:ad97421fb1fb 70 enum E_InstructionType charToInstructionType(char type);
antbig 0:ad97421fb1fb 71
antbig 0:ad97421fb1fb 72 /**
antbig 0:ad97421fb1fb 73 *
antbig 0:ad97421fb1fb 74 **/
antbig 0:ad97421fb1fb 75 enum E_InstructionDirection charToInstructionDirection(char type);
antbig 0:ad97421fb1fb 76
antbig 0:ad97421fb1fb 77 /**
antbig 0:ad97421fb1fb 78 * Convertir un char
antbig 0:ad97421fb1fb 79 **/
antbig 0:ad97421fb1fb 80 enum E_InstructionPrecisionOuRecalage charToInstructionPrecisionOuRecalage(char type);
antbig 0:ad97421fb1fb 81
antbig 0:ad97421fb1fb 82 /**
antbig 0:ad97421fb1fb 83 *
antbig 0:ad97421fb1fb 84 **/
antbig 0:ad97421fb1fb 85 enum E_InstructionNextActionType charToInstructionNextActionType(char type);
antbig 0:ad97421fb1fb 86
antbig 0:ad97421fb1fb 87 /**
antbig 0:ad97421fb1fb 88 *
antbig 0:ad97421fb1fb 89 **/
antbig 0:ad97421fb1fb 90 enum E_InstructionNextActionJumpType charToInstructionNextActionJumpType(char type);
antbig 0:ad97421fb1fb 91
antbig 4:88431b537477 92 /****************************************************************************************/
antbig 4:88431b537477 93 /* FUNCTION NAME: stringToInstruction */
antbig 4:88431b537477 94 /* DESCRIPTION : Conversion d'une ligne du fichier de strat en instruction */
antbig 4:88431b537477 95 /****************************************************************************************/
antbig 0:ad97421fb1fb 96 struct S_Instruction stringToInstruction(char line[]);
antbig 0:ad97421fb1fb 97
antbig 4:88431b537477 98 /****************************************************************************************/
antbig 4:88431b537477 99 /* FUNCTION NAME: loadAllInstruction */
antbig 4:88431b537477 100 /* DESCRIPTION : Charger toutes les instructions du fichier de stratégie */
antbig 4:88431b537477 101 /* Il faut utiliser strcpy(cheminFileStart,"/local/strat.txt"); */
antbig 4:88431b537477 102 /* pour indiquer le fichier à utiliser */
antbig 4:88431b537477 103 /****************************************************************************************/
Sitkah 29:41e02746041d 104 void loadAllInstruction( signed char Strategie);
antbig 0:ad97421fb1fb 105
antbig 4:88431b537477 106 /****************************************************************************************/
antbig 4:88431b537477 107 /* FUNCTION NAME: FileExists */
antbig 4:88431b537477 108 /* DESCRIPTION : Permet de vérifier si un fichier existe */
antbig 4:88431b537477 109 /****************************************************************************************/
antbig 4:88431b537477 110 int FileExists(const char *fname);
antbig 4:88431b537477 111
antbig 0:ad97421fb1fb 112
antbig 0:ad97421fb1fb 113 #endif