Programme de contrôle de l'octopode 4DOF, Theraphosa-Salconi.

Dependencies:   debug mbed

CtrlBridge

  • fonction quelquonque pour communiquer avec les module
  • fonction quelquonque pour faire des recherche dans les module dispo
  • autre fonction pour jouer avec MemRegistre

Version 1.2.0

  • Ajout d'un mode de simulation pour tester le code avec seulement un contrôleur stm32
Revision:
27:ea60d12dccdf
Parent:
23:7b296b6d8285
Child:
28:ac5c6350ed9a
--- a/directive.cpp	Mon May 11 13:48:38 2015 +0000
+++ b/directive.cpp	Thu May 14 21:40:23 2015 +0000
@@ -4,15 +4,21 @@
 Directive::Directive():TTask(0)//on veux que cette tache sois exec toute les fois que TTaskGen sexecute.
 {
     c=0;
-    ssc32 = new /*Serial*/RawSerial(PA_9, PA_10);
-    //ctrDesPattes = new Faculter_motrice(ssc32/*pc*/);
+    ssc32 = new /*Serial*//*Raw*/Serial/*(USBTX, USBRX);*/(PB_6, PB_7);//(PA_9, PA_10);
+    ctrDesPattes = new Faculter_motrice(ssc32/*pc*/);
     //m_CtrlBridge = m_CtrlBridge->getInstance();
     //a enlever de commentaire//m_ListDesModules = m_CtrlBridge->findModule(0,1,0,0);
+
+    //Serial pc(USBTX, USBRX);
+
+    //ssc32->set_flow_control(0);
+    debug("\n\r directive Init");//printf("Hello World\n");
+    m_ListDesModules = m_CtrlBridge->findModule(0,CAPTEUR,DISTANCE,0);
+    m_ListDesModules.append(m_CtrlBridge->findModule(0,CAPTEUR,PROXIMITEE,0));
     
-     // Serial pc(USBTX, USBRX);
- 
-    //ssc32->set_flow_control(0);
-    ssc32->putc('G');//printf("Hello World\n");
+    m_capteurUltrasonic= m_CtrlBridge->findModule(0,CAPTEUR,ULTRASONIQUE,0x27/*0b100111*/);
+    m_capteurIR= m_CtrlBridge->findModule(0,CAPTEUR,DISTANCE,0x27/*0b100111*/);
+    m_capteurProximiter= m_CtrlBridge->findModule(0,CAPTEUR,PROXIMITEE,0x0E/*0b001110*/);
 }
 Directive::~Directive()
 {
@@ -26,94 +32,29 @@
 {
     debug(DEBUG_DIRECTIVE_TEST,"\n\rIn task directive");
     //pas sur que c'Est tout ce qui doit etre ici mais je vois pas quoi d'autre pour le moment.
-    string flag,data,savedData;
-    DigitalOut myled(LED1);
-    DigitalIn mybutton(USER_BUTTON);
-
-    
-    //wait(1);// a enlever plus tard pour gain de vitesse//
-    ////////////////
-// Inspection //
-////////////////
-
-    savedData.clear();
-
-   /* for(int i=0; i<m_ListDesModules.length(); ++i) {
-        flag.clear();
-        data.clear();
-        debug("\n\r result: %d",m_CtrlBridge->send(m_ListDesModules.at(i),flag,data));
-        if(data[0]!= 0x00)
-            savedData.append(data);
-    }*/
-    int buttonCount;
-    for(buttonCount =0; mybutton == 0; buttonCount++){
-        debug(DEBUG_DIRECTIVE_TEST,"\n\r %02i",buttonCount+1);
-        wait(1);
-        myled = 1;
-        wait_ms(500);
-        myled = 0;
-        }
-debug(DEBUG_DIRECTIVE_TEST,"\n\rResult : %02i",buttonCount);
-
-//////////////////////////////
-// Traitement du Labyrinthe //
-//////////////////////////////
+    string flag,data;
 
-    switch(buttonCount){
-        case 2:
-            ctrDesPattes->calibre(1);
-            ctrDesPattes->calibre(2);
-            ctrDesPattes->exec();
-        break;
-        
-        case 6:
-            ctrDesPattes->stop();
-            ctrDesPattes->exec();
-            ctrDesPattes->resume();
-        break;
-        
-        case 3:
-            ctrDesPattes->moveUp();
-            ctrDesPattes->exec();
-        break;
-                
-        case 4:
-            ctrDesPattes->moveDown();
-            ctrDesPattes->exec();
-        break;  
-
-        case 5:
-            //ctrDesPattes->stop();
-            //ctrDesPattes->exec();
-            ctrDesPattes->resume();
-        break;
-        
-        case 1:
-            //ctrDesPattes->stop();
-            ctrDesPattes->exec();
-            //ctrDesPattes->resume();
-        break;
-        
-        case 7:
-            ctrDesPattes->moveLeft();
-            ctrDesPattes->exec();           
-        default:
-        break;
-        }
-        
-   /* if(savedData.size() != 0)
+    ////////////////
+    // Inspection //
+    ////////////////
+    flag.append(1,0);//0x02);
+    for(int i=0; i<m_ListDesModules.length(); ++i)
     {
-          ctrDesPattes->exec();
-    }*/
-    /*    if (c == 'g') {
-            ctrDesPattes->calibre();
-            c=0;
-        }
-        if(c == 'h') {
-            pc->printf(" ID seq: %i \n\r",ctrDesPattes->get_idSeq());
-            c=0;
-        }*/
-///////////////
+     wait_us(300);
+     flag.clear();
+     flag.append(1,7);  
+     data.clear(); 
+    debug("\n\r result: %d",m_CtrlBridge->send(m_ListDesModules.at(i),flag,data));
+    
+    debug("\n\r flag: %d",flag[0]);
+    debug("\n\r data: %x",data[0]);
+    
+    }
+    //////////////////////////////
+    // Traitement du Labyrinthe //
+    //////////////////////////////
+    
+    ///////////////
 // Mouvement //
 ///////////////
     //  ctrDesPattes.exec();
@@ -124,7 +65,5 @@
 ////////////
 // Autre? //
 ////////////
-
-debug(DEBUG_DIRECTIVE_TEST,"\n\rOut task directive");
-
+    debug(DEBUG_DIRECTIVE_TEST,"\n\rOut task directive");
 }
\ No newline at end of file