Programme carte strategie (disco)
Dependencies: mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac
Robots/Strategie_small.cpp
- Committer:
- Sitkah
- Date:
- 2018-05-17
- Revision:
- 42:657b6a573e11
- Parent:
- 38:76f886a1c8e6
- Child:
- 45:4f93e99bac6e
File content as of revision 42:657b6a573e11:
#include "global.h" #ifdef ROBOT_SMALL unsigned char isStopEnable = 1;//Permet de savoir si il faut autoriser le stop via les balises //unsigned short telemetreDistance; /****************************************************************************************/ /* FUNCTION NAME: doFunnyAction */ /* DESCRIPTION : Permet de faire la funny action en fin de partie */ /****************************************************************************************/ void doFunnyAction(void) { } /*************************************************************************************************/ /* FUNCTION NAME: doAction */ /* DESCRIPTION : Effectuer une action specifique correspondant au numéro dans le fichier strat */ /*************************************************************************************************/ unsigned char doAction(unsigned char id, unsigned short arg1, short arg2) { int retour = 1; CANMessage msgTx=CANMessage(); msgTx.format=CANStandard; msgTx.type=CANData; switch(id) { case 101: //baisser attrape bloc avant SendRawId(BAISSER_ATTRAPE_BLOC); break; case 102: //Relever attrape bloc avant SendRawId(RELEVER_ATTRAPE_BLOC); break; case 115: //allumer panneau SendRawId(ALLUMER_PANNEAU_UP); break; case 116: //range le bras qui allume le panneau SendRawId(ALLUMER_PANNEAU_DOWN); break; case 117: //lève le bras pour pousser l'abeille SendRawId(BRAS_ABEILLE_UP); break; case 118: //abaisse le bras qui pousse l'abeille SendRawId(BRAS_ABEILLE_DOWN); break; case 130: //Inclinaison pour viser le chateau d'eau SendRawId(INCLINAISON_CHATEAU); break; case 131: //inclinaison pour deverser les balles sales SendRawId(INCLINAISON_EPURATION); break; case 132: //blocage des balles SendRawId(BLOCAGE_BALLE); break; case 133: //lance le pwm de tir msgTx.id=LANCEMENT_MOTEUR_TIR_ON; msgTx.len=1; msgTx.data[0]=arg1; can2.write(msgTx); break; case 134: ///Arrete le pwm de tir SendRawId(LANCEMENT_MOTEUR_TIR_OFF); break; case 135://position aiguilleur au centre SendRawId(AIGUILLEUR_CENTRE); break; case 136://position aiguilleur à gauche SendRawId(AIGUILLEUR_GAUCHE); break; case 137://position aiguilleur à droite SendRawId(AIGUILLEUR_DROITE); break; case 138://position aiguilleur au centre SendRawId(TRI_BALLE); break; case 139: SendRawId(VIBRO); break; case 150: SCORE_PR+=arg1; liaison_Tx.envoyer_short(0x30,SCORE_PR); waitingAckFrom = 0; waitingAckID = 0; break; case 200 : SendRawId(DATA_TELEMETRE); /*telemetreDistance = dataTelemetre(); wait_ms(1); telemetreDistance = dataTelemetre(); telemetreDistance = telemetreDistance - 170;*/ break; case 201 : SendRawId(0x99); retour = 2; break; case 10://Désactiver le stop isStopEnable = 0; break; case 11://Activer le stop isStopEnable = 1; break; case 20://Désactiver l'asservissement setAsservissementEtat(0); break; case 21://Activer l'asservissement setAsservissementEtat(1); break; case 22://Changer la vitesse du robot SendSpeed(arg1,(unsigned short)arg2); wait_us(200); waitingAckFrom = 0; waitingAckID = 0; break; case 19: // CHANGER LA VITESSE + DECELERATION SendSpeedDecel(arg1,(unsigned short) arg2); wait_us(200); waitingAckFrom = 0; waitingAckID =0; break; case 30://Action tempo wait_ms(arg1); break; default: retour = 0;//L'action n'existe pas, il faut utiliser le CAN } return retour;//L'action est spécifique. } /****************************************************************************************/ /* FUNCTION NAME: needToStop */ /* DESCRIPTION : Savoir si il faut autoriser le stop du robot via balise */ /****************************************************************************************/ unsigned char needToStop(void) { return isStopEnable; } /****************************************************************************************/ /* FUNCTION NAME: doBeforeEndAction */ /* DESCRIPTION : Terminer les actions du robot 1s avant la fin du match */ /****************************************************************************************/ void doBeforeEndAction(void) { } #endif