code de la carte IHM avant les bugs et avant le travail effectué avec Melchior
Dependencies: mbed SerialHalfDuplex SDFileSystem liaison_Bluetooth ident_crac DISCO-F469NI_portrait
Instruction/Instruction.h@1:7e925468f9d9, 2020-01-30 (annotated)
- Committer:
- gabrieltetar
- Date:
- Thu Jan 30 16:48:59 2020 +0000
- Revision:
- 1:7e925468f9d9
start
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gabrieltetar | 1:7e925468f9d9 | 1 | #ifndef CRAC_INSTRUCTION |
gabrieltetar | 1:7e925468f9d9 | 2 | #define CRAC_INSTRUCTION |
gabrieltetar | 1:7e925468f9d9 | 3 | |
gabrieltetar | 1:7e925468f9d9 | 4 | #define caca 40 |
gabrieltetar | 1:7e925468f9d9 | 5 | |
gabrieltetar | 1:7e925468f9d9 | 6 | enum E_InstructionType |
gabrieltetar | 1:7e925468f9d9 | 7 | { |
gabrieltetar | 1:7e925468f9d9 | 8 | MV_BEZIER, |
gabrieltetar | 1:7e925468f9d9 | 9 | MV_COURBURE, // C -> Courbure |
gabrieltetar | 1:7e925468f9d9 | 10 | MV_LINE, // L -> Ligne droite |
gabrieltetar | 1:7e925468f9d9 | 11 | MV_TURN, // T -> Rotation sur place |
gabrieltetar | 1:7e925468f9d9 | 12 | MV_XYT, // X -> Aller à |
gabrieltetar | 1:7e925468f9d9 | 13 | MV_RECALAGE, // R -> Recalage bordure |
gabrieltetar | 1:7e925468f9d9 | 14 | ACTION, // A -> Action |
gabrieltetar | 1:7e925468f9d9 | 15 | UNKNOWN, // Erreur, instruction inconnue |
gabrieltetar | 1:7e925468f9d9 | 16 | POSITION_DEBUT // P |
gabrieltetar | 1:7e925468f9d9 | 17 | }; |
gabrieltetar | 1:7e925468f9d9 | 18 | enum E_InstructionDirection |
gabrieltetar | 1:7e925468f9d9 | 19 | { |
gabrieltetar | 1:7e925468f9d9 | 20 | NODIRECTION, // N -> Parametre absent |
gabrieltetar | 1:7e925468f9d9 | 21 | BACKWARD, |
gabrieltetar | 1:7e925468f9d9 | 22 | FORWARD, |
gabrieltetar | 1:7e925468f9d9 | 23 | RELATIVE, |
gabrieltetar | 1:7e925468f9d9 | 24 | ABSOLUTE, |
gabrieltetar | 1:7e925468f9d9 | 25 | LEFT, |
gabrieltetar | 1:7e925468f9d9 | 26 | RIGHT |
gabrieltetar | 1:7e925468f9d9 | 27 | }; |
gabrieltetar | 1:7e925468f9d9 | 28 | enum E_InstructionPrecisionOuRecalage |
gabrieltetar | 1:7e925468f9d9 | 29 | { |
gabrieltetar | 1:7e925468f9d9 | 30 | NOPRECISION,// N -> Parametre absent |
gabrieltetar | 1:7e925468f9d9 | 31 | PRECISION, // P -> Precision, verifier la position à la fin du mouvement et refaire un XYT si erreur > 1cm |
gabrieltetar | 1:7e925468f9d9 | 32 | RECALAGE_X, // X -> Recalage en X, indique un recalage sur l'axe X |
gabrieltetar | 1:7e925468f9d9 | 33 | RECALAGE_Y, // Y -> Recalage en Y, indique un recalage sur l'axe Y |
gabrieltetar | 1:7e925468f9d9 | 34 | RECALAGE_T |
gabrieltetar | 1:7e925468f9d9 | 35 | }; |
gabrieltetar | 1:7e925468f9d9 | 36 | enum E_InstructionNextActionType |
gabrieltetar | 1:7e925468f9d9 | 37 | { |
gabrieltetar | 1:7e925468f9d9 | 38 | NONEXTACTION, // N -> Parametre absent |
gabrieltetar | 1:7e925468f9d9 | 39 | JUMP, |
gabrieltetar | 1:7e925468f9d9 | 40 | WAIT, |
gabrieltetar | 1:7e925468f9d9 | 41 | ENCHAINEMENT, |
gabrieltetar | 1:7e925468f9d9 | 42 | MECANIQUE, |
gabrieltetar | 1:7e925468f9d9 | 43 | CAPTEUR |
gabrieltetar | 1:7e925468f9d9 | 44 | }; |
gabrieltetar | 1:7e925468f9d9 | 45 | enum E_InstructionNextActionJumpType |
gabrieltetar | 1:7e925468f9d9 | 46 | { |
gabrieltetar | 1:7e925468f9d9 | 47 | NONEXTACTIONJUMPTYPE, // N -> Parametre absent |
gabrieltetar | 1:7e925468f9d9 | 48 | JUMP_TIME, |
gabrieltetar | 1:7e925468f9d9 | 49 | JUMP_POSITION |
gabrieltetar | 1:7e925468f9d9 | 50 | }; |
gabrieltetar | 1:7e925468f9d9 | 51 | struct S_Instruction |
gabrieltetar | 1:7e925468f9d9 | 52 | { |
gabrieltetar | 1:7e925468f9d9 | 53 | short lineNumber;//Numéro de la ligne |
gabrieltetar | 1:7e925468f9d9 | 54 | enum E_InstructionType order; //Type de l'instruction |
gabrieltetar | 1:7e925468f9d9 | 55 | enum E_InstructionDirection direction; //BackWard ou Forward || Relative ou Absolu |
gabrieltetar | 1:7e925468f9d9 | 56 | |
gabrieltetar | 1:7e925468f9d9 | 57 | unsigned short arg1; |
gabrieltetar | 1:7e925468f9d9 | 58 | unsigned short arg2; |
gabrieltetar | 1:7e925468f9d9 | 59 | signed short arg3; |
gabrieltetar | 1:7e925468f9d9 | 60 | |
gabrieltetar | 1:7e925468f9d9 | 61 | enum E_InstructionPrecisionOuRecalage precision; |
gabrieltetar | 1:7e925468f9d9 | 62 | enum E_InstructionNextActionType nextActionType; |
gabrieltetar | 1:7e925468f9d9 | 63 | enum E_InstructionNextActionJumpType jumpAction; |
gabrieltetar | 1:7e925468f9d9 | 64 | unsigned short JumpTimeOrX; |
gabrieltetar | 1:7e925468f9d9 | 65 | unsigned short JumpY; |
gabrieltetar | 1:7e925468f9d9 | 66 | unsigned short nextLineOK; |
gabrieltetar | 1:7e925468f9d9 | 67 | unsigned short nextLineError; |
gabrieltetar | 1:7e925468f9d9 | 68 | |
gabrieltetar | 1:7e925468f9d9 | 69 | unsigned short arg4; |
gabrieltetar | 1:7e925468f9d9 | 70 | unsigned short arg5; |
gabrieltetar | 1:7e925468f9d9 | 71 | signed short arg6; |
gabrieltetar | 1:7e925468f9d9 | 72 | }; |
gabrieltetar | 1:7e925468f9d9 | 73 | |
gabrieltetar | 1:7e925468f9d9 | 74 | struct S_Dodge_queue |
gabrieltetar | 1:7e925468f9d9 | 75 | { |
gabrieltetar | 1:7e925468f9d9 | 76 | unsigned short nb;//Nombre d action en file dattente [0,9] |
gabrieltetar | 1:7e925468f9d9 | 77 | struct S_Instruction inst[10]; |
gabrieltetar | 1:7e925468f9d9 | 78 | }; |
gabrieltetar | 1:7e925468f9d9 | 79 | |
gabrieltetar | 1:7e925468f9d9 | 80 | /** |
gabrieltetar | 1:7e925468f9d9 | 81 | * Convertir un char en type d'instruction |
gabrieltetar | 1:7e925468f9d9 | 82 | **/ |
gabrieltetar | 1:7e925468f9d9 | 83 | enum E_InstructionType charToInstructionType(char type); |
gabrieltetar | 1:7e925468f9d9 | 84 | |
gabrieltetar | 1:7e925468f9d9 | 85 | /** |
gabrieltetar | 1:7e925468f9d9 | 86 | * |
gabrieltetar | 1:7e925468f9d9 | 87 | **/ |
gabrieltetar | 1:7e925468f9d9 | 88 | enum E_InstructionDirection charToInstructionDirection(char type); |
gabrieltetar | 1:7e925468f9d9 | 89 | |
gabrieltetar | 1:7e925468f9d9 | 90 | /** |
gabrieltetar | 1:7e925468f9d9 | 91 | * Convertir un char |
gabrieltetar | 1:7e925468f9d9 | 92 | **/ |
gabrieltetar | 1:7e925468f9d9 | 93 | enum E_InstructionPrecisionOuRecalage charToInstructionPrecisionOuRecalage(char type); |
gabrieltetar | 1:7e925468f9d9 | 94 | |
gabrieltetar | 1:7e925468f9d9 | 95 | /** |
gabrieltetar | 1:7e925468f9d9 | 96 | * |
gabrieltetar | 1:7e925468f9d9 | 97 | **/ |
gabrieltetar | 1:7e925468f9d9 | 98 | enum E_InstructionNextActionType charToInstructionNextActionType(char type); |
gabrieltetar | 1:7e925468f9d9 | 99 | |
gabrieltetar | 1:7e925468f9d9 | 100 | /** |
gabrieltetar | 1:7e925468f9d9 | 101 | * |
gabrieltetar | 1:7e925468f9d9 | 102 | **/ |
gabrieltetar | 1:7e925468f9d9 | 103 | enum E_InstructionNextActionJumpType charToInstructionNextActionJumpType(char type); |
gabrieltetar | 1:7e925468f9d9 | 104 | |
gabrieltetar | 1:7e925468f9d9 | 105 | /****************************************************************************************/ |
gabrieltetar | 1:7e925468f9d9 | 106 | /* FUNCTION NAME: stringToInstruction */ |
gabrieltetar | 1:7e925468f9d9 | 107 | /* DESCRIPTION : Conversion d'une ligne du fichier de strat en instruction */ |
gabrieltetar | 1:7e925468f9d9 | 108 | /****************************************************************************************/ |
gabrieltetar | 1:7e925468f9d9 | 109 | struct S_Instruction stringToInstruction(char line[]); |
gabrieltetar | 1:7e925468f9d9 | 110 | |
gabrieltetar | 1:7e925468f9d9 | 111 | /****************************************************************************************/ |
gabrieltetar | 1:7e925468f9d9 | 112 | /* FUNCTION NAME: loadAllInstruction */ |
gabrieltetar | 1:7e925468f9d9 | 113 | /* DESCRIPTION : Charger toutes les instructions du fichier de stratégie */ |
gabrieltetar | 1:7e925468f9d9 | 114 | /* Il faut utiliser strcpy(cheminFileStart,"/local/strat.txt"); */ |
gabrieltetar | 1:7e925468f9d9 | 115 | /* pour indiquer le fichier à utiliser */ |
gabrieltetar | 1:7e925468f9d9 | 116 | /****************************************************************************************/ |
gabrieltetar | 1:7e925468f9d9 | 117 | void loadAllInstruction( signed char Strategie); |
gabrieltetar | 1:7e925468f9d9 | 118 | |
gabrieltetar | 1:7e925468f9d9 | 119 | /****************************************************************************************/ |
gabrieltetar | 1:7e925468f9d9 | 120 | /* FUNCTION NAME: FileExists */ |
gabrieltetar | 1:7e925468f9d9 | 121 | /* DESCRIPTION : Permet de vérifier si un fichier existe */ |
gabrieltetar | 1:7e925468f9d9 | 122 | /****************************************************************************************/ |
gabrieltetar | 1:7e925468f9d9 | 123 | int FileExists(const char *fname); |
gabrieltetar | 1:7e925468f9d9 | 124 | |
gabrieltetar | 1:7e925468f9d9 | 125 | |
gabrieltetar | 1:7e925468f9d9 | 126 | #endif |