![](/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
source/motrice/homemadeSequence.cpp
- Committer:
- salco
- Date:
- 2015-03-11
- Revision:
- 1:25ea21da4542
- Parent:
- source/homemadeSequence.cpp@ 0:e4151abdff23
File content as of revision 1:25ea21da4542:
/* * homemadeSequence.cpp * * Created on: Mar 03, 2015 * Author: salco */ #include "homemadeSequence.h" homemadeSequence::homemadeSequence() { m_SequenceChosen=0; m_idFrame=0; } homemadeSequence::~homemadeSequence() { } unsigned char* homemadeSequence::get_frame(/*char idSequence,char idOperation,*/char idLeg) { m_posLeg[0] = 0; m_posLeg[1] = 0; m_posLeg[2] = 0; m_posLeg[3] = 0; switch(m_SequenceChosen) { case 1:// 01 - Calibration(milieu) // if(m_idFrame == 1) {//if(idOperation == 1) { m_posLeg[0] = 150; m_posLeg[1] = 150; m_posLeg[2] = 150; m_posLeg[3] = 150; } break; case 2:// 02 - Debout // seqUpDown(true,m_idFrame,idLeg);//seqUpDown(true,idOperation,idLeg); break; case 3:// 03 - Coucher // seqUpDown(false,m_idFrame,idLeg);//seqUpDown(false,idOperation,idLeg); break; case 4:// 04 - Tourne Gauche // break; case 5:// 05 - Tourne Droite // break; case 6:// 06 - Marche // break; case 7:// 07 - Recule // break; case 8:// 07 - Repositioner // break; case 9:// 09 - Crabe Gauche // break; case 10:// 10 - Crabe Droite // break; } return m_posLeg; } void homemadeSequence::seqUpDown(bool downUP,char idOperation,char idLeg) { if((idOperation<10)&&(idOperation>0)) { switch(idLeg) { case 1: m_posLeg[0] = 140; break; case 2: m_posLeg[0] = 165; break; case 3: m_posLeg[0] = 160; break; case 6: m_posLeg[0] = 133; break; case 7: m_posLeg[0] = 170; break; default: m_posLeg[0] = 150; break; } if(idOperation == 1) { if(idLeg<5) { m_posLeg[1] = 80; m_posLeg[2] = 210; m_posLeg[3] = 160; } else { m_posLeg[1] = 220; m_posLeg[2] = 90; m_posLeg[3] = 114; } } else { if(!downUP) { if(idOperation == 9) { if(idLeg<5) { m_posLeg[1] = 80; m_posLeg[2] = 100; m_posLeg[3] = 150; } else { m_posLeg[1] = 220; m_posLeg[2] = 200; m_posLeg[3] = 150; } } idOperation = 10 - idOperation; } switch(idOperation) { /*case 1: break;*/ case 2: if(idLeg<5) { m_posLeg[1] = 80; m_posLeg[2] = 220; m_posLeg[3] = 170; } else { m_posLeg[1] = 220; m_posLeg[2] = 80; m_posLeg[3] = 130; } break; case 3: if(idLeg<5) { m_posLeg[1] = 90; m_posLeg[2] = 220; m_posLeg[3] = 160; } else { m_posLeg[1] = 200; m_posLeg[2] = 200; m_posLeg[3] = 140; } break; case 4: if(idLeg<5) { m_posLeg[1] = 106; m_posLeg[2] = 220; m_posLeg[3] = 150; } else { m_posLeg[1] = 195; m_posLeg[2] = 80; m_posLeg[3] = 150; } break; case 5: if(idLeg<5) { m_posLeg[1] = 128; m_posLeg[2] = 220; m_posLeg[3] = 128; } else { m_posLeg[1] = 172; m_posLeg[2] = 80; m_posLeg[3] = 173; } break; case 6: if(idLeg<5) { m_posLeg[1] = 144; m_posLeg[2] = 205; m_posLeg[3] = 130; } else { m_posLeg[1] = 156; m_posLeg[2] = 95; m_posLeg[3] = 170; } break; case 7: if(idLeg<5) { m_posLeg[1] = 144; m_posLeg[2] = 211; m_posLeg[3] = 123; } else { m_posLeg[1] = 156; m_posLeg[2] = 89; m_posLeg[3] = 177; } break; case 8: if(idLeg<5) { m_posLeg[1] = 172; m_posLeg[2] = 185; m_posLeg[3] = 124; } else { m_posLeg[1] = 128; m_posLeg[2] = 115; m_posLeg[3] = 176; } break; case 9: if(idLeg<5) { m_posLeg[1] = 194; m_posLeg[2] = 166; m_posLeg[3] = 118; } else { m_posLeg[1] = 106; m_posLeg[2] = 134; m_posLeg[3] = 182; } break; } } } } void homemadeSequence::seqTurn(bool leftRIGHT,char idOperation,char idLeg) {} void homemadeSequence::seqWalk(bool backFRONT,char idOperation,char idLeg) {} void homemadeSequence::seqRepositioner(char idOperation,char idLeg) {} void homemadeSequence::seqCrabe(bool leftRIGHT,char idOperation,char idLeg) {} bool homemadeSequence::next_frame(void) { bool temp=true; m_idFrame++; unsigned char* tmpTable = get_frame(m_idFrame+1); if((tmpTable[0]==0) && (tmpTable[1]==0) && (tmpTable[2]==0) && (tmpTable[3]==0)) { temp=false; m_idFrame--;//get_frame(m_idFrame); }/* else m_idFrame++;*/ return temp; } bool homemadeSequence::prev_frame(void) { bool temp=true; m_idFrame--; unsigned char* tmpTable = get_frame(1); if((tmpTable[0]==0) && (tmpTable[1]==0) && (tmpTable[2]==0) && (tmpTable[3]==0)) { temp=false; m_idFrame++;//get_frame(m_idFrame); } /*else m_idFrame--;*/ return temp; }