fix: boost改为固定26 + 删除死代码
- motor_update: boost从乘法改为固定值26 - 删除废弃的font_bitmap.h中文渲染代码(已改用PNG) - 移除无源码的lcd_test编译目标 - 设备speed=20
This commit is contained in:
@@ -7,6 +7,3 @@ target_link_libraries(lidar_test common_lib)
|
||||
|
||||
add_executable(remote_control remote_control.cpp)
|
||||
target_link_libraries(remote_control common_lib)
|
||||
|
||||
add_executable(lcd_test lcd_test.cpp)
|
||||
target_link_libraries(lcd_test common_lib ${OpenCV_LIBS})
|
||||
+1
-72
@@ -25,7 +25,6 @@
|
||||
#include "camera.h"
|
||||
#include "model_v10.hpp"
|
||||
#include "vl53l0x.h"
|
||||
#include "font_bitmap.h"
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
@@ -218,76 +217,6 @@ static void play_zebra_audio()
|
||||
}
|
||||
|
||||
|
||||
// ═══════════════════════════════════════════════════════════
|
||||
// LCD 中文文字渲染
|
||||
//
|
||||
// 使用 src/font_bitmap.h 中嵌入的 16x16 字模
|
||||
// ═══════════════════════════════════════════════════════════
|
||||
static const uint8_t* find_glyph(uint32_t codepoint)
|
||||
{
|
||||
for (int i = 0; i < FONT_GLYPH_COUNT; ++i)
|
||||
if (FONT_GLYPHS[i].unicode == codepoint) return FONT_GLYPHS[i].bitmap;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
static uint32_t utf8_decode(const char*& p)
|
||||
{
|
||||
unsigned char c = static_cast<unsigned char>(*p);
|
||||
if (c == 0) return 0;
|
||||
if ((c & 0x80) == 0) { ++p; return c; }
|
||||
if ((c & 0xE0) == 0xC0) {
|
||||
uint32_t v = c & 0x1F; ++p;
|
||||
v = (v << 6) | (static_cast<unsigned char>(*p++) & 0x3F);
|
||||
return v;
|
||||
}
|
||||
if ((c & 0xF0) == 0xE0) {
|
||||
uint32_t v = c & 0x0F; ++p;
|
||||
v = (v << 6) | (static_cast<unsigned char>(*p++) & 0x3F);
|
||||
v = (v << 6) | (static_cast<unsigned char>(*p++) & 0x3F);
|
||||
return v;
|
||||
}
|
||||
if ((c & 0xF8) == 0xF0) {
|
||||
uint32_t v = c & 0x07; ++p;
|
||||
v = (v << 6) | (static_cast<unsigned char>(*p++) & 0x3F);
|
||||
v = (v << 6) | (static_cast<unsigned char>(*p++) & 0x3F);
|
||||
v = (v << 6) | (static_cast<unsigned char>(*p++) & 0x3F);
|
||||
return v;
|
||||
}
|
||||
++p;
|
||||
return '?';
|
||||
}
|
||||
|
||||
static void lcd_draw_glyph(cv::Mat& img, int x0, int y0, const uint8_t* glyph, const cv::Scalar& color)
|
||||
{
|
||||
for (int row = 0; row < FONT_SIZE; ++row) {
|
||||
for (int col = 0; col < FONT_SIZE; ++col) {
|
||||
if (glyph[row * FONT_SIZE + col] > 128) {
|
||||
int px = x0 + col;
|
||||
int py = y0 + row;
|
||||
if (px >= 0 && px < img.cols && py >= 0 && py < img.rows)
|
||||
img.at<cv::Vec3b>(py, px) = cv::Vec3b(static_cast<uchar>(color[0]),
|
||||
static_cast<uchar>(color[1]),
|
||||
static_cast<uchar>(color[2]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void lcd_draw_chinese_text(cv::Mat& img, const char* text, int x, int y, const cv::Scalar& color)
|
||||
{
|
||||
const char* p = text;
|
||||
int cx = x;
|
||||
while (*p) {
|
||||
uint32_t cp = utf8_decode(p);
|
||||
const uint8_t* glyph = find_glyph(cp);
|
||||
if (glyph) {
|
||||
lcd_draw_glyph(img, cx, y, glyph, color);
|
||||
cx += FONT_SIZE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ═══════════════════════════════════════════════════════════
|
||||
// CameraInit — 系统初始化
|
||||
//
|
||||
@@ -1102,7 +1031,7 @@ static void motor_update(bool zebra_block, bool tl_block)
|
||||
prev_zstate = g_zstate;
|
||||
prev_tlstate = g_tl_state;
|
||||
|
||||
double spd = target_speed * boost_factor();
|
||||
double spd = (boost_factor() > 1.0) ? 26.0 : target_speed;
|
||||
|
||||
// 斑马线起步后 3.3~5s 降速走稳
|
||||
if (g_zstate == Z_COOLDOWN) {
|
||||
|
||||
Reference in New Issue
Block a user