carte_strategie_2019
Dependencies: mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac
Instruction/Instruction.h@34:6aa4b46b102e, 2018-04-26 (annotated)
- 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?
User | Revision | Line number | New 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 |