ジャパンオープン用のメインプログラム
Dependencies: mbed AQM1602 HMC6352 PID
Diff: main_processing/strategy/strategy.cpp
- Revision:
- 15:17502a27a60b
- Parent:
- 14:b510adcb6065
- Child:
- 16:4fadb7a87497
--- a/main_processing/strategy/strategy.cpp Fri Mar 11 04:17:00 2016 +0000 +++ b/main_processing/strategy/strategy.cpp Fri Mar 11 05:21:26 2016 +0000 @@ -966,7 +966,7 @@ //double pow_x, pow_y; uint8_t ir_pow; int vx,vy,vs; - //static uint8_t data.kkk; + //static uint8_t data.FieldSpot; if(sys.KickOffFlag==1){ @@ -975,8 +975,7 @@ sys.LineBlind=0; sys.PingBlind=0; - data.FieldState=LINE_OUTSIDE; - data.kkk = LINE_INSIDE; + data.FieldSpot = LINE_INSIDE; LineLiberate(); sys.KickOffFlag=0; @@ -1022,12 +1021,12 @@ data.lnStop[X_LINE] = 1; data.lnStop[Y_LINE] = 1; - //data.FieldState = LINE_INSIDE; + data.FieldSpot = LINE_INSIDE; } else{ //LineJudgeReset(); if((data.lnRaw==0)&&(data.lnHold==7)){ - if(data.kkk==LINE_INSIDE){ + if(data.FieldSpot==LINE_INSIDE){ data.lnCorner[L_LINE] = (data.ping[L_PING]<OutToWall[X_PING]); data.lnCorner[R_LINE] = (data.ping[R_PING]<OutToWall[X_PING]); data.lnCorner[F_LINE] = (data.ping[F_PING]<OutToWall[Y_PING]); @@ -1038,23 +1037,32 @@ (data.lnCorner[F_LINE])|| (data.lnCorner[B_LINE]) ){ - //LineLiberate(); - data.FieldState=LINE_OUTSIDE; + data.FieldSpot = LINE_OUTSIDE; + LineLiberate(); } - data.FieldState=LINE_OUTSIDE; - data.kkk = LINE_OUTSIDE; + } + else if(data.FieldSpot==LINE_OUTSIDE){ + data.FieldSpot = LINE_INSIDE; LineLiberate(); } - else if(data.kkk==LINE_OUTSIDE){//data.FieldState==LINE_OUTSIDE - if( - (data.ping[L_PING]>=WhiteToWall[X_PING])&& - (data.ping[R_PING]>=WhiteToWall[X_PING]) - ){ - //LineLiberate(); - data.FieldState=LINE_OUTSIDE; - } - //data.FieldState=LINE_OUTSIDE; - data.kkk = LINE_INSIDE; + } + if(data.FieldSpot == LINE_OUTSIDE){ + if( + (data.ping[L_PING]>=WhiteToWall[X_PING])&& + (data.ping[R_PING]>=WhiteToWall[X_PING])&& + (data.ping[F_PING]>=WhiteToWall[Y_PING])&& + (data.ping[B_PING]>=WhiteToWall[Y_PING]) + ){ + data.FieldSpot = LINE_INSIDE; + } + } + if((data.FieldSpot == LINE_INSIDE)&&(0<data.lnHold)&&(data.lnHold<7)&&(data.lnRaw==0)){ + if( + (data.ping[L_PING]>=WhiteToWall[X_PING])&& + (data.ping[R_PING]>=WhiteToWall[X_PING])&& + (data.ping[F_PING]>=WhiteToWall[Y_PING])&& + (data.ping[B_PING]>=WhiteToWall[Y_PING]) + ){ LineLiberate(); } } @@ -1071,12 +1079,10 @@ data.lnStop[Y_LINE] = 1; } - if(data.kkk==LINE_OUTSIDE) LED = 0x9; - if(data.kkk==LINE_INSIDE) LED = 0x6; + if(data.FieldSpot==LINE_OUTSIDE) LED = 0x9; + if(data.FieldSpot==LINE_INSIDE) LED = 0x6; - //if(data.FieldState==LINE_OUTSIDE) LED = 0x9; - //if(data.FieldState==LINE_INSIDE) LED = 0x6; //else LED = 0xA; //LED = LineHold;