From 06a73b0f02ddd8b8073cc98bd6aea403ba7439b6 Mon Sep 17 00:00:00 2001 From: spdis Date: Mon, 15 Jun 2026 11:18:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4dest=5Ffps=E6=89=8B=E5=8A=A8s?= =?UTF-8?q?leep+=E6=B8=85=E7=90=86CameraInit=E5=8F=82=E6=95=B0+=E4=BF=AE?= =?UTF-8?q?=E5=A4=8Dcone=E6=9C=AA=E7=94=A8=E5=8F=98=E9=87=8Fwarning?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/camera.h | 2 +- main/main.cpp | 30 +++++++----------------------- src/camera.cpp | 6 ++---- 3 files changed, 10 insertions(+), 28 deletions(-) diff --git a/lib/camera.h b/lib/camera.h index 378342a..e49872a 100644 --- a/lib/camera.h +++ b/lib/camera.h @@ -9,7 +9,7 @@ #include "frame_buffer.h" #include "control.h" -int CameraInit(int camera_id, double dest_fps); +int CameraInit(int camera_id); int CameraHandler(void); void cameraDeInit(void); diff --git a/main/main.cpp b/main/main.cpp index 4077769..1c4c0d6 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -1,56 +1,40 @@ #include -#include #include -#include #include #include -#include #include +#include #include "global.h" #include "camera.h" #include "control.h" std::atomic running(true); -void signalHandler(int signal) -{ - running.store(false); -} +void signalHandler(int) { running.store(false); } int main(void) { std::signal(SIGINT, signalHandler); - double dest_fps = readDoubleFromFile(destfps_file); - if (dest_fps <= 0) dest_fps = 30.0; - cfg_load_all(); double avoid_gain_val = readDoubleFromFile(cone_avoid_gain_file); int avoid_range_val = (int)readDoubleFromFile(cone_avoid_range_file); int hold_frames_val = (int)readDoubleFromFile(cone_hold_frames_file); - if (avoid_gain_val > 0) g_cfg.cone_avoid_gain = avoid_gain_val; - if (avoid_range_val > 0) g_cfg.cone_avoid_range = avoid_range_val; - if (hold_frames_val > 0) g_cfg.cone_hold_frames = hold_frames_val; + if (avoid_gain_val > 0) g_cfg.cone_avoid_gain = avoid_gain_val; + if (avoid_range_val > 0) g_cfg.cone_avoid_range = avoid_range_val; + if (hold_frames_val > 0) g_cfg.cone_hold_frames = hold_frames_val; - int frame_delay = CameraInit(0, dest_fps); - if (frame_delay < 0) { + if (CameraInit(0) < 0) { std::cerr << "CameraInit failed" << std::endl; return -1; } ControlInit(); std::cout << "All services started" << std::endl; - while (running.load()) - { - auto t_start = std::chrono::steady_clock::now(); + while (running.load()) { CameraHandler(); target_speed = g_cfg.speed; - - auto elapsed = std::chrono::steady_clock::now() - t_start; - auto remain = std::chrono::milliseconds(frame_delay) - elapsed; - if (remain > std::chrono::milliseconds(1)) - std::this_thread::sleep_for(remain); } std::cout << "Stopping..." << std::endl; diff --git a/src/camera.cpp b/src/camera.cpp index d7e6fe9..6fd6c82 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -124,7 +124,7 @@ static void play_zebra_audio() // ═══════════════════════════════════════════════════════════ // CameraInit / cameraDeInit // ═══════════════════════════════════════════════════════════ -int CameraInit(int camera_id, double dest_fps) +int CameraInit(int camera_id) { servo.setPeriod(3000000); servo.setDutyCycle(1500000); @@ -178,8 +178,7 @@ int CameraInit(int camera_id, double dest_fps) printf("[MODEL] Mild v12 模型已加载\n"); i2c_audio_open(); - - return (int)(1000.0 / std::min(fps, dest_fps)); + return 0; } void cameraDeInit(void) @@ -429,7 +428,6 @@ static void cone_detect_and_deform() int src_col = g_cone_confirmed ? cone_col : g_cone_hold_src_col; if (src_row <= 10) return; - double total_rows = src_row - 10; double rng = (double)g_cfg.cone_avoid_range; double half_w = line_tracking_width / 2.0; double ms = mid_line[src_row];