// 全局配置:变量声明 + 配置加载接口 #ifndef CONFIG_H #define CONFIG_H #include #include #include #include // ==================== 常量(编译期固定) ==================== const uint32_t OPEN_TIMEOUT_MS = 3000; // 连接超时(ms) const uint16_t FRAME_TIMEOUT_MS = 2000; // 获取帧数据超时(ms) const bool FILTER_ENABLE = true; // 多边形过滤开关 const bool SHIFT_Y_POSITIVE = true; // Y值上移使最小Y≥0 const int SLICE_IMG_SIZE = 800; // 截面图片最大像素尺寸 const double ORIGIN_TOL_MM = 0.5; // 原点无效点判定容差(mm) // ==================== 运行时配置变量(load_config 加载) ==================== extern std::string Leida_IP; // 雷达IP extern uint16_t Leida_PORT; // 雷达数据端口 extern int Collect_Duration_S; // exe模式/默认扫描时长(秒) extern double Speed_Z; // Z轴速度(cm/s),0=时间(ms),>0=移动距离(mm) extern bool Log_Flag; // 是否写日志文件 extern double Z_RANGE_MM; // Z截面区间长度(mm) extern double Y_RANGE_MM; // Y截面区间长度(mm) extern double Lidar_Hz; // 雷达帧率(Hz) extern int Rect_Width_PX; // 截面矩形宽度(px) extern double Rect_Length_Ratio; // 矩形长倍率 extern std::string Run_Mode; // exe=直接检测一次, tcp=服务端模式 extern uint16_t Tcp_Port; // TCP监听端口 extern double Floor_Height; // 地板高度(mm): 物品高度=Floor_Height-Y extern double Count_Base_Tolerance; // 分层初始冗余(mm) extern double Count_Additional_Tolerance_Per_Level; // 每层递增冗余(mm) extern int Point_Dilate; // 画layer图每个点膨胀像素 extern std::string Z_Interpolate_Mode; // none/CopyTranslation/AngleBucketInterpolation extern int Log_Retain_Days; // 日志(任务目录)保留天数, 超出自动删除 extern int Tuo_Wei; // 拖尾滤波 0关1弱2中3强 extern int Qian_Chong; // 前冲滤波 0关1弱2中3强 extern int Yuan_Duan; // 远端高反 0关1弱2强 extern bool Jin_Duan; // 近端高反识别 extern std::vector> Filter_Polygon; // 过滤多边形(mm) extern int Filter_Poly_N; // 多边形顶点数 // 加载 JSON 格式配置文件(行首(忽略空白)以 // 开头的注释行会被剔除) // path 不存在时打印错误并退出 void load_config(const std::string& path = "./config/config"); #endif // CONFIG_H