You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
// io_utils.h - 通用 IO 工具:时间/目录/日志清理/GBK转码/文件保存
# ifndef IO_UTILS_H
# define IO_UTILS_H
# include <string>
# include <vector>
# include <cstdint>
// 去除字符串首尾空白(空格/tab/回车/换行)
std : : string trim_str ( const std : : string & s ) ;
// GBK(ANSI) → UTF-8( 日志文件按UTF-8写入, 避免编辑器乱码)
std : : string gbk_to_utf8 ( const std : : string & s ) ;
// 递归创建目录(支持 "a/b/c",已存在则返回 true)
bool make_dirs ( const std : : string & path ) ;
// 创建本次任务输出目录并返回完整路径: data/日期/时间_taskId
// taskId 为空时返回 data/日期/时间_ (调用方需自行创建 data 根目录)
std : : string make_task_dir ( const std : : string & task_id ) ;
// 按配置 Log_Retain_Days 清理 data/日期 下的过期日期目录(保留最近 N 天)
// 在程序启动与每日 01:00 调用
void clean_expired_log_dirs ( ) ;
// 保存 ASCII PCD 点云( 一次性构建字符串写入, 避免逐行IO)
void save_pcd_ascii ( const std : : string & filename ,
const std : : vector < double > & xs ,
const std : : vector < double > & ys ,
const std : : vector < double > & zs ) ;
// 保存灰度 JPG( 灰度转RGB后压缩为JPEG, quality=90)
bool save_jpg_gray ( const std : : string & filename , int width , int height ,
const std : : vector < uint8_t > & pixels , int quality = 90 ) ;
# endif // IO_UTILS_H