Main Program

Dependencies:   mbed AQM1602 HMC6352 PID

Revision:
41:3cdcdec9c885
Parent:
40:f68474b1d5e7
Child:
42:02aaa806d929
--- a/main_processing/strategy/strategy.cpp	Thu Feb 04 07:12:34 2016 +0000
+++ b/main_processing/strategy/strategy.cpp	Thu Feb 04 11:43:53 2016 +0000
@@ -68,10 +68,11 @@
 }
 uint8_t LineSign[3];
 uint8_t LineFirst[2];
-void LineClear_A(void){LineSign[A_SPOT] = 0;}
-void LineClear_B(void){LineSign[B_SPOT] = 0;}
-void LineClear_C(void){LineSign[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;
     if(LineSign[B_SPOT]==0){
         LineFirst[X_AXIS] = A_SPOT;
@@ -81,9 +82,13 @@
             LineFirst[Y_AXIS] = AB_SPOT;
         }
     }
+    //
+    if((Line[A_SPOT].read()==1)||(1)) data.lnFlag[A_SPOT]=1;
+    //
     Line_timeout[A_SPOT].attach(&LineClear_A, 0.5);
 }
 void LineCall_B(void){
+    //
     LineSign[B_SPOT] = 1;
     if(LineSign[A_SPOT]==0){
         LineFirst[X_AXIS] = B_SPOT;
@@ -93,13 +98,20 @@
             LineFirst[Y_AXIS] = AB_SPOT;
         }
     }
+    //
+    if((Line[B_SPOT].read()==1)||(1)) data.lnFlag[B_SPOT]=1;
+    //
     Line_timeout[B_SPOT].attach(&LineClear_B, 0.5);
 }
 void LineCall_C(void){
+    //
     LineSign[C_SPOT] = 1;
     if(!((LineSign[A_SPOT]==1)&&(LineSign[B_SPOT]==1))){
         LineFirst[Y_AXIS] = C_SPOT;
     }
+    //
+    if((Line[C_SPOT].read()==1)||(1)) data.lnFlag[C_SPOT]=1;
+    //
     Line_timeout[C_SPOT].attach(&LineClear_C, 0.5);
 }
 void modeAttack1(void){
@@ -121,6 +133,10 @@
         LineSign[B_SPOT]=0;
         LineSign[C_SPOT]=0;
         
+        data.lnFlag[A_SPOT]=0;
+        data.lnFlag[B_SPOT]=0;
+        data.lnFlag[C_SPOT]=0;
+        
         data.KickOffFlag=0;
     }
     if(data.IrFlag==1){
@@ -128,9 +144,9 @@
         data.IrFlag=0;
     }
     if(data.PidFlag==1){
-        Line_ticker.detach();
+        //Line_ticker.detach();
         PidUpdate();
-        Line_ticker.attach(&ReadLine, 0.005);
+        //Line_ticker.attach(&ReadLine, 0.005);
         data.PidFlag=0;
     }
     ir_x = ir_move_val[data.irNotice][data.irPosition][IR_X];
@@ -206,6 +222,11 @@
             vy=0;
         }
     }
+    if(RawLineSignal>0){
+        Line_timeout[A_SPOT].attach(&LineClear_A, 0.5);
+        Line_timeout[B_SPOT].attach(&LineClear_B, 0.5);
+        Line_timeout[C_SPOT].attach(&LineClear_C, 0.5);
+    }
     move(
         vx,
         vy,