38 lines
1.0 KiB
C
38 lines
1.0 KiB
C
#include "zf_common_headfile.h"
|
|
#include "gl_headfile.h"
|
|
|
|
enum barrier_type_e barrier_type = BARRIER_NONE;
|
|
|
|
|
|
void CheckBarrier() {
|
|
if (barrier_type == BARRIER_NONE && Lpt0_found_barrier_in && !Lpt1_found_barrier_in && is_straight1) {
|
|
barrier_type = BARRIER_LEFT_BEGIN;
|
|
}
|
|
if (barrier_type == BARRIER_NONE && !Lpt0_found_barrier_in && Lpt1_found_barrier_in && is_straight0) {
|
|
barrier_type = BARRIER_RIGHT_BEGIN;
|
|
}
|
|
}
|
|
|
|
void RunBarrier() {
|
|
if (barrier_type == BARRIER_LEFT_BEGIN) // 左环开始,寻外直道右线
|
|
{
|
|
track_type = TRACK_RIGHT;
|
|
}
|
|
else if (barrier_type == BARRIER_LEFT_BEGIN && ((Lpt0_found_barrier && is_straight1) || Lpt0_found) )
|
|
{
|
|
barrier_type = BARRIER_NONE;
|
|
track_type = TRACK_RIGHT;
|
|
}
|
|
|
|
if (barrier_type == BARRIER_RIGHT_BEGIN) // 左环开始,寻外直道右线
|
|
{
|
|
track_type = TRACK_LEFT;
|
|
}
|
|
else if (barrier_type == BARRIER_RIGHT_BEGIN && ((Lpt1_found_barrier && is_straight0) || Lpt1_found) )
|
|
{
|
|
barrier_type = BARRIER_NONE;
|
|
track_type = TRACK_LEFT;
|
|
}
|
|
|
|
}
|