dlt2log 0.1.0

A tool to convert DLT binary files to human-readable log formats
dlt2log-0.1.0 is not a library.

dlt2log

這是一個用 Rust 寫的命令行工具,用於將汽車診斷日誌 (DLT) 檔轉換為人類可讀的文本格式。

功能特點

  • 支援雙版本: 兼容 DLT v1 和 DLT v2 協議。
  • 強大的解析:
    • 自動偵測並正確解析 Storage Header。
    • 支援 DLT v2 的可變長度 ID (ECU/App/Context ID)。
    • 智慧過濾: 自動移除 DLT v2 verbose 訊息中的二進位殘留,確保輸出乾淨。
  • 高效能: 批次處理大量日誌訊息不掉幀。

使用方式

需要安裝 Rust

安裝方式 (Installation)

你可以透過以下幾種方式安裝此工具,方便在任何路徑下使用:

1. 本地安裝 (推薦)

如果你有源代碼,可以直接將其安裝到 Cargo 的 bin 目錄下(通常在 PATH 中):

cargo install --path .

安裝後,你就可以在任何地方直接執行:

dlt2log <input_file.dlt>

2. 使用執行檔 (Binary)

執行 make build 後,執行檔會位於 target/release/dlt2log。 你可以將此檔案複製到 /usr/local/bin 或其他 PATH 路徑中:

cp target/release/dlt2log /usr/local/bin/

快速開始 (Quick Start)

對於新的開發環境,你可以使用以下腳本快速設定:

./setup.sh

或者使用 Make 指令:

make build   # 編譯
make verify  # 執行全檔案驗證
make clean   # 清除 log 與編譯檔

基本轉換

cargo run -- <input_file.dlt> -o <output_file.log>

範例

轉換專案內的範例檔案:

cargo run -- dlt_v1_v2/log_166.dlt -o log_166.log

輸出格式

工具會將日誌轉換為以下格式:

[Timestamp][AppID CtxID][LogLevel] Payload

例如:

[16234747684009687][DMgr vdut][INFO] Create RootSwc singleton [root_swc.cpp:82]