ジャパンオープン用のメインプログラム

Dependencies:   mbed AQM1602 HMC6352 PID

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;