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:
18:3f113f8441b2
Child:
39:34d7802e8d15
diff -r 15cb45d56c28 -r ea60d12dccdf source/ComSpi.cpp
--- a/source/ComSpi.cpp	Mon May 11 13:48:38 2015 +0000
+++ b/source/ComSpi.cpp	Thu May 14 21:40:23 2015 +0000
@@ -144,7 +144,7 @@
 
     if(portID < 1) portID = 0;
     else if(portID > 16) portID = 16;
-    debug(DEBUG_SEND, "\n\r     -Change PORT. ");
+    debug(DEBUG_SEND| DEBUG_COMPACT, "\n\r     -Change PORT. %02d",portID);
     m_demuxPos = portID;
     change_demux();
 
@@ -234,7 +234,7 @@
 
 
     for(int retryLoop=0; (retryLoop<3) && (!result); retryLoop++) {
-
+        wait_us(3000);
         debug(DEBUG_SEND|DEBUG_COMPACT, "\n\r      -Tentative: %d \n\r",retryLoop);
         formatedDataReceive.clear();
         settingSlave =0;
@@ -252,12 +252,13 @@
         for(int i = 0; (i < formatedDataSend.length()) && (i<=(2+(settingMaster>>6))); ++i) {
             formatedDataReceive.append(1,write(formatedDataSend[i]));//debug(DEBUG_SEND|DEBUG_COMPACT|DEBUG_SLIM, "\n\r -A:%i ",i);
             debug(DEBUG_SEND |DEBUG_COMPACT, " %02X,",formatedDataSend.at(i));
+            wait_us(3000);
         }
 
         if(formatedDataReceive[0] == SYNC) {
             debug(DEBUG_COMPACT, "\n\r    -Receve transmission. ");
             //!!!!!!!! Problem ici write dans un mais pas lautre
-            wait_us(3000);
+            //wait_us(3000);
             if(retryLoop == 0) {
                 formatedDataSend.append(1,0);//2,0); cest une patch tempo parce que je trouve pas ou il manque la donner
             }
@@ -266,6 +267,7 @@
 
             settingSlave = formatedDataReceive[formatedDataReceive.length()-1];
             debug(DEBUG_COMPACT, "\n\r       -settingSlave %02X",settingSlave);
+            debug(DEBUG_COMPACT, "\n\r        -append %02X time(s)",settingSlave>>6);
             if(retryLoop == 0) {
                 /*switch(formatedDataReceive[formatedDataSend.length()-1] >> 6) {
                     case 1:
@@ -285,7 +287,6 @@
                         //    break;
                 }*/
                 formatedDataSend.append(settingSlave>>6,0);
-                debug(DEBUG_COMPACT, "\n\r        -append %02X time(s)",settingSlave>>6);
             }
 
             int bufferFlag = 0;
@@ -299,16 +300,23 @@
 
             counterTotale = ((2+(settingMaster>>6))+1);
             counterTotale = counterTotale+(settingSlave>>6)+abs((settingMaster & 0x0F) - (settingSlave & 0x0F));
+            debug(DEBUG_COMPACT, "\n\r    -Calcule: %02X=((2+(%02X))+1)+(%02X)+abs((%02X)-(%02X))",(((2+(settingMaster>>6))+1)+(settingSlave>>6)+abs((settingMaster & 0x0F) - (settingSlave & 0x0F))),(settingMaster>>6),(settingSlave>>6),(settingMaster & 0x0F),(settingSlave & 0x0F));
             //debug( "\n\r    -size : %02X",counterTotale);
-
+            debug( "\n\r    -size : %02X ,  %02X",formatedDataSend.size(),counterTotale);
             if(retryLoop == 0) {
-                debug( "\n\r    -size : %02X ,  %02X",formatedDataSend.size(),counterTotale);
-                if(formatedDataSend.size()<counterTotale) {
+                
+                if(formatedDataSend.size()<=counterTotale) {
                     formatedDataSend.append(counterTotale+1-formatedDataSend.size(),0);
                 }
+                else{
+                    debug(DEBUG_SEND|DEBUG_COMPACT|DEBUG_SLIM,         "\n\r     -Probleme de receive: ");
+                    for (unsigned i=0; i<formatedDataReceive.length(); i++) debug(DEBUG_SEND|DEBUG_COMPACT|DEBUG_SLIM, "%02X,",formatedDataReceive.at(i));
+                    debug(DEBUG_SEND|DEBUG_COMPACT|DEBUG_SLIM,         "\n\r     -Probleme de send: ");
+                    for (unsigned i=0; i<formatedDataSend.length(); i++) debug(DEBUG_SEND|DEBUG_COMPACT|DEBUG_SLIM, "%02X,",formatedDataSend.at(i));
+                    }
             }
 
-
+            debug( "\n\r    -size : %02X ,  %02X",formatedDataSend.size(),counterTotale);
             switch(bufferFlag) { //plus facile pour savoir ce que tu doit tatenre a recevoire
                 case 1://Request Init Info
                     if(retryLoop == 0) {