![](/media/cache/profiles/4b0986230d9d7aded7f0c24033d221d4.jpg.50x50_q85.jpg)
Programme de contrôle de l'octopode 4DOF, Theraphosa-Salconi.
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
Diff: source/ComSpi.cpp
- Revision:
- 18:3f113f8441b2
- Parent:
- 17:095f670f9c14
- Child:
- 27:ea60d12dccdf
diff -r 095f670f9c14 -r 3f113f8441b2 source/ComSpi.cpp --- a/source/ComSpi.cpp Thu Apr 23 14:44:08 2015 +0000 +++ b/source/ComSpi.cpp Thu Apr 23 19:28:42 2015 +0000 @@ -285,6 +285,7 @@ // break; }*/ formatedDataSend.append(settingSlave>>6,0); + debug(DEBUG_COMPACT, "\n\r -append %02X time(s)",settingSlave>>6); } int bufferFlag = 0; @@ -300,22 +301,30 @@ counterTotale = counterTotale+(settingSlave>>6)+abs((settingMaster & 0x0F) - (settingSlave & 0x0F)); //debug( "\n\r -size : %02X",counterTotale); + if(retryLoop == 0) { + debug( "\n\r -size : %02X , %02X",formatedDataSend.size(),counterTotale); + if(formatedDataSend.size()<counterTotale) { + formatedDataSend.append(counterTotale+1-formatedDataSend.size(),0); + } + } + + switch(bufferFlag) { //plus facile pour savoir ce que tu doit tatenre a recevoire case 1://Request Init Info if(retryLoop == 0) { //formatedDataSend.append(1,1<<6); //1 byte flag //formatedDataSend.append(settingSlave & 0x0F,0); //chek pour comment avoir un address - if(formatedDataSend.size()<counterTotale) { + /*if(formatedDataSend.size()<counterTotale) { formatedDataSend.append(counterTotale+1-formatedDataSend.size(),0); - } + }*/ } //verifier si la fonction fait ce quil edt suposer - for(int i = ((2+(settingMaster>>6))+1); i < formatedDataSend.length()-1; ++i) { //on envoi le reste des data + /*for(int i = ((2+(settingMaster>>6))+1); i < formatedDataSend.length()-1; ++i) { //on envoi le reste des data formatedDataReceive.append(1,write(formatedDataSend[i])); //debug(DEBUG_SEND|DEBUG_COMPACT|DEBUG_SLIM, "\n\r -C:%i ",i); - } + }*/ //templatePtr =searchAddr(0); // 1 byte flag + 3 byte de data @@ -353,14 +362,13 @@ // } break; } + // pas sur si cest une bonne ider mais sa peut peut etre regrouper tout les flags + for(int i = ((2+(settingMaster>>6))+1); i < formatedDataSend.length()-1; ++i) { //on envoi le reste des data + formatedDataReceive.append(1,write(formatedDataSend[i])); + //debug(DEBUG_SEND|DEBUG_COMPACT|DEBUG_SLIM, "\n\r -C:%i ",i); + } //counterTotale = 2+(bufferReceive[2]>>6)+1; //counterTotale = counterTotale+(bufferSend[counterTotale]>>6)+abs((bufferReceive[2] & 0x5F) - (bufferSend[counterTotale] & 0x5F)); - if(retryLoop == 0) { - debug( "\n\r -size : %02X , %02X",formatedDataSend.size(),counterTotale); - if(formatedDataSend.size()<counterTotale) { - formatedDataSend.append(counterTotale+1-formatedDataSend.size(),0); - } - } @@ -421,6 +429,8 @@ // (templateValue==0)? result=true:result=false; } debug(DEBUG_SEND|DEBUG_COMPACT|DEBUG_SLIM, "\n\r -Send : "); + for (unsigned i=0; i<formatedDataSend.length(); i++) debug(DEBUG_SEND|DEBUG_COMPACT|DEBUG_SLIM, "%02X,",formatedDataSend.at(i)); + debug(DEBUG_SEND|DEBUG_COMPACT|DEBUG_SLIM, "\n\r -real : "); for (unsigned i=0; i<sneekpeek.length(); i++) debug(DEBUG_SEND|DEBUG_COMPACT|DEBUG_SLIM, "%02X,",sneekpeek.at(i)); debug(DEBUG_SEND|DEBUG_COMPACT|DEBUG_SLIM, "\n\r -Reveive: "); for (unsigned i=0; i<formatedDataReceive.length(); i++) debug(DEBUG_SEND|DEBUG_COMPACT|DEBUG_SLIM, "%02X,",formatedDataReceive.at(i)); @@ -428,7 +438,7 @@ /*for (unsigned i=0; i<sneekpeek.length(); i++)*/ debug(DEBUG_SEND|DEBUG_COMPACT|DEBUG_SLIM, "%04X,",CRC16_BUYPASS(formatedDataReceive.c_str(),formatedDataReceive.size()-2));//sneekpeek.at(i)); debug(DEBUG_SEND|DEBUG_COMPACT|DEBUG_SLIM, "\n\r-Sneekpe: %04X,",CRC16_BUYPASS(formatedDataSend.c_str(),formatedDataSend.size()-2));//sneekpeek.at(i)); - debug(DEBUG_SEND|DEBUG_COMPACT|DEBUG_SLIM, "\n\r-Sneekpe: %04X,",CRC16_BUYPASS(sneekpeek.c_str(),sneekpeek.size()-2));//sneekpeek.at(i)); + }//templateValue = /*templateCRC->*/calculateCRC16(formatedDataSend.c_str(),formatedDataSend.size()-1);sneekpeek ///////////////////////