10 个版本 (4 个重大更改)

0.5.2 2024 年 8 月 1 日
0.5.1 2024 年 7 月 15 日
0.4.0 2024 年 6 月 18 日
0.3.2 2024 年 3 月 27 日
0.1.1 2024 年 1 月 26 日

#160机器人

Download history 137/week @ 2024-06-17 221/week @ 2024-07-15 4/week @ 2024-07-22 117/week @ 2024-07-29 2/week @ 2024-08-05

每月 344 次下载

MIT 许可证

180KB
4K SLoC

大疆日志解析器

crates docs.rs

一个用于解析 DJI txt 日志的库和 CLI 工具,支持所有日志版本和加密。

特性

  • 解析记录并从 DJI 日志中提取嵌入式图像
  • 将不同日志版本的记录标准化,以保持一致的框架格式
  • 将框架导出为 CSV 格式,以便于分析
  • 以 GeoJSON 和 KML 格式生成飞行轨迹
  • 支持所有日志版本,包括加密日志(版本 13+)

版本 13 及以后的加密

从版本 13 开始,日志记录是 AES 加密的,需要特定的密钥链进行解密。此密钥链必须通过 DJI 的 API 获取。访问 DJI API 需要apiKey。

从 DJI API 获取密钥链后,可以将其与原始日志一起存储,以便进行进一步的离线使用。

获取 apiKey

要获取 apiKey,请按照以下步骤操作

  1. 访问 DJI 开发者技术 并登录。
  2. 点击 创建 应用,选择作为应用类型 开放 API,并提供必要的详细信息,如 应用名称类别描述
  3. 创建应用后,通过发送到您电子邮件的链接激活它。
  4. 在您的开发者用户页面上,找到您的应用详细信息以获取 apiKey(标记为 SDK 密钥)。

Cli 使用方法

安装

从最新版本下载二进制文件

基本用法

dji-log --api-key __DJI_API_KEY__ DJIFlightRecord.txt > frames.json

或带有输出参数

dji-log --api-key __DJI_API_KEY__ --output frames.json DJIFlightRecord.txt

其他选项

  • --raw:导出原始记录而不是标准化帧
  • --images image%d.jpeg:提取嵌入的图像
  • --thumbnails thumbnail%d.jpeg:提取缩略图
  • --csv:生成帧的CSV文件
  • --kml track.kml:生成飞行轨迹的KML文件
  • --geojson track.json:生成飞行轨迹的GeoJSON文件

在图像或缩略图选项中使用 %d 来指定一个序列。

要获取完整的选项列表,请运行

dji-log --help

库使用

初始化

从字节切片初始化一个 DJILog 实例以访问版本信息和元数据

let parser = DJILog::from_bytes(bytes).unwrap();

访问一般数据

一般数据未加密,可以从解析器访问所有日志版本的数据

// Print the log version
println!("Version: {:?}", parser.version);

// Print the log details section
println!("Details: {}", parser.details);

检索密钥链

对于13版及以后的日志,必须从DJI API检索密钥链以解码记录

// Replace `__DJI_API_KEY__` with your actual apiKey
let keychains = parser.fetch_keychains("__DJI_API_KEY__").unwrap();

密钥链可以一次性检索、序列化并存储在日志文件中,以供将来离线使用。

访问帧

根据日志文件版本解密帧。

Frame 是日志数据的标准化表示,跨不同日志版本进行规范化。它为分析和处理DJI日志信息提供了一个一致且易于使用的格式。

对于版本低于13的

let frames = parser.frames(None);

对于版本13及以后的

let frames = parser.frames(Some(keychains));

访问原始记录

根据日志文件版本解密原始记录。对于版本低于13的

let records = parser.records(None);

对于版本13及以后的

let records = parser.records(Some(keychains));

有关更多信息,包括日志格式的更详细概述,请访问文档

许可证

dji-log-parser 在MIT许可证下可用。有关更多信息,请参阅LICENSE.txt文件。

依赖项

~4–7.5MB
~147K SLoC