Files
radar_data_process/requirements.md
T
waiwaylee 15215926c5 更新:1、增加日志模块,将标准输出信息写入到日志文件;
2、将RadarPara中DATA_RATE_TAS的单位由Hz改为s;
3、修复TAS_Ctrl::tas_beam_output函数中给Tracking_beam->TAS_track_index赋值错误的问题;

Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
2026-09-07 19:16:32 +08:00

1.4 KiB

雷达数据处理项目修改说明

概述

增加日志文件输出功能,具体需求如下:

  • 将标准输出std::cout重定向到日志文件,考虑使用 rdbuf() 方法,见参考1
  • 在parameters.h中添加一个日志输出开关的宏定义,开关关闭时,不重定向输出到文件
  • 日志文件输出路径为“.\rdp_logs\”,日志文件名按当前日期+时间命名
  • 增加宏定义,在输出日志时添加时间戳、代码文件、代码行数等关键信息再输出到标准输出

参考

参考1

使用 rdbuf() 方法重定向标准输出,更符合C++的流式风格,通过替换 std::cout 的底层流缓冲区(streambuf),将其指向一个文件输出流(std::ofstream)。

#include <iostream>
#include <fstream>

int main() {
    std::ofstream file("output.txt");
    if (!file.is_open()) {
        return 1;
    }

    // 保存原始的 cout 缓冲区,以便之后恢复
    auto original_buf = std::cout.rdbuf();

    // 将 cout 的缓冲区替换为 file 的缓冲区
    std::cout.rdbuf(file.rdbuf());

    // 此后的输出都会写入文件
    std::cout << "这条信息会写入文件。" << std::endl;

    // 恢复 cout 的原始缓冲区,让输出回到控制台
    std::cout.rdbuf(original_buf);
    // file 对象会在析构时自动关闭

    std::cout << "这条信息会回到控制台。" << std::endl;
    return 0;
}