carte_strategie_2019
Dependencies: mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac
Instruction/Instruction.h@38:76f886a1c8e6, 2018-05-09 (annotated)
- Committer:
- Sitkah
- Date:
- Wed May 09 19:36:20 2018 +0000
- Revision:
- 38:76f886a1c8e6
- Parent:
- 34:6aa4b46b102e
- Child:
- 67:96f914f92d2d
test avant match
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 |
Sitkah | 38:76f886a1c8e6 | 13 | UNKNOWN, // Erreur, instruction inconnue |
Sitkah | 38:76f886a1c8e6 | 14 | POSITION_DEBUT //P |
antbig | 0:ad97421fb1fb | 15 | }; |
antbig | 0:ad97421fb1fb | 16 | enum E_InstructionDirection |
antbig | 0:ad97421fb1fb | 17 | { |
antbig | 0:ad97421fb1fb | 18 | NODIRECTION, // N -> Parametre absent |
antbig | 0:ad97421fb1fb | 19 | BACKWARD, |
antbig | 0:ad97421fb1fb | 20 | FORWARD, |
antbig | 0:ad97421fb1fb | 21 | RELATIVE, |
antbig | 11:ed13a480ddca | 22 | ABSOLUTE, |
antbig | 11:ed13a480ddca | 23 | LEFT, |
antbig | 11:ed13a480ddca | 24 | RIGHT |
antbig | 0:ad97421fb1fb | 25 | }; |
antbig | 0:ad97421fb1fb | 26 | enum E_InstructionPrecisionOuRecalage |
antbig | 0:ad97421fb1fb | 27 | { |
antbig | 0:ad97421fb1fb | 28 | NOPRECISION,// N -> Parametre absent |
antbig | 0:ad97421fb1fb | 29 | PRECISION, // P -> Precision, verifier la position à la fin du mouvement et refaire un XYT si erreur > 1cm |
antbig | 0:ad97421fb1fb | 30 | RECALAGE_X, // X -> Recalage en X, indique un recalage sur l'axe X |
Sitkah | 34:6aa4b46b102e | 31 | RECALAGE_Y, // Y -> Recalage en Y, indique un recalage sur l'axe Y |
Sitkah | 34:6aa4b46b102e | 32 | RECALAGE_T |
antbig | 0:ad97421fb1fb | 33 | }; |
antbig | 0:ad97421fb1fb | 34 | enum E_InstructionNextActionType |
antbig | 0:ad97421fb1fb | 35 | { |
antbig | 0:ad97421fb1fb | 36 | NONEXTACTION, // N -> Parametre absent |
antbig | 0:ad97421fb1fb | 37 | JUMP, |
antbig | 0:ad97421fb1fb | 38 | WAIT, |
Sitkah | 34:6aa4b46b102e | 39 | ENCHAINEMENT, |
Sitkah | 34:6aa4b46b102e | 40 | MECANIQUE, |
Sitkah | 34:6aa4b46b102e | 41 | CAPTEUR |
antbig | 0:ad97421fb1fb | 42 | }; |
antbig | 0:ad97421fb1fb | 43 | enum E_InstructionNextActionJumpType |
antbig | 0:ad97421fb1fb | 44 | { |
antbig | 0:ad97421fb1fb | 45 | NONEXTACTIONJUMPTYPE, // N -> Parametre absent |
antbig | 0:ad97421fb1fb | 46 | JUMP_TIME, |
antbig | 0:ad97421fb1fb | 47 | JUMP_POSITION |
antbig | 0:ad97421fb1fb | 48 | }; |
antbig | 0:ad97421fb1fb | 49 | struct S_Instruction |
antbig | 0:ad97421fb1fb | 50 | { |
antbig | 0:ad97421fb1fb | 51 | short lineNumber;//Numéro de la ligne |
antbig | 0:ad97421fb1fb | 52 | enum E_InstructionType order; //Type de l'instruction |
antbig | 0:ad97421fb1fb | 53 | enum E_InstructionDirection direction; //BackWard ou Forward || Relative ou Absolu |
antbig | 0:ad97421fb1fb | 54 | |
antbig | 0:ad97421fb1fb | 55 | unsigned short arg1; |
antbig | 0:ad97421fb1fb | 56 | unsigned short arg2; |
antbig | 0:ad97421fb1fb | 57 | signed short arg3; |
antbig | 0:ad97421fb1fb | 58 | |
antbig | 0:ad97421fb1fb | 59 | enum E_InstructionPrecisionOuRecalage precision; |
antbig | 0:ad97421fb1fb | 60 | enum E_InstructionNextActionType nextActionType; |
antbig | 0:ad97421fb1fb | 61 | enum E_InstructionNextActionJumpType jumpAction; |
antbig | 0:ad97421fb1fb | 62 | unsigned short JumpTimeOrX; |
antbig | 0:ad97421fb1fb | 63 | unsigned short JumpY; |
antbig | 0:ad97421fb1fb | 64 | unsigned short nextLineOK; |
antbig | 0:ad97421fb1fb | 65 | unsigned short nextLineError; |
antbig | 0:ad97421fb1fb | 66 | }; |
antbig | 0:ad97421fb1fb | 67 | |
antbig | 0:ad97421fb1fb | 68 | /** |
antbig | 0:ad97421fb1fb | 69 | * Convertir un char en type d'instruction |
antbig | 0:ad97421fb1fb | 70 | **/ |
antbig | 0:ad97421fb1fb | 71 | enum E_InstructionType charToInstructionType(char type); |
antbig | 0:ad97421fb1fb | 72 | |
antbig | 0:ad97421fb1fb | 73 | /** |
antbig | 0:ad97421fb1fb | 74 | * |
antbig | 0:ad97421fb1fb | 75 | **/ |
antbig | 0:ad97421fb1fb | 76 | enum E_InstructionDirection charToInstructionDirection(char type); |
antbig | 0:ad97421fb1fb | 77 | |
antbig | 0:ad97421fb1fb | 78 | /** |
antbig | 0:ad97421fb1fb | 79 | * Convertir un char |
antbig | 0:ad97421fb1fb | 80 | **/ |
antbig | 0:ad97421fb1fb | 81 | enum E_InstructionPrecisionOuRecalage charToInstructionPrecisionOuRecalage(char type); |
antbig | 0:ad97421fb1fb | 82 | |
antbig | 0:ad97421fb1fb | 83 | /** |
antbig | 0:ad97421fb1fb | 84 | * |
antbig | 0:ad97421fb1fb | 85 | **/ |
antbig | 0:ad97421fb1fb | 86 | enum E_InstructionNextActionType charToInstructionNextActionType(char type); |
antbig | 0:ad97421fb1fb | 87 | |
antbig | 0:ad97421fb1fb | 88 | /** |
antbig | 0:ad97421fb1fb | 89 | * |
antbig | 0:ad97421fb1fb | 90 | **/ |
antbig | 0:ad97421fb1fb | 91 | enum E_InstructionNextActionJumpType charToInstructionNextActionJumpType(char type); |
antbig | 0:ad97421fb1fb | 92 | |
antbig | 4:88431b537477 | 93 | /****************************************************************************************/ |
antbig | 4:88431b537477 | 94 | /* FUNCTION NAME: stringToInstruction */ |
antbig | 4:88431b537477 | 95 | /* DESCRIPTION : Conversion d'une ligne du fichier de strat en instruction */ |
antbig | 4:88431b537477 | 96 | /****************************************************************************************/ |
antbig | 0:ad97421fb1fb | 97 | struct S_Instruction stringToInstruction(char line[]); |
antbig | 0:ad97421fb1fb | 98 | |
antbig | 4:88431b537477 | 99 | /****************************************************************************************/ |
antbig | 4:88431b537477 | 100 | /* FUNCTION NAME: loadAllInstruction */ |
antbig | 4:88431b537477 | 101 | /* DESCRIPTION : Charger toutes les instructions du fichier de stratégie */ |
antbig | 4:88431b537477 | 102 | /* Il faut utiliser strcpy(cheminFileStart,"/local/strat.txt"); */ |
antbig | 4:88431b537477 | 103 | /* pour indiquer le fichier à utiliser */ |
antbig | 4:88431b537477 | 104 | /****************************************************************************************/ |
Sitkah | 29:41e02746041d | 105 | void loadAllInstruction( signed char Strategie); |
antbig | 0:ad97421fb1fb | 106 | |
antbig | 4:88431b537477 | 107 | /****************************************************************************************/ |
antbig | 4:88431b537477 | 108 | /* FUNCTION NAME: FileExists */ |
antbig | 4:88431b537477 | 109 | /* DESCRIPTION : Permet de vérifier si un fichier existe */ |
antbig | 4:88431b537477 | 110 | /****************************************************************************************/ |
antbig | 4:88431b537477 | 111 | int FileExists(const char *fname); |
antbig | 4:88431b537477 | 112 | |
antbig | 0:ad97421fb1fb | 113 | |
antbig | 0:ad97421fb1fb | 114 | #endif |