Programme carte strategie (disco)
Dependencies: mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac
Instruction/Instruction.h@29:41e02746041d, 2018-04-06 (annotated)
- Committer:
- Sitkah
- Date:
- Fri Apr 06 13:47:19 2018 +0000
- Revision:
- 29:41e02746041d
- Parent:
- 11:ed13a480ddca
- Child:
- 34:6aa4b46b102e
version fusionn?e
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 |
antbig | 0:ad97421fb1fb | 30 | RECALAGE_Y // Y -> Recalage en Y, indique un recalage sur l'axe Y |
antbig | 0:ad97421fb1fb | 31 | }; |
antbig | 0:ad97421fb1fb | 32 | enum E_InstructionNextActionType |
antbig | 0:ad97421fb1fb | 33 | { |
antbig | 0:ad97421fb1fb | 34 | NONEXTACTION, // N -> Parametre absent |
antbig | 0:ad97421fb1fb | 35 | JUMP, |
antbig | 0:ad97421fb1fb | 36 | WAIT, |
antbig | 0:ad97421fb1fb | 37 | ENCHAINEMENT |
antbig | 0:ad97421fb1fb | 38 | }; |
antbig | 0:ad97421fb1fb | 39 | enum E_InstructionNextActionJumpType |
antbig | 0:ad97421fb1fb | 40 | { |
antbig | 0:ad97421fb1fb | 41 | NONEXTACTIONJUMPTYPE, // N -> Parametre absent |
antbig | 0:ad97421fb1fb | 42 | JUMP_TIME, |
antbig | 0:ad97421fb1fb | 43 | JUMP_POSITION |
antbig | 0:ad97421fb1fb | 44 | }; |
antbig | 0:ad97421fb1fb | 45 | struct S_Instruction |
antbig | 0:ad97421fb1fb | 46 | { |
antbig | 0:ad97421fb1fb | 47 | short lineNumber;//Numéro de la ligne |
antbig | 0:ad97421fb1fb | 48 | enum E_InstructionType order; //Type de l'instruction |
antbig | 0:ad97421fb1fb | 49 | enum E_InstructionDirection direction; //BackWard ou Forward || Relative ou Absolu |
antbig | 0:ad97421fb1fb | 50 | |
antbig | 0:ad97421fb1fb | 51 | unsigned short arg1; |
antbig | 0:ad97421fb1fb | 52 | unsigned short arg2; |
antbig | 0:ad97421fb1fb | 53 | signed short arg3; |
antbig | 0:ad97421fb1fb | 54 | |
antbig | 0:ad97421fb1fb | 55 | enum E_InstructionPrecisionOuRecalage precision; |
antbig | 0:ad97421fb1fb | 56 | enum E_InstructionNextActionType nextActionType; |
antbig | 0:ad97421fb1fb | 57 | enum E_InstructionNextActionJumpType jumpAction; |
antbig | 0:ad97421fb1fb | 58 | unsigned short JumpTimeOrX; |
antbig | 0:ad97421fb1fb | 59 | unsigned short JumpY; |
antbig | 0:ad97421fb1fb | 60 | unsigned short nextLineOK; |
antbig | 0:ad97421fb1fb | 61 | unsigned short nextLineError; |
antbig | 0:ad97421fb1fb | 62 | }; |
antbig | 0:ad97421fb1fb | 63 | |
antbig | 0:ad97421fb1fb | 64 | /** |
antbig | 0:ad97421fb1fb | 65 | * Convertir un char en type d'instruction |
antbig | 0:ad97421fb1fb | 66 | **/ |
antbig | 0:ad97421fb1fb | 67 | enum E_InstructionType charToInstructionType(char type); |
antbig | 0:ad97421fb1fb | 68 | |
antbig | 0:ad97421fb1fb | 69 | /** |
antbig | 0:ad97421fb1fb | 70 | * |
antbig | 0:ad97421fb1fb | 71 | **/ |
antbig | 0:ad97421fb1fb | 72 | enum E_InstructionDirection charToInstructionDirection(char type); |
antbig | 0:ad97421fb1fb | 73 | |
antbig | 0:ad97421fb1fb | 74 | /** |
antbig | 0:ad97421fb1fb | 75 | * Convertir un char |
antbig | 0:ad97421fb1fb | 76 | **/ |
antbig | 0:ad97421fb1fb | 77 | enum E_InstructionPrecisionOuRecalage charToInstructionPrecisionOuRecalage(char type); |
antbig | 0:ad97421fb1fb | 78 | |
antbig | 0:ad97421fb1fb | 79 | /** |
antbig | 0:ad97421fb1fb | 80 | * |
antbig | 0:ad97421fb1fb | 81 | **/ |
antbig | 0:ad97421fb1fb | 82 | enum E_InstructionNextActionType charToInstructionNextActionType(char type); |
antbig | 0:ad97421fb1fb | 83 | |
antbig | 0:ad97421fb1fb | 84 | /** |
antbig | 0:ad97421fb1fb | 85 | * |
antbig | 0:ad97421fb1fb | 86 | **/ |
antbig | 0:ad97421fb1fb | 87 | enum E_InstructionNextActionJumpType charToInstructionNextActionJumpType(char type); |
antbig | 0:ad97421fb1fb | 88 | |
antbig | 4:88431b537477 | 89 | /****************************************************************************************/ |
antbig | 4:88431b537477 | 90 | /* FUNCTION NAME: stringToInstruction */ |
antbig | 4:88431b537477 | 91 | /* DESCRIPTION : Conversion d'une ligne du fichier de strat en instruction */ |
antbig | 4:88431b537477 | 92 | /****************************************************************************************/ |
antbig | 0:ad97421fb1fb | 93 | struct S_Instruction stringToInstruction(char line[]); |
antbig | 0:ad97421fb1fb | 94 | |
antbig | 4:88431b537477 | 95 | /****************************************************************************************/ |
antbig | 4:88431b537477 | 96 | /* FUNCTION NAME: loadAllInstruction */ |
antbig | 4:88431b537477 | 97 | /* DESCRIPTION : Charger toutes les instructions du fichier de stratégie */ |
antbig | 4:88431b537477 | 98 | /* Il faut utiliser strcpy(cheminFileStart,"/local/strat.txt"); */ |
antbig | 4:88431b537477 | 99 | /* pour indiquer le fichier à utiliser */ |
antbig | 4:88431b537477 | 100 | /****************************************************************************************/ |
Sitkah | 29:41e02746041d | 101 | void loadAllInstruction( signed char Strategie); |
antbig | 0:ad97421fb1fb | 102 | |
antbig | 4:88431b537477 | 103 | /****************************************************************************************/ |
antbig | 4:88431b537477 | 104 | /* FUNCTION NAME: FileExists */ |
antbig | 4:88431b537477 | 105 | /* DESCRIPTION : Permet de vérifier si un fichier existe */ |
antbig | 4:88431b537477 | 106 | /****************************************************************************************/ |
antbig | 4:88431b537477 | 107 | int FileExists(const char *fname); |
antbig | 4:88431b537477 | 108 | |
antbig | 0:ad97421fb1fb | 109 | |
antbig | 0:ad97421fb1fb | 110 | #endif |