code petit robot pour homologation

Fork of CRAC-Strat_2017_HOMOLOGATION_PETIT_ROBOT by CRAC Team

Revision:
14:c8fc06c4887f
Child:
15:c2fc239e85df
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Telemetre/Telemetre.cpp	Fri Mar 31 16:20:26 2017 +0000
@@ -0,0 +1,109 @@
+# include "Telemetre.h"
+
+#define TELEMETRE_PROFONDEUR 50
+
+T_LISTE_MODULES listeModules;
+
+/*********************************************************************************************************/
+/* FUNCTION NAME: SendTelemetreID                                                                        */
+/* DESCRIPTION  : Envoie un message sans donnée, c'est-à-dire contenant uniquement un ID, sur le bus CAN */
+/*********************************************************************************************************/
+void SendTelemetreID (unsigned short id)
+{
+    CANMessage msgTx=CANMessage();
+    msgTx.id=id;
+    msgTx.len=0;
+    can1.write(msgTx);
+    wait_us(200);
+}
+
+/*********************************************************************************************************/
+/* FUNCTION NAME: EspaceLibre                                                                            */
+/* DESCRIPTION  : Calcule si la place et libre pour poser un module                                      */
+/*********************************************************************************************************/
+bool EspaceLibre (signed short xModule, signed short  yModule, signed short xRobot, signed short yRobot){
+    return true;
+    
+}
+
+/*********************************************************************************************************/
+/* FUNCTION NAME: BonnePlace                                                                             */
+/* DESCRIPTION  : Calcule si le module est bien placé                                                    */
+/*********************************************************************************************************/
+bool BonnePlace(signed short xModule, signed short  yModule, signed short xRobot, signed short yRobot){
+    bool bienPlace = false;
+    double distance = abs(xModule - xRobot)*abs(yModule - yRobot) + abs(yModule - yRobot)*abs(yModule - yRobot);
+    
+    distance = sqrt(distance);
+    
+
+    if ((TELEMETRE_PROFONDEUR - 10 < TELEMETRE_PROFONDEUR )||( TELEMETRE_PROFONDEUR + 10 > TELEMETRE_PROFONDEUR)){
+        bienPlace = true;
+        }
+    return bienPlace;
+}
+
+void initModules(void){
+    
+    
+    /*listeModules ={true, 1350,    0},
+                    {true,    0, 1150}};*/
+    
+    listeModules.module1.x=600;
+    listeModules.module1.y=1000;
+    listeModules.module1.existe = true;
+    listeModules.module1.timeout = 0;
+    
+    listeModules.module2.x=600;
+    listeModules.module2.y=200;
+    listeModules.module2.existe = true;
+    listeModules.module2.timeout = 0;
+    
+    listeModules.module3.x=1100;
+    listeModules.module3.y=500;
+    listeModules.module3.existe = true;
+    listeModules.module3.timeout = 0;
+    
+    listeModules.module4.x=1400;
+    listeModules.module4.y=900;
+    listeModules.module4.existe = true;
+    listeModules.module4.timeout = 0;
+    
+    listeModules.module5.x=1850;
+    listeModules.module5.y=800;
+    listeModules.module5.existe = true;
+    listeModules.module5.timeout = 0;
+    
+    listeModules.fusee1.x = 1350;
+    listeModules.fusee1.y = 0;
+    listeModules.fusee1.nb_module = 4;
+    listeModules.fusee1.timeout = 0 ;
+    
+    listeModules.fusee2.x = 0;
+    listeModules.fusee2.y = 1150;
+    listeModules.fusee2.nb_module = 4;
+    listeModules.fusee2.timeout = 0;
+
+}
+
+
+void processData(int objectType, signed short x, signed short y, int nb_module){
+    switch(objectType){
+        case CYLINDRE:
+            //
+        break;
+        
+        case MODULE:
+            //
+            if( (x == listeModules.module1.x) && (y == listeModules.module1.y) ){
+                    printf("module 1");
+                    listeModules.module1.timeout ++;
+                }            
+        break;
+        
+        case BALLE:
+            //
+        break;
+        }
+    
+    }