【NextPilot日志移植】params.c解析

params.c 参数说明

params.c 文件的主要作用是定义与 SD卡日志记录 相关的参数。这些参数用于配置日志记录的行为,包括日志记录的时间、内容、存储管理以及加密设置等。

1. UTC 偏移量 (SDLOG_UTC_OFFSET)

PARAM_DEFINE_INT32(SDLOG_UTC_OFFSET, 0);
  • 用途:设置本地时间与协调世界时(UTC)的偏移量,单位为分钟。例如,韩国(UTC+09:00)的偏移量为 540 分钟(9 * 60)。
  • 取值范围:-1000 到 1000 分钟。

2. 日志记录模式 (SDLOG_MODE)

PARAM_DEFINE_INT32(SDLOG_MODE, 1);
  • 用途:决定日志记录的开始和停止时间。
  • 取值及含义
    • -1: 禁用日志记录。
    • 0: 系统武装(armed)时开始记录,解除武装(disarmed)时停止记录(默认值)。
    • 1: 从系统启动开始记录,直到解除武装。
    • 2: 从系统启动开始记录,直到系统关机。
    • 3: 根据 AUX1 RC 通道的状态决定是否记录。
    • 4: 从第一次武装开始记录,直到系统关机。
  • 注意事项:更改此参数需要重启系统。

3. 仅电池供电时记录 (SDLOG_BOOT_BAT)

PARAM_DEFINE_INT32(SDLOG_BOOT_BAT, 0);
  • 用途:启用此参数后,如果系统在启动时未检测到电池供电(例如通过 USB 供电进行测试),则不会从启动开始记录日志。这可以避免在测试台上产生不必要的飞行日志。
  • 注意事项:此参数仅适用于从启动开始记录的模式,对基于武装状态的记录模式无效。

4. 任务日志 (SDLOG_MISSION)

PARAM_DEFINE_INT32(SDLOG_MISSION, 0);
  • 用途:如果启用,会在 SD 卡上额外创建一个小的“任务”日志文件。该日志仅包含对生成飞行统计数据和地理标记等任务有用的消息。
  • 取值及含义
    • 0: 禁用任务日志。
    • 1: 记录所有任务消息。
    • 2: 仅记录地理标记所需的消息。
  • 注意事项:更改此参数需要重启系统。

5. 日志记录主题配置文件 (SDLOG_PROFILE)

PARAM_DEFINE_INT32(SDLOG_PROFILE, 1);
  • 用途:使用整数位掩码控制记录的主题集合和速率。默认设置允许进行一般的日志分析,同时保持日志文件大小合理。
  • 取值范围:0 到 2047。
  • 位掩码含义:每个位对应一组特定的主题,设置为 1 表示启用该组主题。
  • 注意事项:启用多个组会导致更高的带宽需求和更大的日志文件大小。更改此参数需要重启系统。

6. 最大日志目录数量 (SDLOG_DIRS_MAX)

PARAM_DEFINE_INT32(SDLOG_DIRS_MAX, 0);
  • 用途:设置系统保留的最大日志目录数量。如果日志目录数量超过此值,系统将在启动时删除最旧的目录。此外,如果可用空间不足 300 MB,系统也会删除旧的日志。
  • 取值范围:0 到 1000。
  • 注意事项:如果设置为 0,则仅在可用空间低于最小值时才会删除旧目录。此参数不适用于任务日志文件。更改此参数需要重启系统。

7. 日志 UUID (SDLOG_UUID)

PARAM_DEFINE_INT32(SDLOG_UUID, 1);
  • 用途:如果设置为 1,会在日志中添加一个唯一标识符,用于唯一标识车辆。

8. 日志文件加密算法 (SDLOG_ALGORITHM)

PARAM_DEFINE_INT32(SDLOG_ALGORITHM, 2);
  • 用途:选择用于日志文件加密的算法。
  • 取值及含义
    • 0: 禁用加密。
    • 2: 使用 XChaCha20 算法。
    • 3: 使用 AES 算法。

9. 日志文件加密密钥索引 (SDLOG_KEY)

PARAM_DEFINE_INT32(SDLOG_KEY, 2);
  • 用途:选择密钥库中用于加密日志的密钥索引。对于对称加密算法,密钥在日志记录开始时生成,并存储在该索引中。密钥是临时的,仅在日志记录期间有效。密钥使用 RSA2048 密钥(由 SDLOG_EXCH_KEY 定义)加密后存储在 SD 卡上。
  • 取值范围:0 到 255。

10. 日志文件加密密钥交换密钥 (SDLOG_EXCH_KEY)

PARAM_DEFINE_INT32(SDLOG_EXCH_KEY, 1);
  • 用途:如果使用对称密钥算法加密日志文件,生成的加密密钥将使用此索引指定的 RSA2048 密钥进行加密,并存储在 SD 卡上。
  • 取值范围:0 到 255。

综上所述,logger/params.c 文件通过定义这些参数,为日志记录系统提供了灵活的配置选项,以满足不同的应用场景和需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/82886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jFinal 使用 SolonMCP 开发 MCP(拥抱新潮流)

MCP 官方的 java-sdk 目前只支持 java17。直接基于 mcp-java-sdk 也比较复杂。使用 SolonMCP,可以基于 java8 开发(像 MVC 的开发风格),且比较简单。 1、SolonMCP 简介 SolonMCP(全称:solon-ai-mcp&#…

“端 - 边 - 云”三级智能协同平台的理论建构与技术实现

摘要 随着低空经济与智能制造的深度融合,传统集中式云计算架构在实时性、隐私保护和资源效率上的瓶颈日益凸显。本文提出“端 - 边 - 云”三级智能协同平台架构,以“时空 - 资源 - 服务”三维协同理论为核心,构建覆盖终端感知、边缘计算、云端…

【如何搭建开发环境】

了解java程序 JAVA体系结构 跨平台原理与编译和反编译 如何学习java语言,如何搭建环境 设置JAVA_HOME,指向jdk的安装目录这一级即可。比如我的JDK安装在C:\java\jdk1.8.0_25,那JAVA_HOME的值就是C:\java\jdk1.8.0_25设置Path变量 在Path值后…

LegoGPT,卡内基梅隆大学推出的乐高积木设计模型

LegoGPT 是由卡内基梅隆大学开发的一款创新性乐高积木设计模型,能够根据用户的文本提示生成结构稳固、可组装的乐高模型。该模型基于自回归语言模型和大规模乐高设计数据集进行训练,用户只需输入简单的文字描述,LegoGPT 就能逐步构建出物理稳…

深入理解 NumPy:Python 科学计算的基石

在数据科学、人工智能和科学计算的世界里,NumPy 是一块绕不过去的基石。它是 Python 语言中用于高性能科学计算的基础包,几乎所有的数据分析与机器学习框架(如 Pandas、TensorFlow、Scikit-learn)都离不开它的支持。 一、什么是 …

Java基础(IO)

所有操作都在内存,不能长时间保存,IO主要在硬盘,可以长时间保存。 一、File类 File类被定义为文件和目录路径名的抽象表示形式,这是因为 File 类既可以表示文件也可以表示目录,他们都通过对应的路径来描述。 提供构…

仿正点原子驱动BMP280气压传感器实例

文章目录 前言 一、寄存器头文件定义 二、设备树文件中添加节点 三、驱动文件编写 四、编写驱动测试文件并编译测试 总结 前言 本文驱动开发仿照正点原子的iic驱动实现,同时附上bmp280的数据手册,可访问下面的链接: BMP280_Bosch(博世…

论坛系统(中-1)

软件开发 编写公共代码 定义状态码 对执⾏业务处理逻辑过程中可能出现的成功与失败状态做针对性描述(根据需求分析阶段可以遇见的问题提前做出定义),⽤枚举定义状态码,先定义⼀部分,业务中遇到新的问题再添加 定义状态码如下 状态码类型描…

E+H流量计通过Profibus DP主站转Modbus TCP网关与上位机轻松通讯

EH流量计通过Profibus DP主站转Modbus TCP网关与上位机轻松通讯 在现代工业自动化的广阔舞台上,Profibus DP与Modbus TCP这两种通信协议各领风骚,它们在不同的应用场景中发挥着举足轻重的作用。但工业生产的复杂性往往要求不同设备、系统之间能够顺畅沟…

服务器中存储空间不足该怎么办?

服务器作为存储数据信息的重要网络设备,随着企业业务的不断拓展,所需要存储的数据信息也在不断增加,最终会导致服务器中存储空间不足,这不仅会影响到服务器系统性能,还会造成业务无法正常执行,那么&#xf…

C++23 views::chunk_by (P2443R1) 详解

文章目录 引言C23 范围库概述范围视图(Range Views)范围算法(Range Algorithms)范围适配器(Range Adapters) std::views::chunk_by 介绍基本概念特性使用场景 示例代码简单示例自定义谓词示例 总结 引言 在…

零碳园区能源系统-多能互补体系

构建以可再生能源为核心的零碳园区能源系统,需整合光储直柔、光伏发电、微电网、氢能与储能技术,通过多能协同与智能调控实现能源生产、存储、消费全链条优化。以下是系统性实施方案: 一、系统架构设计 1. 多能互补体系 (图示&a…

elastic search学习

首先在自己电脑上安装elastic search。安装成功后,查看ES是否启动成功。 安装过程参考:ElasticSearch入门1: mac 安装 - 霜井 - 博客园 安装完成后,直接执行bin目录中的elastic search命令后,就可以启动成功! 在网页…

mysql8常用sql语句

查询结果带行号 -- 表名为 mi_user, 假设包含列 id ,address SELECT ROW_NUMBER() OVER (ORDER BY id) AS row_num, t.id, t.address FROM mi_user t ; SELECT ROW_NUMBER() OVER ( ) AS row_num, t.id, t.address FROM mi_user t ; 更新某列数…

Memcached 服务搭建和集成使用的详细步骤示例

以下是 Memcached 服务搭建和集成使用的详细步骤示例: 一、搭建 Memcached 服务 安装 Memcached Linux 系统 yum 安装:执行命令 yum install -y memcached memcached-devel。源码安装 下载源码:wget http://www.memcached.org/files/memcach…

2. 盒模型/布局模块 - 响应式产品展示页_案例:电商产品网格布局

2. 盒模型/布局模块 - 响应式产品展示页 案例&#xff1a;电商产品网格布局 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><style type"text/css">:root {--primary-color…

Go基于plugin的热更新初体验

背景 对于一个部署在生产环境的项目来说&#xff0c;我们希望当代码出现bug的时候&#xff0c;可以不用重启进程而达到动态修改代码的目的—— 这就是代码热部署&#xff01; 使用java做游戏服务器&#xff0c;最大的好处是&#xff0c;当代码出现bug&#xff0c;可以直接热…

【RabbitMQ】工作队列和发布/订阅模式的具体实现

文章目录 建立连接工作队列模式实现创建队列和交换机生产者代码消费者代码运行程序启动消费者启动生产者 发布/订阅模式实现创建队列和交换机生产者代码创建交换机声明两个队列绑定队列和交换机发送消息完整代码 消费者代码完整代码 运行程序启动生产者启动消费者 建立连接 我…

Codeforces Round 998 (Div. 3)

A. Fibonacciness 题目大意 给你四个数字abde&#xff0c;让你找到一个中间值c&#xff0c;问 a b c a b c abc &#xff0c; b c d b c d bcd &#xff0c; c d e c d e cde 最多能有几个式子成立 解题思路 显然最多就六种情况&#xff0c;暴力枚举即可 代…

火山引擎发展初始

火山引擎是字节跳动旗下的云计算服务品牌&#xff0c;其云服务业务的启动和正式商业化时间线如下&#xff1a; 1. **初期探索&#xff08;2020年之前&#xff09;** 字节跳动在早期为支持自身业务&#xff08;如抖音、今日头条等&#xff09;构建了强大的基础设施和技术中…