From f5654ba67991b9d411ec3d1b6b7c3e3c86835567 Mon Sep 17 00:00:00 2001 From: Glz <354338225@qq.com> Date: Tue, 26 Mar 2024 21:39:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BC=AF=E9=81=93=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/gl_garage.c | 19 +++++++++++++++++++ app/gl_get_corners.c | 15 +++++++++++++++ app/gl_state.h | 13 ------------- 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/app/gl_garage.c b/app/gl_garage.c index 3509f82..c4e4c3e 100644 --- a/app/gl_garage.c +++ b/app/gl_garage.c @@ -19,6 +19,25 @@ float calculate_vector_angle(float x1, float y1, float x2, float y2) return angle_degrees; } +// void CheckGarage() +// { +// int change_num = 0; +// int check_garage_h = 60; +// for (int check_garage_w = 50; check_garage_w < IMAGE_W - 50; check_garage_w++) { +// if ((GET_PIX_1C(mt9v03x_image_copy[0], check_garage_h, check_garage_w) < FIX_BINTHRESHOLD && GET_PIX_1C(mt9v03x_image_copy[0], check_garage_h, check_garage_w + 1) >= FIX_BINTHRESHOLD) || +// (GET_PIX_1C(mt9v03x_image_copy[0], check_garage_h, check_garage_w) >= FIX_BINTHRESHOLD && GET_PIX_1C(mt9v03x_image_copy[0], check_garage_h, check_garage_w + 1) < FIX_BINTHRESHOLD)) { +// change_num++; +// } +// } + +// if (change_num > 14) { +// garage_type = GARAGE_FOUND; +// // printf("跳变点的数量为:%d\r\n", change_num); +// } + +// change_num = 0; +// } + void CheckGarage() { int change_num = 0; diff --git a/app/gl_get_corners.c b/app/gl_get_corners.c index 25a2441..7a0e501 100644 --- a/app/gl_get_corners.c +++ b/app/gl_get_corners.c @@ -29,6 +29,11 @@ void get_corners() { if(is_straight0){ state_type = STRAIGHT_STATE; } + if (is_straight0 == false && Lpt0_found == false) + { + is_turn0 = is_curve(angle_left ,clip(angle_left_num - 10, 0,angle_left_num),0.05); + } + Lpt0_found_barrier = Lpt1_found_barrier = false; @@ -77,6 +82,10 @@ void get_corners() { if(is_straight1){ state_type = STRAIGHT_STATE; } + if (is_straight1 == false && Lpt1_found == false) + { + is_turn1 = is_curve(angle_right ,clip(angle_right_num - 10, 0,angle_right_num),0.05); + } for (int i = 0; i < pts_resample_right_count; i++) { if (angle_new_right_barrier[i] == 0) continue; @@ -98,6 +107,12 @@ void get_corners() { Lpt1_found_barrier_in_id = Lpt1_rpts1s_id_barrier; } } + + if (is_turn0 && is_turn1) + { + state_type = TURN_STATE; + } + } diff --git a/app/gl_state.h b/app/gl_state.h index 8d1799a..9d6df12 100644 --- a/app/gl_state.h +++ b/app/gl_state.h @@ -3,21 +3,8 @@ enum state_type_e { COMMON_STATE = 0, - CROSS_STATE, - HALF_STATE, - CIRCLE_IN_STATE, - CIRCLE_BEGIN_STATE, - CIRCLE_RUNNING_STATE, - CIRCLE_OUT_STATE, TURN_STATE, STRAIGHT_STATE, - BREAK_STATE, - BAR_STATE, - RAMP_STATE, - GARAGE_OUT_STATE, - GARAGE_IN_STATE, - GARAGE_STOP_STATE, - GARAGE_PASS_STATE, }; extern enum state_type_e state_type;