Programme carte strategie (disco)

Dependencies:   mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac

Committer:
Artiom
Date:
Thu May 09 17:21:32 2019 +0000
Revision:
46:a9b6bcb30b1c
Parent:
45:4f93e99bac6e
Child:
50:a5361ffeefc8
offset recalage+nouvelles actions

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sitkah 29:41e02746041d 1 #include "global.h"
Sitkah 38:76f886a1c8e6 2
antbig 3:19f2285a4757 3 #ifdef ROBOT_SMALL
Sitkah 29:41e02746041d 4
antbig 3:19f2285a4757 5
antbig 12:14729d584500 6 unsigned char isStopEnable = 1;//Permet de savoir si il faut autoriser le stop via les balises
ClementBreteau 21:590cdacb6a35 7 //unsigned short telemetreDistance;
ClementBreteau 18:cc5fec34ed9c 8
antbig 12:14729d584500 9
antbig 3:19f2285a4757 10 /****************************************************************************************/
antbig 3:19f2285a4757 11 /* FUNCTION NAME: doFunnyAction */
antbig 3:19f2285a4757 12 /* DESCRIPTION : Permet de faire la funny action en fin de partie */
antbig 3:19f2285a4757 13 /****************************************************************************************/
Artiom 46:a9b6bcb30b1c 14 void doFunnyAction(void)
Artiom 46:a9b6bcb30b1c 15 {
Artiom 46:a9b6bcb30b1c 16
Artiom 46:a9b6bcb30b1c 17
antbig 3:19f2285a4757 18 }
antbig 3:19f2285a4757 19
ClementBreteau 18:cc5fec34ed9c 20
Sitkah 42:657b6a573e11 21 /*************************************************************************************************/
Sitkah 42:657b6a573e11 22 /* FUNCTION NAME: doAction */
Sitkah 42:657b6a573e11 23 /* DESCRIPTION : Effectuer une action specifique correspondant au numéro dans le fichier strat */
Sitkah 42:657b6a573e11 24 /*************************************************************************************************/
Artiom 46:a9b6bcb30b1c 25 unsigned char doAction(unsigned char id, unsigned short arg1, short arg2)
Artiom 46:a9b6bcb30b1c 26 {
ClementBreteau 18:cc5fec34ed9c 27 int retour = 1;
Sitkah 34:6aa4b46b102e 28 CANMessage msgTx=CANMessage();
Sitkah 34:6aa4b46b102e 29 msgTx.format=CANStandard;
Sitkah 34:6aa4b46b102e 30 msgTx.type=CANData;
antbig 3:19f2285a4757 31 switch(id) {
Villanut 45:4f93e99bac6e 32 case 101: //bras gabarit
Artiom 46:a9b6bcb30b1c 33 SendRawId(GABARIT_PETIT_ROBOT);
Sitkah 30:a1e37af4bbde 34 break;
Villanut 45:4f93e99bac6e 35 case 102: //attraper presentoir avant
Artiom 46:a9b6bcb30b1c 36 SendRawId(PRESENTOIR_AVANT);
Sitkah 30:a1e37af4bbde 37 break;
Villanut 45:4f93e99bac6e 38 case 103: //attraper presentoir arriere
Villanut 45:4f93e99bac6e 39 SendRawId(PRESENTOIR_ARRIERE);
Sitkah 30:a1e37af4bbde 40 break;
Villanut 45:4f93e99bac6e 41 case 104: //balance avant
Villanut 45:4f93e99bac6e 42 SendRawId(BALANCE_AVANT);
Sitkah 30:a1e37af4bbde 43 break;
Villanut 45:4f93e99bac6e 44 case 105: //balance arriere
Villanut 45:4f93e99bac6e 45 SendRawId(BALANCE_ARRIERE);
Sitkah 30:a1e37af4bbde 46 break;
Villanut 45:4f93e99bac6e 47 case 106: //accelerateur avant
Villanut 45:4f93e99bac6e 48 SendRawId(ACCELERATEUR_AVANT);
Sitkah 30:a1e37af4bbde 49 break;
Villanut 45:4f93e99bac6e 50 case 107: //accelerateur arriere
Villanut 45:4f93e99bac6e 51 SendRawId(ACCELERATEUR_ARRIERE);
Sitkah 30:a1e37af4bbde 52 break;
Villanut 45:4f93e99bac6e 53 case 108: //goldenium avant
Villanut 45:4f93e99bac6e 54 SendRawId(GOLDENIUM_AVANT);
Sitkah 30:a1e37af4bbde 55 break;
Villanut 45:4f93e99bac6e 56 case 109: //goldenium arriere
Villanut 45:4f93e99bac6e 57 SendRawId(GOLDENIUM_ARRIERE);
Sitkah 30:a1e37af4bbde 58 break;
Villanut 45:4f93e99bac6e 59 case 110: //sol avant
Villanut 45:4f93e99bac6e 60 SendRawId(SOL_AVANT);
Sitkah 30:a1e37af4bbde 61 break;
Villanut 45:4f93e99bac6e 62 case 111: //sol arriere
Villanut 45:4f93e99bac6e 63 SendRawId(SOL_ARRIERE);
Sitkah 34:6aa4b46b102e 64 break;
Artiom 46:a9b6bcb30b1c 65 case 112: //sol avant relache
Artiom 46:a9b6bcb30b1c 66 SendRawId(SOL_AVANT_RELACHE);
Artiom 46:a9b6bcb30b1c 67 break;
Artiom 46:a9b6bcb30b1c 68 case 113: //sol arriere relache
Artiom 46:a9b6bcb30b1c 69 SendRawId(SOL_ARRIERE_RELACHE);
Artiom 46:a9b6bcb30b1c 70 break;
Artiom 46:a9b6bcb30b1c 71
Sitkah 38:76f886a1c8e6 72 case 150:
Sitkah 38:76f886a1c8e6 73 SCORE_PR+=arg1;
Sitkah 38:76f886a1c8e6 74 liaison_Tx.envoyer_short(0x30,SCORE_PR);
Sitkah 38:76f886a1c8e6 75 waitingAckFrom = 0;
Sitkah 38:76f886a1c8e6 76 waitingAckID = 0;
Sitkah 38:76f886a1c8e6 77 break;
Artiom 46:a9b6bcb30b1c 78
Artiom 46:a9b6bcb30b1c 79
ClementBreteau 18:cc5fec34ed9c 80 case 200 :
Sitkah 30:a1e37af4bbde 81 SendRawId(DATA_TELEMETRE);
Sitkah 30:a1e37af4bbde 82 /*telemetreDistance = dataTelemetre();
ClementBreteau 18:cc5fec34ed9c 83 wait_ms(1);
ClementBreteau 18:cc5fec34ed9c 84 telemetreDistance = dataTelemetre();
Sitkah 30:a1e37af4bbde 85 telemetreDistance = telemetreDistance - 170;*/
Artiom 46:a9b6bcb30b1c 86 break;
Artiom 46:a9b6bcb30b1c 87
ClementBreteau 18:cc5fec34ed9c 88 case 201 :
Sitkah 30:a1e37af4bbde 89 SendRawId(0x99);
ClementBreteau 18:cc5fec34ed9c 90 retour = 2;
Artiom 46:a9b6bcb30b1c 91 break;
Artiom 46:a9b6bcb30b1c 92
antbig 12:14729d584500 93 case 10://Désactiver le stop
antbig 12:14729d584500 94 isStopEnable = 0;
Artiom 46:a9b6bcb30b1c 95 break;
antbig 12:14729d584500 96 case 11://Activer le stop
antbig 12:14729d584500 97 isStopEnable = 1;
Artiom 46:a9b6bcb30b1c 98 break;
antbig 12:14729d584500 99 case 20://Désactiver l'asservissement
antbig 12:14729d584500 100 setAsservissementEtat(0);
Artiom 46:a9b6bcb30b1c 101 break;
antbig 12:14729d584500 102 case 21://Activer l'asservissement
antbig 12:14729d584500 103 setAsservissementEtat(1);
Artiom 46:a9b6bcb30b1c 104 break;
Artiom 46:a9b6bcb30b1c 105
Sitkah 34:6aa4b46b102e 106 case 22://Changer la vitesse du robot
Sitkah 34:6aa4b46b102e 107 SendSpeed(arg1,(unsigned short)arg2);
ClementBreteau 18:cc5fec34ed9c 108 wait_us(200);
antbig 28:acd18776ed2d 109 waitingAckFrom = 0;
antbig 28:acd18776ed2d 110 waitingAckID = 0;
Artiom 46:a9b6bcb30b1c 111 break;
Artiom 46:a9b6bcb30b1c 112
Artiom 46:a9b6bcb30b1c 113 case 19: // CHANGER LA VITESSE + DECELERATION
Sitkah 34:6aa4b46b102e 114 SendSpeedDecel(arg1,(unsigned short) arg2);
antbig 28:acd18776ed2d 115 wait_us(200);
antbig 28:acd18776ed2d 116 waitingAckFrom = 0;
antbig 28:acd18776ed2d 117 waitingAckID =0;
Artiom 46:a9b6bcb30b1c 118 break;
Artiom 46:a9b6bcb30b1c 119
ClementBreteau 16:7321fb3bb396 120 case 30://Action tempo
Sitkah 34:6aa4b46b102e 121 wait_ms(arg1);
Artiom 46:a9b6bcb30b1c 122 break;
Artiom 46:a9b6bcb30b1c 123
antbig 3:19f2285a4757 124 default:
ClementBreteau 18:cc5fec34ed9c 125 retour = 0;//L'action n'existe pas, il faut utiliser le CAN
Artiom 46:a9b6bcb30b1c 126
antbig 3:19f2285a4757 127 }
ClementBreteau 18:cc5fec34ed9c 128 return retour;//L'action est spécifique.
Artiom 46:a9b6bcb30b1c 129
antbig 3:19f2285a4757 130 }
antbig 3:19f2285a4757 131
antbig 3:19f2285a4757 132
antbig 4:88431b537477 133
antbig 12:14729d584500 134 /****************************************************************************************/
antbig 12:14729d584500 135 /* FUNCTION NAME: needToStop */
antbig 12:14729d584500 136 /* DESCRIPTION : Savoir si il faut autoriser le stop du robot via balise */
antbig 12:14729d584500 137 /****************************************************************************************/
antbig 12:14729d584500 138 unsigned char needToStop(void)
antbig 12:14729d584500 139 {
antbig 12:14729d584500 140 return isStopEnable;
antbig 12:14729d584500 141 }
antbig 12:14729d584500 142
antbig 12:14729d584500 143 /****************************************************************************************/
antbig 12:14729d584500 144 /* FUNCTION NAME: doBeforeEndAction */
antbig 12:14729d584500 145 /* DESCRIPTION : Terminer les actions du robot 1s avant la fin du match */
antbig 12:14729d584500 146 /****************************************************************************************/
antbig 12:14729d584500 147 void doBeforeEndAction(void)
antbig 12:14729d584500 148 {
Artiom 46:a9b6bcb30b1c 149
antbig 12:14729d584500 150 }
antbig 12:14729d584500 151
antbig 3:19f2285a4757 152 #endif