![](/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/Motrice/homemadeSequence.cpp
- Revision:
- 27:ea60d12dccdf
- Parent:
- 26:15cb45d56c28
- Child:
- 36:474d4795aafa
diff -r 15cb45d56c28 -r ea60d12dccdf source/Motrice/homemadeSequence.cpp --- a/source/Motrice/homemadeSequence.cpp Mon May 11 13:48:38 2015 +0000 +++ b/source/Motrice/homemadeSequence.cpp Thu May 14 21:40:23 2015 +0000 @@ -5,7 +5,19 @@ * Author: salco */ #include "homemadeSequence.h" -unsigned char table_seqUp[9][2][3] = { { {80 , 210, 160}, {220, 90 , 114} }, + + +unsigned char table_seqDefaultPos[8][4] = { + {137,123,217,135}, + {165,120,222,135}, + {160,117,217,137}, + {150,111,213,142}, + {153,181, 83,166}, + {133,187, 78,161}, + {170,192, 78,156}, + {144,181, 81,165}}; +#define SIZE_SEQUP 9 +unsigned char table_seqUp[SIZE_SEQUP][2][3] = { { {80 , 210, 160}, {220, 90 , 114} }, { {80 , 220, 170}, {220, 80 , 130} }, { {90 , 220, 160}, {200, 80 , 140} }, { {106, 220, 150}, {194, 80 , 150} }, @@ -16,7 +28,7 @@ { {194, 166, 118}, {106, 134, 182} } }; -unsigned char table_seqDown[9][2][3] = { { {172, 185, 124}, {128, 115, 176} }, +unsigned char table_seqDown[SIZE_SEQUP][2][3] = { { {172, 185, 124}, {128, 115, 176} }, { {172, 185, 124}, {128, 115, 176} }, { {144, 210, 123}, {156, 89 , 177} }, { {144, 205, 130}, {156, 95 , 170} }, @@ -27,7 +39,8 @@ { {80 , 100, 150}, {220, 200, 150} } };//fin de la seq il met ses patte sur sa tete** -unsigned char table_seqCrabe[33][8][3] = {{ /* 0*/{255,255,255}, /* 4*/{125, 184, 156}, /* 8*/{132, 215, 147}, /*12*/{255,255,255}, +#define SIZE_SEQCRABE 33 +unsigned char table_seqCrabe[SIZE_SEQCRABE][8][3] = {{ /* 0*/{255,255,255}, /* 4*/{125, 184, 156}, /* 8*/{132, 215, 147}, /*12*/{255,255,255}, /*16*/{203,101,128}, /*20*/{255,255,255}, /*24*/{176, 87, 163}, /*28*/{191, 103,133} }, { /* 0*/{255,255,255}, /* 4*/{111, 185, 156}, /* 8*/{255, 255, 255}, /*12*/{255, 255,255}, @@ -127,13 +140,16 @@ /*16*/{203, 95,110}, /*20*/{255, 255, 255}, /*24*/{165, 109, 152}, /*28*/{191, 101,120} } }; - -unsigned char table_seqTurn_PAUSE_TIME[32][2] = {{ 30, 30},{ 20, 20},{ 25, 25},{ 20, 30},{ 25, 20},{ 21, 30},{ 30, 30}, - { 30, 30},{ 20, 20},{ 20, 20},{ 20, 30},{ 20, 20},{ 20, 20},{ 30, 30},{ 31, 30}, - { 20, 20},{ 30, 30},{ 20, 30},{ 30, 30},{ 20, 20},{ 20, 30},{ 30, 30},{ 30, 30} +#define SIZE_SEQTURN 31 +unsigned char table_seqTurn_PAUSE_TIME[SIZE_SEQTURN][2] = { + { 30, 30},{ 20, 20},{ 25, 25},{ 20, 30},{ 20, 20},{ 30, 30},{ 30, 30},{ 30, 30}, + { 30, 30},{ 20, 20},{ 25, 25},{ 20, 30},{ 25, 20},{ 21, 30},{ 30, 30},{ 30, 30}, + { 20, 20},{ 20, 20},{ 20, 30},{ 20, 20},{ 20, 20},{ 30, 30},{ 31, 30}, + { 20, 20},{ 30, 30},{ 20, 30},{ 30, 30},{ 20, 20},{ 20, 30},{ 30, 30},{ 0, 30} }; -unsigned char table_seqTurn[31][8][3] = {{ /* 0*/{255,255,255}, /* 4*/{255,255,255}, /* 8*/{ 92,211,171}, /*12*/{255,255,255}, +unsigned char table_seqTurn[SIZE_SEQTURN][8][3] = { + { /* 0*/{255,255,255}, /* 4*/{255,255,255}, /* 8*/{ 92,211,171}, /*12*/{255,255,255}, /*16*/{255,255,255}, /*20*/{213, 85,118}, /*24*/{255,255,255}, /*28*/{255,255,255} }, { /* 0*/{255,255,255}, /* 4*/{255,255,255}, /* 8*/{ 89,193,186}, /*12*/{255,255,255}, @@ -172,10 +188,10 @@ { /* 0*/{ 93,187,203}, /* 4*/{255,255,255}, /* 8*/{255,255,255}, /*12*/{255,255,255}, /*16*/{255,255,255}, /*20*/{255,255,255}, /*24*/{255,255,255}, /*28*/{203,103,115} }, - { /* 0*/{123,220,139}, /* 4*/{255,255,255}, /* 8*/{255,255,255}, /*12*/{255,255,255}, + { /* 0*/{123,220,139}, /* 4*/{255,255,255}, /* 8*/{255,255,255}, /*12*/{255,255,255}, /*16*/{255,255,255}, /*20*/{255,255,255}, /*24*/{255,255,255}, /*28*/{178, 78,169} }, - { /* 0*/{123,217,215}, /* 4*/{255,255,255}, /* 8*/{255,255,255}, /*12*/{255,255,255}, + { /* 0*/{123,217,135}, /* 4*/{255,255,255}, /* 8*/{255,255,255}, /*12*/{255,255,255}, /*16*/{255,255,255}, /*20*/{255,255,255}, /*24*/{255,255,255}, /*28*/{181, 81,167} }, { /* 0*/{255,255,255}, /* 4*/{255,255,255}, /* 8*/{255,255,255}, /*12*/{ 99,211,176}, @@ -227,8 +243,10 @@ /*16*/{255,255,255}, /*20*/{255,255,255}, /*24*/{255,255,255}, /*28*/{255,255,255} } }; -unsigned char table_seqRepositionne_PAUSE_TIME[6][2] = {{ 11, 10},{ 16, 15},{ 15, 15},{ 21, 20},{ 21, 20},{ 51, 50}}; -unsigned char table_seqRepositionne[6][8][3] = { + +#define SIZE_SEQREPOSITIONNE 6 +unsigned char table_seqRepositionne_PAUSE_TIME[SIZE_SEQREPOSITIONNE][2] = {{ 11, 10},{ 16, 15},{ 15, 15},{ 21, 20},{ 21, 20},{ 51, 50}}; +unsigned char table_seqRepositionne[SIZE_SEQREPOSITIONNE][8][3] = { { /* 0*/{103,206,176}, /* 4*/{102,213,176}, /* 8*/{ 92,211,171}, /*12*/{ 99,211,176}, /*16*/{210, 86,121}, /*20*/{213, 85,118}, /*24*/{217, 83,118}, /*28*/{200, 86,124} }, @@ -248,15 +266,16 @@ /*16*/{181, 83,166}, /*20*/{187, 78,161}, /*24*/{194, 78,161}, /*28*/{181, 81,167} } }; -unsigned char table_seqFoward_PAUSE_TIME[42][2] = { +#define SIZE_SEQFOWARD 43 +unsigned char table_seqFoward_PAUSE_TIME[SIZE_SEQFOWARD][2] = { { 16, 15},{ 21, 30},{ 50,100},{ 21, 20},{ 16, 15},{ 21, 30},{ 50,100},{ 21, 20},{ 21, 20},{ 0, 45},{ 61, 50}, { 21, 20},{ 51, 50},{ 21, 20},{ 21, 20},{ 31, 30},{ 51, 50},{ 16, 15},{ 21, 30},{ 50,100},{ 21, 20}, - { 16, 15},{ 21, 30},{ 50,100},{ 21, 20},{ 51, 50},{ 21, 20},{ 41, 45}, + { 16, 15},{ 21, 30},{ 50,100},{ 21, 20},{ 51, 50},{ 0, 50},{ 21, 20},{ 41, 45}, { 11, 10},{ 16, 15},{ 15, 15},{ 21, 20},{ 21, 20},{ 51, 50}, { 15, 15},{ 21, 20},{ 21, 20},{ 51, 50}, { 15, 15},{ 21, 20},{ 21, 20},{ 51, 50} }; -unsigned char table_seqFoward[42][8][3] = { +unsigned char table_seqFoward[SIZE_SEQFOWARD][8][3] = { { /* 0*/{103,206,176}, /* 4*/{255,255,255}, /* 8*/{255,255,255}, /*12*/{255,255,255}, /*16*/{255,255,255}, /*20*/{213, 85,118}, /*24*/{255,255,255}, /*28*/{255,255,255} }, @@ -335,6 +354,9 @@ { /* 0*/{255,255,255}, /* 4*/{255,255,255}, /* 8*/{255,255,255}, /*12*/{145,158,173}, /*16*/{179, 82,167}, /*20*/{255,255,255}, /*24*/{255,255,255}, /*28*/{255,255,255} }, + { /* 0*/{255,255,255}, /* 4*/{255,255,255}, /* 8*/{255,255,255}, /*12*/{255,255,255}, + /*16*/{255,255,255}, /*20*/{255,255,255}, /*24*/{255,255,255}, /*28*/{255,255,255} + }, { /* 0*/{255,255,255}, /* 4*/{120,222,135}, /* 8*/{255,255,255}, /*12*/{111,213,142},//attention plusieur temps /*16*/{181, 83,166}, /*20*/{255,255,255}, /*24*/{182, 78,161}, /*28*/{255,255,255} }, @@ -384,13 +406,15 @@ /*16*/{255,255,255}, /*20*/{255,255,255}, /*24*/{255,255,255}, /*28*/{255,255,255} } }; -unsigned char table_seqBackward_PAUSE_TIME[33][2] = { - { 16, 15},{ 21, 30},{ 50,100},{ 21, 20},{ 16, 15},{ 21, 30},{ 50,100},{ 21, 20},{ 31, 30},{ 61, 50}, + +#define SIZE_SEQBACKWARD 35 +unsigned char table_seqBackward_PAUSE_TIME[SIZE_SEQBACKWARD][2] = { + { 16, 15},{ 21, 30},{ 50,100},{ 21, 20},{ 16, 15},{ 21, 30},{ 50,100},{ 21, 20},{ 31, 30},{ 0, 45},{ 61, 50}, { 21, 20},{ 21, 20},{ 31, 30},{ 51, 50},{ 21, 20},{ 21, 20},{ 31, 30},{ 51, 50},{ 16, 15},{ 21, 30}, - { 50,100},{ 21, 20},{ 16, 15},{ 21, 30},{ 50,100},{ 21, 20},{ 51, 45},{ 21, 20},{ 41, 45},{ 21, 20}, + { 50,100},{ 21, 20},{ 16, 15},{ 21, 30},{ 50,100},{ 21, 20},{ 51, 45},{ 0, 50},{ 21, 20},{ 41, 45},{ 21, 20}, { 21, 20},{ 31, 30},{ 31, 50} }; -unsigned char table_seqBackward[33][8][3] = { +unsigned char table_seqBackward[SIZE_SEQBACKWARD][8][3] = { { /* 0*/{255,255,255}, /* 4*/{255,255,255}, /* 8*/{ 92,211,171}, /*12*/{255,255,255}, /*16*/{255,255,255}, /*20*/{255,255,255}, /*24*/{255,255,255}, /*28*/{200, 86,124} }, @@ -422,6 +446,9 @@ /*16*/{255,255,255}, /*20*/{187, 78,161}, /*24*/{255,255,255}, /*28*/{155,137,130} }, { /* 0*/{255,255,255}, /* 4*/{255,255,255}, /* 8*/{255,255,255}, /*12*/{255,255,255}, + /*16*/{255,255,255}, /*20*/{255,255,255}, /*24*/{255,255,255}, /*28*/{255,255,255} + }, + { /* 0*/{255,255,255}, /* 4*/{255,255,255}, /* 8*/{255,255,255}, /*12*/{255,255,255}, /*16*/{255,255,255}, /*20*/{255,255,255}, /*24*/{255,255,255}, /*28*/{206,108,127} }, { /* 0*/{255,255,255}, /* 4*/{255,255,255}, /* 8*/{255,255,255}, /*12*/{255,255,255}, @@ -472,6 +499,9 @@ { /* 0*/{255,255,255}, /* 4*/{125,225,133}, /* 8*/{255,255,255}, /*12*/{255,255,255}, /*16*/{255,255,255}, /*20*/{255,255,255}, /*24*/{180, 86,156}, /*28*/{255,255,255} }, + { /* 0*/{255,255,255}, /* 4*/{255,255,255}, /* 8*/{255,255,255}, /*12*/{255,255,255}, + /*16*/{255,255,255}, /*20*/{255,255,255}, /*24*/{255,255,255}, /*28*/{255,255,255} + }, { /* 0*/{255,255,255}, /* 4*/{120,222,135}, /* 8*/{255,255,255}, /*12*/{111,213,142},//attention plusieur temps /*16*/{181, 83,166}, /*20*/{255,255,255}, /*24*/{182, 78,161}, /*28*/{255,255,255} }, @@ -514,11 +544,49 @@ m_SequenceChosen=0; m_idFrame=0; m_idLegUse =0; + delaisNeed =-1; + for(int i=0; i<8; i++)timeSequence[i]=255; } homemadeSequence::~homemadeSequence() { } +int homemadeSequence::patchDelais(char idMode) +{ + int result=-1; + switch(idMode) { + /*case 1: + break; + case 2: + break; + case 3: + break;*/ + case 4: + result = (table_seqTurn_PAUSE_TIME[0][0])*10; + break; + /*case 5: + break;*/ + case 6: + result = (table_seqFoward_PAUSE_TIME[0][0])*10; + break; + case 7: + result = (table_seqBackward_PAUSE_TIME[0][0])*10; + break; + case 8: + result = (table_seqRepositionne_PAUSE_TIME[0][0])*10; + break; + /*case 9: + break; + case 10: + break; + case 11: + break;*/ + default: + result = -1; + break; + } + return result; +} unsigned char* homemadeSequence::get_frame(/*char idSequence,char idOperation,*/char idLeg) { debug(DEBUG_HOMEMADE_GETFRAME,"\n\r In Get Frame"); @@ -551,9 +619,13 @@ seqUpDown(false,m_idFrame,idLeg);//seqUpDown(false,idOperation,idLeg); break; case 4:// 04 - Tourne Gauche // + //delaisNeed = (table_seqTurn_PAUSE_TIME[m_idFrame-1][0])*10; + //debug("\n\r asd:%i",delaisNeed); seqTurn(false,m_idFrame,idLeg); break; case 5:// 05 - Tourne Droite // + //delaisNeed = (table_seqTurn_PAUSE_TIME[m_idFrame-1][0])*10; + //debug("\n\r seqt:%i",delaisNeed); seqTurn(true,m_idFrame,idLeg); break; case 6:// 06 - Marche // @@ -571,14 +643,22 @@ case 10:// 10 - Crabe Droite // seqCrabe(true,m_idFrame,idLeg); break; + case 11:// 11 - Position naturel // + defaultPosition(idLeg); + break; } + debug(DEBUG_HOMEMADE_GETFRAME,"\n\r delaisNeed: %i",delaisNeed); + debug(DEBUG_HOMEMADE_GETFRAME,"\n\r timeSequence: "); + for(int i=0; i<8; i++)debug(DEBUG_HOMEMADE_GETFRAME," [ %i ] ",timeSequence[i]); debug(DEBUG_HOMEMADE_GETFRAME,"\n\r posLeg: [0]:%i, [1]:%i, [2]:%i, [3]:%i,",m_posLeg[0],m_posLeg[1],m_posLeg[2],m_posLeg[3]); + //debug("\n\r seqturn:%i",delaisNeed); debug(DEBUG_HOMEMADE_GETFRAME,"\n\r Out Get Frame"); return m_posLeg; } void homemadeSequence::seqUpDown(bool downUP,char idOperation,char idLeg) { + delaisNeed = DELAITESTE;//(table_seqRepositionne_PAUSE_TIME[idOperation-1][0])*10; if((idOperation<10)&&(idOperation>0)) { switch(idLeg) { //moving hips case 1://#0 @@ -742,9 +822,11 @@ } void homemadeSequence::seqTurn(bool leftRIGHT,char idOperation,char idLeg) { - if(idOperation<32) { + if(idOperation<=SIZE_SEQTURN) { + m_posLeg[0]= 255; for(int i=1; i <= 3; i++) m_posLeg[i]=table_seqTurn[idOperation-1][idLeg-1][i-1]; delaisNeed = (table_seqTurn_PAUSE_TIME[idOperation-1][0])*10; + //debug("\n\r seqturn:%i",delaisNeed); timeSequence[idLeg-1] = table_seqTurn_PAUSE_TIME[idOperation-1][1]; switch(idOperation) { @@ -764,7 +846,7 @@ case 1://#0 m_posLeg[0]= (leftRIGHT)? 150:110; break; - case 7://28 + case 8://28 m_posLeg[0]= (leftRIGHT)? 164:104; break; } @@ -806,9 +888,9 @@ break; //case : //break; - default: - m_posLeg[0]= 255; - break; + //default: + //m_posLeg[0]= 255; + // break; } @@ -819,100 +901,251 @@ void homemadeSequence::seqWalk(bool backFRONT,char idOperation,char idLeg) { if(backFRONT) { - if(idOperation<41) { + if(idOperation <= SIZE_SEQFOWARD) { + m_posLeg[0]= 255; for(int i=1; i <= 3; i++) m_posLeg[i]=table_seqFoward[idOperation-1][idLeg-1][i-1]; delaisNeed = (table_seqFoward_PAUSE_TIME[idOperation-1][0])*10; timeSequence[idLeg-1] = table_seqFoward_PAUSE_TIME[idOperation-1][1]; //manque qqch ici - switch(idOperation) - { + switch(idOperation) { case 3: - if(idLeg == 1) m_posLeg[0] = 150; - else if(idLeg == 6) m_posLeg[0] = 123; - break; - + if(idLeg == 1) m_posLeg[0] = 150; + else if(idLeg == 6) m_posLeg[0] = 123; + break; + case 5: - if((idLeg ==1) || (idLeg==6)) - timeSequence[idLeg-1] = 30; - break; - + if((idLeg ==1) || (idLeg==6)) + timeSequence[idLeg-1] = 30; + break; + case 7: - if(idLeg == 3)m_posLeg[0] = 187; - else if(idLeg == 8) m_posLeg[0] = 123; - break; - + if(idLeg == 3)m_posLeg[0] = 187; + else if(idLeg == 8) m_posLeg[0] = 123; + break; + case 11: - switch(idLeg) - { - case 1: - m_posLeg[0] = 130; + switch(idLeg) { + case 1: + m_posLeg[0] = 130; + break; + case 2: + m_posLeg[0] = 140; + break; + case 3: + m_posLeg[0] = 160; + break; + case 4: + m_posLeg[0] = 117; + break; + case 5: + m_posLeg[0] = 179; + break; + case 6: + m_posLeg[0] = 134; + break; + case 7: + m_posLeg[0] = 183; + break; + case 8: + m_posLeg[0] = 144; + break; + } break; - case 2: - m_posLeg[0] = 140; - break; - case 3: - m_posLeg[0] = 160; - break; - case 4: - m_posLeg[0] = 117; + + case 16: + if(idLeg == 1) m_posLeg[0] = 137; break; - case 5: - m_posLeg[0] = 179; - break; - case 6: - m_posLeg[0] = 134; + + case 20: + if(idLeg == 2) m_posLeg[0] = 176; + else if(idLeg == 7) m_posLeg[0] = 160; break; - case 7: - m_posLeg[0] = 183; + + case 22: + if((idLeg ==2) || (idLeg==7)) + timeSequence[idLeg-1] = 30; break; - case 8: - m_posLeg[0] = 144; + + case 24: + if(idLeg == 4) m_posLeg[0] = 174; + else if(idLeg == 5) m_posLeg[0] = 133; break; - } - break; - - case 16: - if(idLeg == 1) m_posLeg[0] = 137; - break; - - case 20: - if(idLeg == 5) m_posLeg[0] = 176; - else if(idLeg == 7) m_posLeg[0] = 160; - break; - - case 22: - if((idLeg ==2) || (idLeg==7)) - timeSequence[idLeg-1] = 30; - break; - - case 24: - if(idLeg == 4) m_posLeg[0] = 177; - else if(idLeg == 5) m_posLeg[0] = 133; - break; - + + case 27: + switch(idLeg) { + case 1: + m_posLeg[0] = 110; + break; + case 2: + m_posLeg[0] = 160; + break; + case 3: + m_posLeg[0] = 140; + break; + case 4: + m_posLeg[0] = 150; + break; + case 5: + m_posLeg[0] = 153; + break; + case 6: + m_posLeg[0] = 150; + break; + case 7: + m_posLeg[0] = 173; + break; + case 8: + m_posLeg[0] = 170; + break; + } + break; + + case 34: + if(idLeg == 1) m_posLeg[0] = 130; + break; + + case 38: + if(idLeg == 5) m_posLeg[0] = 153;//165; + break; + + case 42: + if(idLeg == 2) m_posLeg[0] = 165; + break; } } else for(int i=0; i <= 3; i++) m_posLeg[i]=0; } else { - if(idOperation<33) { + if(idOperation <= SIZE_SEQBACKWARD) { + m_posLeg[0]= 255; for(int i=1; i <= 3; i++) m_posLeg[i]=table_seqBackward[idOperation-1][idLeg-1][i-1]; delaisNeed = (table_seqBackward_PAUSE_TIME[idOperation-1][0])*10; timeSequence[idLeg-1] = table_seqBackward_PAUSE_TIME[idOperation-1][1]; //manque qqch ici + switch(idOperation) { + case 3: + if(idLeg == 3) m_posLeg[0] = 140; + else if(idLeg == 8) m_posLeg[0] = 170; + break; + + case 5: + if((idLeg ==3) || (idLeg==8)) + timeSequence[idLeg-1] = 30; + break; + + case 7: + if(idLeg == 1)m_posLeg[0] = 110; + else if(idLeg == 6) m_posLeg[0] = 150; + break; + + case 11: + switch(idLeg) { + case 1: + m_posLeg[0] = 130; + break; + case 2: + m_posLeg[0] = 176; + break; + case 3: + m_posLeg[0] = 160; + break; + case 4: + m_posLeg[0] = 174; + break; + case 5: + m_posLeg[0] = 133; + break; + case 6: + m_posLeg[0] = 134; + break; + case 7: + m_posLeg[0] = 160; + break; + case 8: + m_posLeg[0] = 144; + break; + } + break; + + case 13: + if(idLeg == 8) m_posLeg[0] = 144; + break; + + case 17: + if(idLeg == 6) m_posLeg[0] = 133; + break; + + case 22: + if(idLeg == 4) m_posLeg[0] = 117; + else if(idLeg == 5) m_posLeg[0] = 179; + break; + + case 24: + if((idLeg ==4) || (idLeg==5)) + timeSequence[idLeg-1] = 45; + break; + + case 26: + if(idLeg == 2) m_posLeg[0] = 140; + else if(idLeg == 7) m_posLeg[0] = 190; + break; + + case 29: + switch(idLeg) { + case 1: + m_posLeg[0] = 150; + break; + case 2: + m_posLeg[0] = 160; + break; + case 3: + m_posLeg[0] = 187; + break; + case 4: + m_posLeg[0] = 150; + break; + case 5: + m_posLeg[0] = 153; + break; + case 6: + m_posLeg[0] = 123; + break; + case 7: + m_posLeg[0] = 173; + break; + case 8: + m_posLeg[0] = 123; + break; + } + break; + + case 33: + if(idLeg == 4) m_posLeg[0] = 150; + break; + + /*case 38: + if(idLeg == 5) m_posLeg[0] = 165; + break; + + case 42: + if(idLeg == 1) m_posLeg[0] = 165; + break;*/ + } } else for(int i=0; i <= 3; i++) m_posLeg[i]=0; } } void homemadeSequence::seqRepositioner(char idOperation,char idLeg) { - if(idOperation<6) { + if(idOperation <= SIZE_SEQREPOSITIONNE) { + m_posLeg[0]= 255; + delaisNeed = (table_seqRepositionne_PAUSE_TIME[idOperation-1][0])*10; if(m_idLegUse == idLeg) { for(int i=1; i <= 3; i++) m_posLeg[i]=table_seqRepositionne[idOperation-1][idLeg-1][i-1]; - timeSequence[idLeg-1] = table_seqTurn_PAUSE_TIME[idOperation-1][1]; + timeSequence[idLeg-1] = table_seqRepositionne_PAUSE_TIME[idOperation-1][1]; if(idOperation == 5) { switch(idLeg) { @@ -944,16 +1177,19 @@ } } else - for(int i=0; i <= 3; i++)m_posLeg[i]=255; - delaisNeed = (table_seqRepositionne_PAUSE_TIME[idOperation-1][0])*10; + for(int i=0; i < 4; i++)m_posLeg[i]=255; + } else - for(int i=0; i <= 3; i++) m_posLeg[i]=0; + for(int i=0; i < 4; i++) m_posLeg[i]=0; } void homemadeSequence::seqCrabe(bool leftRIGHT,char idOperation,char idLeg) { - if(idOperation<33) { + if(idOperation<=SIZE_SEQCRABE) { + m_posLeg[0]= 255; + delaisNeed = 300;//DELAITESTE;//(table_seqRepositionne_PAUSE_TIME[idOperation-1][0])*10; + timeSequence[idLeg-1] = 30; if(leftRIGHT) - idOperation=33-idOperation; + idOperation=SIZE_SEQCRABE-idOperation; switch(idLeg) { //moving hips case 1: @@ -985,41 +1221,55 @@ } +void homemadeSequence::defaultPosition(char idLeg) +{ + if(m_idFrame == 1) { + timeSequence[idLeg-1] = 50; + for(int i=0;i<4;i++) m_posLeg[i]=table_seqDefaultPos[idLeg-1][i]; + } + else + for(int i=0;i<4;i++) m_posLeg[i]= 0; +} bool homemadeSequence::next_frame(void) { debug(DEBUG_HOMEMADE_NEXTFRAME,"\n\r in Next Frame"); - bool temp=false; + bool result=false; debug(DEBUG_HOMEMADE_NEXTFRAME,"\n\r m_idframe == %d",m_idFrame); - + int tmpDelais=delaisNeed; //if(m_idFrame > 1){ m_idFrame++; unsigned char* tmpTable = get_frame(1); + debug(DEBUG_HOMEMADE_NEXTFRAME,"\n\r Leg1:"); + for(int i=0; i<4; i++)debug(DEBUG_HOMEMADE_NEXTFRAME,"[%i]",tmpTable[i]); + if((tmpTable[0]!=0) && (tmpTable[1]!=0) && (tmpTable[2]!=0) && (tmpTable[3]!=0)) { - temp=true; + result=true; //m_idFrame++;//get_frame(m_idFrame); - if((delaisNextSeq.read_ms() >= delaisNeed) || (delaisNeed == -1)) { + /*if((delaisNextSeq.read_ms() >= delaisNeed) || (delaisNeed == -1)) { delaisNextSeq.reset(); - delaisNeed=-1; - for(int i=0; i<8; i++)timeSequence[i]=0; - } else - m_idFrame--; + delaisNeed=-1;*/ + for(int i=0; i<8; i++)timeSequence[i]=255; + //} else + // m_idFrame--; } else m_idFrame--; //} //} + delaisNeed=tmpDelais; + debug(DEBUG_HOMEMADE_NEXTFRAME,"\n\r m_idframe == %d",m_idFrame); debug(DEBUG_HOMEMADE_NEXTFRAME,"\n\r out Next Frame"); - return temp; + return result; } bool homemadeSequence::prev_frame(void) //true == prev is ok { //false == impossible debug(DEBUG_HOMEMADE_PREVFRAME,"\n\r in Prev Frame"); - bool temp=false; + bool result=false; debug(DEBUG_HOMEMADE_PREVFRAME,"\n\r m_idframe == %d",m_idFrame); @@ -1028,14 +1278,14 @@ unsigned char* tmpTable = get_frame(1); if((tmpTable[0]!=0) && (tmpTable[1]!=0) && (tmpTable[2]!=0) && (tmpTable[3]!=0)) { - temp=true; + result=true; //m_idFrame++;//get_frame(m_idFrame); - if((delaisNextSeq.read_ms() >= delaisNeed) || (delaisNeed == -1)) { - delaisNextSeq.reset(); - delaisNeed=-1; - for(int i=0; i<8; i++)timeSequence[i]=0; - } else - m_idFrame++; + /*if((delaisNextSeq.read_ms() >= delaisNeed) || (delaisNeed == -1)) { + delaisNextSeq.reset();*/ + delaisNeed=-1; + for(int i=0; i<8; i++)timeSequence[i]=255; + //} else + // m_idFrame++; } else m_idFrame++; @@ -1044,5 +1294,5 @@ debug(DEBUG_HOMEMADE_PREVFRAME,"\n\r m_idframe == %d",m_idFrame); debug(DEBUG_HOMEMADE_PREVFRAME,"\n\r out Prev Frame"); - return temp; + return result; } \ No newline at end of file