code avec la sortie d'évitement en plus géré par un ticker, ce code et le code "avec_modifs" buggent en match avec seulement la stratégie agressive.
Dependencies: mbed SerialHalfDuplex SDFileSystem liaison_Bluetooth ident_crac DISCO-F469NI_portrait
Arriver_bon_port/bon_port.cpp@37:9d6a3ccc0582, 2021-07-17 (annotated)
- Committer:
- goldmas
- Date:
- Sat Jul 17 11:07:17 2021 +0000
- Revision:
- 37:9d6a3ccc0582
Dernier code de la coupe de fracne 2021
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
goldmas | 37:9d6a3ccc0582 | 1 | #include "global.h" |
goldmas | 37:9d6a3ccc0582 | 2 | |
goldmas | 37:9d6a3ccc0582 | 3 | // {X,Y,T,Sens} |
goldmas | 37:9d6a3ccc0582 | 4 | int Nord_haut[4]={175,500,-90,1}; |
goldmas | 37:9d6a3ccc0582 | 5 | int Sud_haut[4]={1500,500,-90,1}; |
goldmas | 37:9d6a3ccc0582 | 6 | |
goldmas | 37:9d6a3ccc0582 | 7 | int Nord_bas[4]={175,500,-90,1}; |
goldmas | 37:9d6a3ccc0582 | 8 | int Sud_bas[4]={1500,500,-90,1}; |
goldmas | 37:9d6a3ccc0582 | 9 | |
goldmas | 37:9d6a3ccc0582 | 10 | int X_rob; |
goldmas | 37:9d6a3ccc0582 | 11 | int Y_rob; |
goldmas | 37:9d6a3ccc0582 | 12 | int T_rob; |
goldmas | 37:9d6a3ccc0582 | 13 | int Sens; |
goldmas | 37:9d6a3ccc0582 | 14 | |
goldmas | 37:9d6a3ccc0582 | 15 | int tourner; |
goldmas | 37:9d6a3ccc0582 | 16 | |
goldmas | 37:9d6a3ccc0582 | 17 | |
goldmas | 37:9d6a3ccc0582 | 18 | void arriver_bon_port(void) |
goldmas | 37:9d6a3ccc0582 | 19 | { |
goldmas | 37:9d6a3ccc0582 | 20 | } |
goldmas | 37:9d6a3ccc0582 | 21 | /* |
goldmas | 37:9d6a3ccc0582 | 22 | //Variable de comptage des points |
goldmas | 37:9d6a3ccc0582 | 23 | port_lu = val_girou + 1; |
goldmas | 37:9d6a3ccc0582 | 24 | |
goldmas | 37:9d6a3ccc0582 | 25 | ////////////////////////////////Girouette Sud//////////////////////////////// |
goldmas | 37:9d6a3ccc0582 | 26 | if(val_girou == 0) //Sud |
goldmas | 37:9d6a3ccc0582 | 27 | { |
goldmas | 37:9d6a3ccc0582 | 28 | if(Hauteur == 0) //Bas |
goldmas | 37:9d6a3ccc0582 | 29 | { |
goldmas | 37:9d6a3ccc0582 | 30 | if(InversStrat == 1) |
goldmas | 37:9d6a3ccc0582 | 31 | { |
goldmas | 37:9d6a3ccc0582 | 32 | X_rob = Sud_bas[0]; |
goldmas | 37:9d6a3ccc0582 | 33 | Y_rob = 3000 - Sud_bas[1];//Inversion du Y |
goldmas | 37:9d6a3ccc0582 | 34 | T_rob = -Sud_bas[2]; |
goldmas | 37:9d6a3ccc0582 | 35 | Sens = Sud_bas[3]; |
goldmas | 37:9d6a3ccc0582 | 36 | } |
goldmas | 37:9d6a3ccc0582 | 37 | else |
goldmas | 37:9d6a3ccc0582 | 38 | { |
goldmas | 37:9d6a3ccc0582 | 39 | X_rob = Sud_bas[0]; |
goldmas | 37:9d6a3ccc0582 | 40 | Y_rob = Sud_bas[1]; |
goldmas | 37:9d6a3ccc0582 | 41 | T_rob = Sud_bas[2]; |
goldmas | 37:9d6a3ccc0582 | 42 | Sens = Sud_bas[3]; |
goldmas | 37:9d6a3ccc0582 | 43 | } |
goldmas | 37:9d6a3ccc0582 | 44 | } |
goldmas | 37:9d6a3ccc0582 | 45 | else if(Hauteur == 1) //Haut |
goldmas | 37:9d6a3ccc0582 | 46 | { |
goldmas | 37:9d6a3ccc0582 | 47 | if(InversStrat == 1) |
goldmas | 37:9d6a3ccc0582 | 48 | { |
goldmas | 37:9d6a3ccc0582 | 49 | X_rob = Sud_haut[0]; |
goldmas | 37:9d6a3ccc0582 | 50 | Y_rob = 3000 - Sud_haut[1];//Inversion du Y |
goldmas | 37:9d6a3ccc0582 | 51 | T_rob = -Sud_haut[2]; |
goldmas | 37:9d6a3ccc0582 | 52 | Sens = Sud_haut[3]; |
goldmas | 37:9d6a3ccc0582 | 53 | } |
goldmas | 37:9d6a3ccc0582 | 54 | else |
goldmas | 37:9d6a3ccc0582 | 55 | { |
goldmas | 37:9d6a3ccc0582 | 56 | X_rob = Sud_haut[0]; |
goldmas | 37:9d6a3ccc0582 | 57 | Y_rob = Sud_haut[1]; |
goldmas | 37:9d6a3ccc0582 | 58 | T_rob = Sud_haut[2]; |
goldmas | 37:9d6a3ccc0582 | 59 | Sens = Sud_haut[3]; |
goldmas | 37:9d6a3ccc0582 | 60 | } |
goldmas | 37:9d6a3ccc0582 | 61 | } |
goldmas | 37:9d6a3ccc0582 | 62 | |
goldmas | 37:9d6a3ccc0582 | 63 | GoToPosition(X_rob, Y_rob, T_rob, Sens); |
goldmas | 37:9d6a3ccc0582 | 64 | waitingAckID = ASSERVISSEMENT_XYT; |
goldmas | 37:9d6a3ccc0582 | 65 | waitingAckFrom = ACKNOWLEDGE_MOTEUR; |
goldmas | 37:9d6a3ccc0582 | 66 | |
goldmas | 37:9d6a3ccc0582 | 67 | //target_x_robot = X_rob; |
goldmas | 37:9d6a3ccc0582 | 68 | //target_y_robot = Y_rob; |
goldmas | 37:9d6a3ccc0582 | 69 | //target_theta_robot = T_rob; |
goldmas | 37:9d6a3ccc0582 | 70 | |
goldmas | 37:9d6a3ccc0582 | 71 | //GoStraight(Sens*350,0,0,0); |
goldmas | 37:9d6a3ccc0582 | 72 | } |
goldmas | 37:9d6a3ccc0582 | 73 | |
goldmas | 37:9d6a3ccc0582 | 74 | ////////////////////////////////Girouette Nord//////////////////////////////// |
goldmas | 37:9d6a3ccc0582 | 75 | else if(val_girou == 1) //Nord |
goldmas | 37:9d6a3ccc0582 | 76 | { |
goldmas | 37:9d6a3ccc0582 | 77 | if(Hauteur == 0) //Bas |
goldmas | 37:9d6a3ccc0582 | 78 | { |
goldmas | 37:9d6a3ccc0582 | 79 | if(InversStrat == 1) |
goldmas | 37:9d6a3ccc0582 | 80 | { |
goldmas | 37:9d6a3ccc0582 | 81 | X_rob = Nord_bas[0]; |
goldmas | 37:9d6a3ccc0582 | 82 | Y_rob = 3000 - Nord_bas[1];//Inversion du Y |
goldmas | 37:9d6a3ccc0582 | 83 | T_rob = -Nord_bas[2]; |
goldmas | 37:9d6a3ccc0582 | 84 | Sens = Nord_bas[3]; |
goldmas | 37:9d6a3ccc0582 | 85 | } |
goldmas | 37:9d6a3ccc0582 | 86 | else |
goldmas | 37:9d6a3ccc0582 | 87 | { |
goldmas | 37:9d6a3ccc0582 | 88 | X_rob = Nord_bas[0]; |
goldmas | 37:9d6a3ccc0582 | 89 | Y_rob = Nord_bas[1]; |
goldmas | 37:9d6a3ccc0582 | 90 | T_rob = Nord_bas[2]; |
goldmas | 37:9d6a3ccc0582 | 91 | Sens = Nord_bas[3]; |
goldmas | 37:9d6a3ccc0582 | 92 | } |
goldmas | 37:9d6a3ccc0582 | 93 | } |
goldmas | 37:9d6a3ccc0582 | 94 | else if(Hauteur == 1) //Haut |
goldmas | 37:9d6a3ccc0582 | 95 | { |
goldmas | 37:9d6a3ccc0582 | 96 | if(InversStrat == 1) |
goldmas | 37:9d6a3ccc0582 | 97 | { |
goldmas | 37:9d6a3ccc0582 | 98 | X_rob = Nord_haut[0]; |
goldmas | 37:9d6a3ccc0582 | 99 | Y_rob = 3000 - Nord_haut[1];//Inversion du Y |
goldmas | 37:9d6a3ccc0582 | 100 | T_rob = -Nord_haut[2]; |
goldmas | 37:9d6a3ccc0582 | 101 | Sens = Nord_haut[3]; |
goldmas | 37:9d6a3ccc0582 | 102 | } |
goldmas | 37:9d6a3ccc0582 | 103 | else |
goldmas | 37:9d6a3ccc0582 | 104 | { |
goldmas | 37:9d6a3ccc0582 | 105 | X_rob = Nord_haut[0]; |
goldmas | 37:9d6a3ccc0582 | 106 | Y_rob = Nord_haut[1]; |
goldmas | 37:9d6a3ccc0582 | 107 | T_rob = Nord_haut[2]; |
goldmas | 37:9d6a3ccc0582 | 108 | Sens = Nord_haut[3]; |
goldmas | 37:9d6a3ccc0582 | 109 | } |
goldmas | 37:9d6a3ccc0582 | 110 | } |
goldmas | 37:9d6a3ccc0582 | 111 | GoToPosition(X_rob, Y_rob, T_rob, Sens); |
goldmas | 37:9d6a3ccc0582 | 112 | waitingAckID = ASSERVISSEMENT_XYT; |
goldmas | 37:9d6a3ccc0582 | 113 | waitingAckFrom = ACKNOWLEDGE_MOTEUR; |
goldmas | 37:9d6a3ccc0582 | 114 | |
goldmas | 37:9d6a3ccc0582 | 115 | //target_x_robot = X_rob; |
goldmas | 37:9d6a3ccc0582 | 116 | //target_y_robot = Y_rob; |
goldmas | 37:9d6a3ccc0582 | 117 | //target_theta_robot = T_rob; |
goldmas | 37:9d6a3ccc0582 | 118 | |
goldmas | 37:9d6a3ccc0582 | 119 | //GoStraight(Sens*350,0,0,0); |
goldmas | 37:9d6a3ccc0582 | 120 | } |
goldmas | 37:9d6a3ccc0582 | 121 | |
goldmas | 37:9d6a3ccc0582 | 122 | ////////////////////////////////Girouette Inconnu//////////////////////////////// |
goldmas | 37:9d6a3ccc0582 | 123 | else if(val_girou == 2) //Jsp |
goldmas | 37:9d6a3ccc0582 | 124 | { |
goldmas | 37:9d6a3ccc0582 | 125 | tourner = 3600; |
goldmas | 37:9d6a3ccc0582 | 126 | |
goldmas | 37:9d6a3ccc0582 | 127 | if(InversStrat == 1) |
goldmas | 37:9d6a3ccc0582 | 128 | { |
goldmas | 37:9d6a3ccc0582 | 129 | tourner = -tourner; |
goldmas | 37:9d6a3ccc0582 | 130 | } |
goldmas | 37:9d6a3ccc0582 | 131 | |
goldmas | 37:9d6a3ccc0582 | 132 | waitingAckID = ASSERVISSEMENT_ROTATION; |
goldmas | 37:9d6a3ccc0582 | 133 | waitingAckFrom = ACKNOWLEDGE_MOTEUR; |
goldmas | 37:9d6a3ccc0582 | 134 | Rotate(tourner); |
goldmas | 37:9d6a3ccc0582 | 135 | } |
goldmas | 37:9d6a3ccc0582 | 136 | } |
goldmas | 37:9d6a3ccc0582 | 137 | */ |