【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.pswp.cn/diannao/82886.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/82886.shtml
英文地址,請注明出處:http://en.pswp.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;構建了強大的基礎設施和技術中…