Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed AQM1602 HMC6352 PID
Diff: main_processing/strategy/strategy.cpp
- Revision:
- 2:635947de1583
- Parent:
- 0:ea35c18c85fc
- Child:
- 5:5ff3a7d5d8c2
diff -r 3e013ae7900d -r 635947de1583 main_processing/strategy/strategy.cpp --- a/main_processing/strategy/strategy.cpp Sun Feb 28 06:38:17 2016 +0000 +++ b/main_processing/strategy/strategy.cpp Thu Mar 03 05:58:43 2016 +0000 @@ -19,9 +19,9 @@ Line_ticker.attach(&ReadLine, 0.005); sys.PidFlag=0; } - ir_x = ir_move_val[data_set.irNotice][data_set.irPosition][IR_X]; - ir_y = ir_move_val[data_set.irNotice][data_set.irPosition][IR_Y]; - if(data_set.irPosition<8){ + ir_x = ir_move_val[data.irNotice][data.irPosition][IR_X]; + ir_y = ir_move_val[data.irNotice][data.irPosition][IR_Y]; + if(data.irPosition<8){ ir_x *= (double)(sys.l_pow); ir_y *= (double)(sys.l_pow); } @@ -33,10 +33,10 @@ vx = ir_x; vy = ir_y; //Line検出方向を調べる - LineDir[A_SPOT] = (!((vx>0)&&((line_set.lnFlag[A_SPOT]==1)&&(line_set.lnFlag[B_SPOT]==0)))); - LineDir[B_SPOT] = (!((vx<0)&&((line_set.lnFlag[A_SPOT]==0)&&(line_set.lnFlag[B_SPOT]==1)))); - LineDir[C_SPOT] = (!((vy<0)&&((line_set.lnFlag[C_SPOT]==1)&&(1)))); - LineDir[AB_SPOT] = (!((vy>0)&&((line_set.lnFlag[A_SPOT]==1)&&(line_set.lnFlag[B_SPOT]==1)))); + LineDir[A_SPOT] = (!((vx>0)&&((data.lnFlag[A_SPOT]==1)&&(data.lnFlag[B_SPOT]==0)))); + LineDir[B_SPOT] = (!((vx<0)&&((data.lnFlag[A_SPOT]==0)&&(data.lnFlag[B_SPOT]==1)))); + LineDir[C_SPOT] = (!((vy<0)&&((data.lnFlag[C_SPOT]==1)&&(1)))); + LineDir[AB_SPOT] = (!((vy>0)&&((data.lnFlag[A_SPOT]==1)&&(data.lnFlag[B_SPOT]==1)))); LineStop[X_AXIS] = LineDir[A_SPOT]*LineDir[B_SPOT]; LineStop[Y_AXIS] = LineDir[C_SPOT]*LineDir[AB_SPOT]; @@ -72,9 +72,9 @@ uint8_t LineSign[3]; uint8_t LineFirst[2]; uint8_t LinePriority[2];//0を後に,1を優先 -void LineClear_A(void){LineSign[A_SPOT]=0;line_set.lnFlag[A_SPOT]=0;} -void LineClear_B(void){LineSign[B_SPOT]=0;line_set.lnFlag[B_SPOT]=0;} -void LineClear_C(void){LineSign[C_SPOT]=0;line_set.lnFlag[C_SPOT]=0;} +void LineClear_A(void){LineSign[A_SPOT]=0;data.lnFlag[A_SPOT]=0;} +void LineClear_B(void){LineSign[B_SPOT]=0;data.lnFlag[B_SPOT]=0;} +void LineClear_C(void){LineSign[C_SPOT]=0;data.lnFlag[C_SPOT]=0;} void LineCall_A(void){ // LineSign[A_SPOT] = 1; @@ -87,7 +87,7 @@ } } // - if((Line[A_SPOT].read()==1)||(1)) line_set.lnFlag[A_SPOT]=1; + if((Line[A_SPOT].read()==1)||(1)) data.lnFlag[A_SPOT]=1; // Line_timeout[A_SPOT].attach(&LineClear_A, LINE_DELAY); } @@ -103,7 +103,7 @@ } } // - if((Line[B_SPOT].read()==1)||(1)) line_set.lnFlag[B_SPOT]=1; + if((Line[B_SPOT].read()==1)||(1)) data.lnFlag[B_SPOT]=1; // Line_timeout[B_SPOT].attach(&LineClear_B, LINE_DELAY); } @@ -114,7 +114,7 @@ LineFirst[Y_AXIS] = C_SPOT; } // - if((Line[C_SPOT].read()==1)||(1)) line_set.lnFlag[C_SPOT]=1; + if((Line[C_SPOT].read()==1)||(1)) data.lnFlag[C_SPOT]=1; // Line_timeout[C_SPOT].attach(&LineClear_C, LINE_DELAY); } @@ -137,9 +137,9 @@ LineSign[B_SPOT]=0; LineSign[C_SPOT]=0; - line_set.lnFlag[A_SPOT]=0; - line_set.lnFlag[B_SPOT]=0; - line_set.lnFlag[C_SPOT]=0; + data.lnFlag[A_SPOT]=0; + data.lnFlag[B_SPOT]=0; + data.lnFlag[C_SPOT]=0; sys.KickOffFlag=0; } @@ -153,9 +153,9 @@ //Line_ticker.attach(&ReadLine, 0.005); sys.PidFlag=0; } - ir_x = ir_move_val[data_set.irNotice][data_set.irPosition][IR_X]; - ir_y = ir_move_val[data_set.irNotice][data_set.irPosition][IR_Y]; - if(data_set.irPosition<8){ + ir_x = ir_move_val[data.irNotice][data.irPosition][IR_X]; + ir_y = ir_move_val[data.irNotice][data.irPosition][IR_Y]; + if(data.irPosition<8){ ir_x *= sys.l_pow; ir_y *= sys.l_pow; } @@ -168,10 +168,10 @@ vx = ir_x; vy = ir_y; //Line検出方向を調べる - LineDir[A_SPOT] = (!((vx>0)&&((line_set.lnFlag[A_SPOT]==1)&&(line_set.lnFlag[B_SPOT]==0))&&(1))); - LineDir[B_SPOT] = (!((vx<0)&&((line_set.lnFlag[A_SPOT]==0)&&(line_set.lnFlag[B_SPOT]==1))&&(1))); - LineDir[C_SPOT] = (!((vy<0)&&((line_set.lnFlag[C_SPOT]==1)&&(1 ))&&(1))); - LineDir[AB_SPOT] = (!((vy>0)&&((line_set.lnFlag[A_SPOT]==1)&&(line_set.lnFlag[B_SPOT]==1))&&(1))); + LineDir[A_SPOT] = (!((vx>0)&&((data.lnFlag[A_SPOT]==1)&&(data.lnFlag[B_SPOT]==0))&&(1))); + LineDir[B_SPOT] = (!((vx<0)&&((data.lnFlag[A_SPOT]==0)&&(data.lnFlag[B_SPOT]==1))&&(1))); + LineDir[C_SPOT] = (!((vy<0)&&((data.lnFlag[C_SPOT]==1)&&(1 ))&&(1))); + LineDir[AB_SPOT] = (!((vy>0)&&((data.lnFlag[A_SPOT]==1)&&(data.lnFlag[B_SPOT]==1))&&(1))); LineStop[X_AXIS] = LineDir[A_SPOT]*LineDir[B_SPOT]; LineStop[Y_AXIS] = LineDir[C_SPOT]*LineDir[AB_SPOT]; @@ -179,18 +179,18 @@ //Ir //strict /* - IrRange[A_SPOT] = ((18<=data_set.irPosition)&&(data_set.irPosition<=19))||((8<=data_set.irPosition)&&(data_set.irPosition<=10)) - ||((6<=data_set.irPosition)&&(data_set.irPosition<=7))||(( 1)&&(data_set.irPosition<=1)); - IrRange[B_SPOT] = ((12<=data_set.irPosition)&&(data_set.irPosition<=16))||((2<=data_set.irPosition)&&(data_set.irPosition<=5)); - IrRange[C_SPOT] = ((15<=data_set.irPosition)&&(data_set.irPosition<=19))||((4<=data_set.irPosition)&&(data_set.irPosition<=7)); - IrRange[AB_SPOT] = ((9<=data_set.irPosition)&&(data_set.irPosition<=13))||(( 1)&&(data_set.irPosition<=3)); + IrRange[A_SPOT] = ((18<=data.irPosition)&&(data.irPosition<=19))||((8<=data.irPosition)&&(data.irPosition<=10)) + ||((6<=data.irPosition)&&(data.irPosition<=7))||(( 1)&&(data.irPosition<=1)); + IrRange[B_SPOT] = ((12<=data.irPosition)&&(data.irPosition<=16))||((2<=data.irPosition)&&(data.irPosition<=5)); + IrRange[C_SPOT] = ((15<=data.irPosition)&&(data.irPosition<=19))||((4<=data.irPosition)&&(data.irPosition<=7)); + IrRange[AB_SPOT] = ((9<=data.irPosition)&&(data.irPosition<=13))||(( 1)&&(data.irPosition<=3)); */ //sweet - IrRange[A_SPOT] = ((19<=data_set.irPosition)&&(data_set.irPosition<=19))||((8<=data_set.irPosition)&&(data_set.irPosition<=9)) - ||((6<=data_set.irPosition)&&(data_set.irPosition<=7))||(( 1)&&(data_set.irPosition<=1)); - IrRange[B_SPOT] = ((13<=data_set.irPosition)&&(data_set.irPosition<=15))||((2<=data_set.irPosition)&&(data_set.irPosition<=5)); - IrRange[C_SPOT] = ((16<=data_set.irPosition)&&(data_set.irPosition<=18))||((4<=data_set.irPosition)&&(data_set.irPosition<=7)); - IrRange[AB_SPOT] = ((10<=data_set.irPosition)&&(data_set.irPosition<=12))||(( 1)&&(data_set.irPosition<=3)); + IrRange[A_SPOT] = ((19<=data.irPosition)&&(data.irPosition<=19))||((8<=data.irPosition)&&(data.irPosition<=9)) + ||((6<=data.irPosition)&&(data.irPosition<=7))||(( 1)&&(data.irPosition<=1)); + IrRange[B_SPOT] = ((13<=data.irPosition)&&(data.irPosition<=15))||((2<=data.irPosition)&&(data.irPosition<=5)); + IrRange[C_SPOT] = ((16<=data.irPosition)&&(data.irPosition<=18))||((4<=data.irPosition)&&(data.irPosition<=7)); + IrRange[AB_SPOT] = ((10<=data.irPosition)&&(data.irPosition<=12))||(( 1)&&(data.irPosition<=3)); LinePulse[A_SPOT] = ((IrRange[A_SPOT]==1)&&(LineDir[A_SPOT]==0)); @@ -212,7 +212,7 @@ vy = vy*LineStop[Y_AXIS] + (LINE_RF)*(vx!=0)*((LineDir[C_SPOT]==0) + (-1)*(LineDir[AB_SPOT]==0)); vs = cmps_set.OutputPID; if((LineBind[A_SPOT]==1)||(LineBind[B_SPOT]==1)||(LineBind[C_SPOT]==1)||(LineBind[AB_SPOT]==1)){ - if(RawLineSignal>0){ + if(LineRaw>0){ vx=(LINE_RF*2)*((-1)*IrRange[A_SPOT] + IrRange[B_SPOT]); vy=(LINE_RF*2)*( IrRange[C_SPOT] + (-1)*IrRange[AB_SPOT]); /*vx=(LINE_RF*2)*((-1)*(LineFirst[X_AXIS] == A_SPOT) + (LineFirst[X_AXIS] == B_SPOT)); @@ -226,7 +226,7 @@ vy=0; } } - if(RawLineSignal>0){ + if(LineRaw>0){ Line_timeout[A_SPOT].attach(&LineClear_A, LINE_DELAY); Line_timeout[B_SPOT].attach(&LineClear_B, LINE_DELAY); Line_timeout[C_SPOT].attach(&LineClear_C, LINE_DELAY); @@ -263,9 +263,9 @@ LineSign[B_SPOT]=0; LineSign[C_SPOT]=0; - line_set.lnFlag[A_SPOT]=0; - line_set.lnFlag[B_SPOT]=0; - line_set.lnFlag[C_SPOT]=0; + data.lnFlag[A_SPOT]=0; + data.lnFlag[B_SPOT]=0; + data.lnFlag[C_SPOT]=0; HmcResetFlag = 0; PingFlag = 0; @@ -304,9 +304,9 @@ HmcResetFlag=0; } */ - ir_x = ir_move_val[data_set.irNotice][data_set.irPosition][IR_X]; - ir_y = ir_move_val[data_set.irNotice][data_set.irPosition][IR_Y]; - if(data_set.irPosition<8){ + ir_x = ir_move_val[data.irNotice][data.irPosition][IR_X]; + ir_y = ir_move_val[data.irNotice][data.irPosition][IR_Y]; + if(data.irPosition<8){ ir_x *= sys.l_pow; ir_y *= sys.l_pow; } @@ -319,26 +319,26 @@ vx = ir_x; vy = ir_y; - if((data_set.irPosition==10)&&(vy>0)){ + if((data.irPosition==10)&&(vy>0)){ vy += 0;//前進加速 } - if((data_set.irPosition==11)&&(vy>0)){ + if((data.irPosition==11)&&(vy>0)){ vy += 0;//前進加速 if(sys.KickFlag==1){ DriveSolenoid(); } } - if((data_set.irPosition==12)&&(vy>0)){ + if((data.irPosition==12)&&(vy>0)){ vy += 0;//前進加速 } - if((data_set.irPosition==1)&&(vy>0)){ + if((data.irPosition==1)&&(vy>0)){ vy += 0;//前進加速 } - if((data_set.irPosition==2)&&(vy>0)){ + if((data.irPosition==2)&&(vy>0)){ vy += 0;//前進加速 } - if((data_set.irPosition==17)&&(data_set.ping[L_PING]>data_set.ping[R_PING])){ + if((data.irPosition==17)&&(data.ping[L_PING]>data.ping[R_PING])){ vx *= -1.0;//背後回り込みの左右判断 } /* @@ -348,10 +348,10 @@ } */ //Lineを踏み始めた方向を調べる - /*LineDir[A_SPOT] = (vx>0)&&((line_set.lnFlag[A_SPOT]==1)&&(1 ))&&(LineFirst[X_AXIS] == A_SPOT); - LineDir[B_SPOT] = (vx<0)&&((line_set.lnFlag[B_SPOT]==1)&&(1 ))&&(LineFirst[X_AXIS] == B_SPOT); - LineDir[C_SPOT] = (vy<0)&&((line_set.lnFlag[C_SPOT]==1)&&(1 ))&&(LineFirst[Y_AXIS] == C_SPOT); - LineDir[AB_SPOT]= (vy>0)&&((line_set.lnFlag[A_SPOT]==1)&&(line_set.lnFlag[B_SPOT]==1))&&(LineFirst[Y_AXIS] == AB_SPOT);*/ + /*LineDir[A_SPOT] = (vx>0)&&((data.lnFlag[A_SPOT]==1)&&(1 ))&&(LineFirst[X_AXIS] == A_SPOT); + LineDir[B_SPOT] = (vx<0)&&((data.lnFlag[B_SPOT]==1)&&(1 ))&&(LineFirst[X_AXIS] == B_SPOT); + LineDir[C_SPOT] = (vy<0)&&((data.lnFlag[C_SPOT]==1)&&(1 ))&&(LineFirst[Y_AXIS] == C_SPOT); + LineDir[AB_SPOT]= (vy>0)&&((data.lnFlag[A_SPOT]==1)&&(data.lnFlag[B_SPOT]==1))&&(LineFirst[Y_AXIS] == AB_SPOT);*/ LineDir[A_SPOT] = (vx>0)&&((LineSign[A_SPOT]==1)&&(1 ))&&(LineFirst[X_AXIS] == A_SPOT); LineDir[B_SPOT] = (vx<0)&&((LineSign[B_SPOT]==1)&&(1 ))&&(LineFirst[X_AXIS] == B_SPOT); @@ -361,20 +361,20 @@ //Irボールの方向 //strict - IrRange[A_SPOT] = ((18<=data_set.irPosition)&&(data_set.irPosition<=19))||((8<=data_set.irPosition)&&(data_set.irPosition<=10)) - ||((6<=data_set.irPosition)&&(data_set.irPosition<=7))||(( 1)&&(data_set.irPosition<=1)); - IrRange[B_SPOT] = ((12<=data_set.irPosition)&&(data_set.irPosition<=16))||((2<=data_set.irPosition)&&(data_set.irPosition<=5)); - IrRange[C_SPOT] = ((15<=data_set.irPosition)&&(data_set.irPosition<=19))||((4<=data_set.irPosition)&&(data_set.irPosition<=7)); - IrRange[AB_SPOT] = ((9<=data_set.irPosition)&&(data_set.irPosition<=13))||(( 1)&&(data_set.irPosition<=3)); + IrRange[A_SPOT] = ((18<=data.irPosition)&&(data.irPosition<=19))||((8<=data.irPosition)&&(data.irPosition<=10)) + ||((6<=data.irPosition)&&(data.irPosition<=7))||(( 1)&&(data.irPosition<=1)); + IrRange[B_SPOT] = ((12<=data.irPosition)&&(data.irPosition<=16))||((2<=data.irPosition)&&(data.irPosition<=5)); + IrRange[C_SPOT] = ((15<=data.irPosition)&&(data.irPosition<=19))||((4<=data.irPosition)&&(data.irPosition<=7)); + IrRange[AB_SPOT] = ((9<=data.irPosition)&&(data.irPosition<=13))||(( 1)&&(data.irPosition<=3)); //sweet - /*IrRange[A_SPOT] = ((19<=data_set.irPosition)&&(data_set.irPosition<=19))||((8<=data_set.irPosition)&&(data_set.irPosition<=9)) - ||((6<=data_set.irPosition)&&(data_set.irPosition<=7))||(( 1)&&(data_set.irPosition<=1)); - IrRange[B_SPOT] = ((13<=data_set.irPosition)&&(data_set.irPosition<=15))||((2<=data_set.irPosition)&&(data_set.irPosition<=5)); - IrRange[C_SPOT] = ((16<=data_set.irPosition)&&(data_set.irPosition<=18))||((4<=data_set.irPosition)&&(data_set.irPosition<=7)); - IrRange[AB_SPOT] = ((10<=data_set.irPosition)&&(data_set.irPosition<=12))||(( 1)&&(data_set.irPosition<=3));*/ + /*IrRange[A_SPOT] = ((19<=data.irPosition)&&(data.irPosition<=19))||((8<=data.irPosition)&&(data.irPosition<=9)) + ||((6<=data.irPosition)&&(data.irPosition<=7))||(( 1)&&(data.irPosition<=1)); + IrRange[B_SPOT] = ((13<=data.irPosition)&&(data.irPosition<=15))||((2<=data.irPosition)&&(data.irPosition<=5)); + IrRange[C_SPOT] = ((16<=data.irPosition)&&(data.irPosition<=18))||((4<=data.irPosition)&&(data.irPosition<=7)); + IrRange[AB_SPOT] = ((10<=data.irPosition)&&(data.irPosition<=12))||(( 1)&&(data.irPosition<=3));*/ //none - if(data_set.irNotice==IR_NONE){ + if(data.irNotice==IR_NONE){ IrRange[A_SPOT] = 0; IrRange[B_SPOT] = 0; IrRange[C_SPOT] = 0; @@ -390,7 +390,7 @@ LineStop[Y_AXIS] = (LineBind[C_SPOT]==0)*(LineBind[AB_SPOT]==0); //白線踏んでる - if(RawLineSignal>0){ + if(LineRaw>0){ LineOn[A_SPOT] = (LineSign[A_SPOT]==1) &&(LineFirst[X_AXIS]==A_SPOT); LineOn[B_SPOT] = (LineSign[B_SPOT]==1) &&(LineFirst[X_AXIS]==B_SPOT); LineOn[C_SPOT] = (LineSign[C_SPOT]==1) &&(LineFirst[Y_AXIS]==C_SPOT); @@ -436,9 +436,9 @@ LineForce[X_AXIS] = (LINE_RF*2)*((-1)*(LineReturn[A_SPOT]==1) + ( 1)*(LineReturn[B_SPOT]==1)) + (LINE_RF*2)*(LineReturn[AB_SPOT]==1)*(LineReturn[A_SPOT]==0)*(LineReturn[B_SPOT]==0) - *(( 1)*(data_set.ping[L_PING]<40) + (-1)*(data_set.ping[R_PING]<40)) + + *(( 1)*(data.ping[L_PING]<40) + (-1)*(data.ping[R_PING]<40)) + (LINE_RF*2)*(LineReturn[C_SPOT]==1)*(LineReturn[A_SPOT]==0)*(LineReturn[B_SPOT]==0) - *(( 1)*(data_set.ping[L_PING]<40) + (-1)*(data_set.ping[R_PING]<40)); + *(( 1)*(data.ping[L_PING]<40) + (-1)*(data.ping[R_PING]<40)); LineForce[Y_AXIS] = (LINE_RF*2)*(( 1)*(LineReturn[C_SPOT]==1) + (-1)*(LineReturn[AB_SPOT]==1)); Line_timeout[A_SPOT].attach(&LineClear_A, LINE_DELAY); @@ -490,9 +490,9 @@ LineSign[B_SPOT]=0; LineSign[C_SPOT]=0; - line_set.lnFlag[A_SPOT]=0; - line_set.lnFlag[B_SPOT]=0; - line_set.lnFlag[C_SPOT]=0; + data.lnFlag[A_SPOT]=0; + data.lnFlag[B_SPOT]=0; + data.lnFlag[C_SPOT]=0; LinePriority[X_AXIS]=0; LinePriority[Y_AXIS]=0; @@ -534,9 +534,9 @@ HmcResetFlag=0; } */ - ir_x = ir_move_val[data_set.irNotice][data_set.irPosition][IR_X]; - ir_y = ir_move_val[data_set.irNotice][data_set.irPosition][IR_Y]; - if(data_set.irPosition<8){ + ir_x = ir_move_val[data.irNotice][data.irPosition][IR_X]; + ir_y = ir_move_val[data.irNotice][data.irPosition][IR_Y]; + if(data.irPosition<8){ ir_x *= sys.l_pow; ir_y *= sys.l_pow; } @@ -549,27 +549,27 @@ vx = ir_x; vy = ir_y; - if((data_set.irPosition==10)&&(vy>0)){ + if((data.irPosition==10)&&(vy>0)){ vy += 15;//前進加速 } - if((data_set.irPosition==11)&&(vy>0)){ + if((data.irPosition==11)&&(vy>0)){ vy += 15;//前進加速 if(sys.KickFlag==1){ DriveSolenoid(); } } - if((data_set.irPosition==12)&&(vy>0)){ + if((data.irPosition==12)&&(vy>0)){ vy += 15;//前進加速 } - if((data_set.irPosition==1)&&(vy>0)){ + if((data.irPosition==1)&&(vy>0)){ vy += 25;//前進加速 } - if((data_set.irPosition==2)&&(vy>0)){ + if((data.irPosition==2)&&(vy>0)){ vy += 25;//前進加速 } - if((data_set.irPosition==17)&&(data_set.ping[L_PING]>data_set.ping[R_PING])){ + if((data.irPosition==17)&&(data.ping[L_PING]>data.ping[R_PING])){ vx *= -1.0;//背後回り込みの左右判断 } /* @@ -579,10 +579,10 @@ } */ //Lineを踏み始めた方向を調べる - /*LineDir[A_SPOT] = (vx>0)&&((line_set.lnFlag[A_SPOT]==1)&&(1 ))&&(LineFirst[X_AXIS] == A_SPOT); - LineDir[B_SPOT] = (vx<0)&&((line_set.lnFlag[B_SPOT]==1)&&(1 ))&&(LineFirst[X_AXIS] == B_SPOT); - LineDir[C_SPOT] = (vy<0)&&((line_set.lnFlag[C_SPOT]==1)&&(1 ))&&(LineFirst[Y_AXIS] == C_SPOT); - LineDir[AB_SPOT]= (vy>0)&&((line_set.lnFlag[A_SPOT]==1)&&(line_set.lnFlag[B_SPOT]==1))&&(LineFirst[Y_AXIS] == AB_SPOT);*/ + /*LineDir[A_SPOT] = (vx>0)&&((data.lnFlag[A_SPOT]==1)&&(1 ))&&(LineFirst[X_AXIS] == A_SPOT); + LineDir[B_SPOT] = (vx<0)&&((data.lnFlag[B_SPOT]==1)&&(1 ))&&(LineFirst[X_AXIS] == B_SPOT); + LineDir[C_SPOT] = (vy<0)&&((data.lnFlag[C_SPOT]==1)&&(1 ))&&(LineFirst[Y_AXIS] == C_SPOT); + LineDir[AB_SPOT]= (vy>0)&&((data.lnFlag[A_SPOT]==1)&&(data.lnFlag[B_SPOT]==1))&&(LineFirst[Y_AXIS] == AB_SPOT);*/ LineDir[A_SPOT] = (vx>0)&&((LineSign[A_SPOT]==1)&&(1 ))&&(LineFirst[X_AXIS] == A_SPOT); LineDir[B_SPOT] = (vx<0)&&((LineSign[B_SPOT]==1)&&(1 ))&&(LineFirst[X_AXIS] == B_SPOT); @@ -592,20 +592,20 @@ //Irボールの方向 //strict - IrRange[A_SPOT] = ((18<=data_set.irPosition)&&(data_set.irPosition<=19))||((8<=data_set.irPosition)&&(data_set.irPosition<=10)) - ||((6<=data_set.irPosition)&&(data_set.irPosition<=7))||(( 1)&&(data_set.irPosition<=1)); - IrRange[B_SPOT] = ((12<=data_set.irPosition)&&(data_set.irPosition<=16))||((2<=data_set.irPosition)&&(data_set.irPosition<=5)); - IrRange[C_SPOT] = ((15<=data_set.irPosition)&&(data_set.irPosition<=19))||((4<=data_set.irPosition)&&(data_set.irPosition<=7)); - IrRange[AB_SPOT] = ((9<=data_set.irPosition)&&(data_set.irPosition<=13))||(( 1)&&(data_set.irPosition<=3)); + IrRange[A_SPOT] = ((18<=data.irPosition)&&(data.irPosition<=19))||((8<=data.irPosition)&&(data.irPosition<=10)) + ||((6<=data.irPosition)&&(data.irPosition<=7))||(( 1)&&(data.irPosition<=1)); + IrRange[B_SPOT] = ((12<=data.irPosition)&&(data.irPosition<=16))||((2<=data.irPosition)&&(data.irPosition<=5)); + IrRange[C_SPOT] = ((15<=data.irPosition)&&(data.irPosition<=19))||((4<=data.irPosition)&&(data.irPosition<=7)); + IrRange[AB_SPOT] = ((9<=data.irPosition)&&(data.irPosition<=13))||(( 1)&&(data.irPosition<=3)); //sweet - /*IrRange[A_SPOT] = ((19<=data_set.irPosition)&&(data_set.irPosition<=19))||((8<=data_set.irPosition)&&(data_set.irPosition<=9)) - ||((6<=data_set.irPosition)&&(data_set.irPosition<=7))||(( 1)&&(data_set.irPosition<=1)); - IrRange[B_SPOT] = ((13<=data_set.irPosition)&&(data_set.irPosition<=15))||((2<=data_set.irPosition)&&(data_set.irPosition<=5)); - IrRange[C_SPOT] = ((16<=data_set.irPosition)&&(data_set.irPosition<=18))||((4<=data_set.irPosition)&&(data_set.irPosition<=7)); - IrRange[AB_SPOT] = ((10<=data_set.irPosition)&&(data_set.irPosition<=12))||(( 1)&&(data_set.irPosition<=3));*/ + /*IrRange[A_SPOT] = ((19<=data.irPosition)&&(data.irPosition<=19))||((8<=data.irPosition)&&(data.irPosition<=9)) + ||((6<=data.irPosition)&&(data.irPosition<=7))||(( 1)&&(data.irPosition<=1)); + IrRange[B_SPOT] = ((13<=data.irPosition)&&(data.irPosition<=15))||((2<=data.irPosition)&&(data.irPosition<=5)); + IrRange[C_SPOT] = ((16<=data.irPosition)&&(data.irPosition<=18))||((4<=data.irPosition)&&(data.irPosition<=7)); + IrRange[AB_SPOT] = ((10<=data.irPosition)&&(data.irPosition<=12))||(( 1)&&(data.irPosition<=3));*/ //none - if(data_set.irNotice==IR_NONE){ + if(data.irNotice==IR_NONE){ IrRange[A_SPOT] = 0; IrRange[B_SPOT] = 0; IrRange[C_SPOT] = 0; @@ -621,7 +621,7 @@ LineStop[Y_AXIS] = 1;//(LineBind[C_SPOT]==0)*(LineBind[AB_SPOT]==0); //白線踏んでる - if(RawLineSignal>0){ + if(LineRaw>0){ LineOn[A_SPOT] = (LineSign[A_SPOT]==1) &&(LineFirst[X_AXIS]==A_SPOT); LineOn[B_SPOT] = (LineSign[B_SPOT]==1) &&(LineFirst[X_AXIS]==B_SPOT); LineOn[C_SPOT] = (LineSign[C_SPOT]==1) &&(LineFirst[Y_AXIS]==C_SPOT); @@ -679,15 +679,15 @@ LineReturn[AB_SPOT] = (LineOn[AB_SPOT]==1); LineForce[X_AXIS] = (LINE_RF*2)*(LinePriority[X_AXIS])*((-1)*(LineReturn[A_SPOT]==1) + ( 1)*(LineReturn[B_SPOT]==1)) + - (LINE_RF*2)*(LineReturn[AB_SPOT]==1)*(( 1)*(data_set.ping[L_PING]<40) + (-1)*(data_set.ping[R_PING]<40)) + - (LINE_RF*2)*(LineReturn[C_SPOT]==1)*(( 1)*(data_set.ping[L_PING]<40) + (-1)*(data_set.ping[R_PING]<40)); + (LINE_RF*2)*(LineReturn[AB_SPOT]==1)*(( 1)*(data.ping[L_PING]<40) + (-1)*(data.ping[R_PING]<40)) + + (LINE_RF*2)*(LineReturn[C_SPOT]==1)*(( 1)*(data.ping[L_PING]<40) + (-1)*(data.ping[R_PING]<40)); LineForce[Y_AXIS] = (LINE_RF*2)*(LinePriority[Y_AXIS])*(( 1)*(LineReturn[C_SPOT]==1) + (-1)*(LineReturn[AB_SPOT]==1)); /* LineForce[X_AXIS] = (LINE_RF*2)*((-1)*(LineReturn[A_SPOT]==1) + ( 1)*(LineReturn[B_SPOT]==1)) + (LINE_RF*2)*(LineReturn[AB_SPOT]==1)*(LineReturn[A_SPOT]==0)*(LineReturn[B_SPOT]==0) - *(( 1)*(data_set.ping[L_PING]<30) + (-1)*(data_set.ping[R_PING]<30)) + + *(( 1)*(data.ping[L_PING]<30) + (-1)*(data.ping[R_PING]<30)) + (LINE_RF*2)*(LineReturn[C_SPOT]==1)*(LineReturn[A_SPOT]==0)*(LineReturn[B_SPOT]==0) - *(( 1)*(data_set.ping[L_PING]<30) + (-1)*(data_set.ping[R_PING]<30)); + *(( 1)*(data.ping[L_PING]<30) + (-1)*(data.ping[R_PING]<30)); LineForce[Y_AXIS] = (LINE_RF*2)*(( 1)*(LineReturn[C_SPOT]==1) + (-1)*(LineReturn[AB_SPOT]==1)); */ Line_timeout[A_SPOT].attach(&LineClear_A, LINE_DELAY);