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
文件通過定義這些參數,為日志記錄系統提供了靈活的配置選項,以滿足不同的應用場景和需求。