dlt2log 0.1.0

A tool to convert DLT binary files to human-readable log formats
# dlt2log

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

## 功能特點

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

## 使用方式

需要安裝 [Rust](https://www.rust-lang.org/tools/install)。

## 安裝方式 (Installation)

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

### 1. 本地安裝 (推薦)

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

```bash
cargo install --path .
```

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

```bash
dlt2log <input_file.dlt>
```

### 2. 使用執行檔 (Binary)

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

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

### 快速開始 (Quick Start)

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

```bash
./setup.sh
```

或者使用 Make 指令:

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

### 基本轉換

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

### 範例

轉換專案內的範例檔案:

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

## 輸出格式

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

```text
[Timestamp][AppID CtxID][LogLevel] Payload
```

例如:
```text
[16234747684009687][DMgr vdut][INFO] Create RootSwc singleton [root_swc.cpp:82]
```