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
--- 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);