CatPot 2015-2016 / Mbed 2 deprecated CatPot_2v10_T_Main

Dependencies:   mbed AQM1602 HMC6352 PID

Revision:
23:df68f1a2c226
Parent:
21:378470320524
Child:
24:34ef6379b0df
--- a/main_processing/strategy/strategy.cpp	Wed Mar 16 11:49:42 2016 +0000
+++ b/main_processing/strategy/strategy.cpp	Wed Mar 16 12:25:48 2016 +0000
@@ -128,8 +128,23 @@
                 data.lnStop[X_LINE]=0;
             }
             if((LinePingState[L_PING]==1)&&(LinePingState[R_PING]==1)){
-                *x = 0;
-                data.lnStop[X_LINE]=0;
+                
+                if(
+                    (data.lnOrder[0]==A_SPOT)&&(data.lnOrder[1]==C_SPOT)&&(data.lnOrder[2]==B_SPOT)
+                ){
+                    *x = -LineReturn[4];
+                    data.lnStop[X_LINE]=0;
+                }
+                else if(
+                    (data.lnOrder[0]==B_SPOT)&&(data.lnOrder[1]==C_SPOT)&&(data.lnOrder[2]==A_SPOT)
+                ){
+                    *x = LineReturn[4];
+                    data.lnStop[X_LINE]=0;
+                }
+                else{
+                    *x = 0;
+                    data.lnStop[X_LINE]=0;
+                }
             }
         }
         //y
@@ -190,8 +205,24 @@
                 }
             }
             if((LinePingState[B_PING]==1)&&(LinePingState[F_PING]==1)){
-                *y = 0;
-                data.lnStop[Y_LINE]=0;
+                if(
+                    (data.lnOrder[0]==C_SPOT)&&(data.lnOrder[1]==A_SPOT)&&(data.lnOrder[2]==B_SPOT)||
+                    (data.lnOrder[0]==C_SPOT)&&(data.lnOrder[1]==B_SPOT)&&(data.lnOrder[2]==A_SPOT)
+                ){
+                    *y = LineReturn[4];
+                    data.lnStop[Y_LINE]=0;
+                }
+                else if(
+                    (data.lnOrder[0]==A_SPOT)&&(data.lnOrder[1]==B_SPOT)&&(data.lnOrder[2]==C_SPOT)||
+                    (data.lnOrder[0]==B_SPOT)&&(data.lnOrder[1]==A_SPOT)&&(data.lnOrder[2]==C_SPOT)
+                ){
+                    *y = -LineReturn[4];
+                    data.lnStop[Y_LINE]=0;
+                }
+                else{
+                    *y = 0;
+                    data.lnStop[Y_LINE]=0;
+                }
             }
         }
         //none