飞行记录解析库是一款可以解析版本 13 飞行记录文件的应用程序。它将 DJI 协议数据转换为时间帧对象,用于展示和分析,运行飞行记录解析库需要申请 App Key。
-
登录 DJI 开发者平台,点击"创建应用",App Type 选择 "Open API",自行填写“App 名称”“分类”和“描述”,点击 "创建"。
-
通过个人邮箱激活 App,在开发者网平台个人点击查看对应 App 信息,其中 App Key 即为下文所需的 SDK 密钥参数。
使用 Mobile SDK 4.12 版本的应用程序
- FRSample:用于介绍如何调用接口和解析数据
- FlightRecordStandardizationCpp:用于将 C++ 结构对象转换为 Protobuf 对象,以跨平台数据传输
- FlightRecordStandardization:用10 HZ 的频率记录原始数据,呈现飞机状态的视图模型
- FlightRecordEngine:用于将加密数据解析为明文数据
- libtomcrypt/libtommath:用于解密原始文档
- curl/openssl:用于与 DJIService 进行通信以获取解密密钥
以下是文件目录的作用介绍:
- FR-V1.0.0/third-party/source:所依赖三方库的源文件的存放位置,具体的编译方法需要自行解决
- FR-V1.0.0/third-party/header:所依赖三方库的头文件的存放位置
- FR-V1.0.0/third-party/cmake:用于 CMake 编译自定义函数
- FR-V1.0.0/third-party/build:用于存放三方库的编译产物,仅支持在部分平台运行
- FR-V1.0.0/dji-flightrecord-engine/build: 用于存储 dji-flightrecordengine 库的每个平台的编译产物
- FR-V1.0.0/dji-flightrecord-engine/source:dji-flightrecordengine 库的源代码
- FR-V1.0.0/dji-flightrecord-kit/build:用于存储 dji-flightrecord-kit 库的每个平台的编译产物
- FR-V1.0.0/dji-flightrecord-kit/protoc:包含标准化数据结构的 Protobuf 文件,可用于跨平台数据传输
- FR-V1.0.0/dji-flightrecord-kit/source:dji-flightrecord-kit 库的源代码
- FR-V1.0.0/images:在 README 中引用的照片资源
下载 Docker
https://docs.docker.com/get-docker
创建 Docker 镜像
docker build --build-arg SDK_KEY=your_app_key -t pf .
运行 Docker
docker run -v 宿主机目录:容器目录 pf "容器内的飞行记录文件路径"
命令示例: docker run -v $(pwd):/tmp -it pf "/tmp/V132_DJIFlightRecord_2020-06-18_[19-01-24].txt" > json_result.json
"> json_result.json" 将运行结果重定向到指定文件中
以下是 Mac 版本的 Sample 运行创建过程
cd dji-flightrecord-kit/build/Mac/FRSample
sh generate.sh
// Which do you want to build? Please Input the number:
// 0: Executable 1: Project input:
// input 1 can create a xcode project.
- 打开 dji-flightrecord-kit/build/Mac/FRSample/FRSample.xcodeproj
- 转到 main.cc 文件并将要解析的文件路径配置到变量 file_path 中
- 配置 "startRequestParser" 接口的 SDK 密钥参数,即可解析版本为 Flight Record 13 的文件
cd dji-flightrecord-kit/build/Ubuntu/FRSample
sh generate.sh
./FRSample
- 转到 main.cc 文件并将要解析的文件路径配置到变量 file_path 中
- 配置 "startRequestParser" 接口的 SDK 密钥参数,即可解析版本为 Flight Record 13 的文件
- 运行上面的脚本
cd dji-flightrecord-kit/build/Mac/FlightRecordStandardizationCpp
sh generate.sh
./FRSample
- 运行上面的脚本
- 获取你需要的库,header 文件存储在 dji-flightrecord-kit/source/FlightRecordStandardizationCpp/parser/DJIFRProtoParser.hpp 中
cd dji-flightrecord-kit/build/Ubuntu/FlightRecordStandardizationCpp
sh generate.sh
./FRSample
- 运行上面的脚本
- 获取你需要的库,header 文件存储在 dji-flightrecord-kit/source/FlightRecordStandardizationCpp/parser/DJIFRProtoParser.hpp 中
若您在解析飞行记录文件时出现报错,可以根据返回值定位问题。下表为返回值与问题原因的对应。返回值为 0 时,表示解析成功。
错误码 | 错误描述 |
---|---|
1 | 输入参数非法 |
2 | 飞行记录文件内容非法 |
3 | 当前飞行记录文件版本不支持 |
4 | 飞行记录解析器不存在 |
5 | 飞行记录文件中部分功能不支持 |
6 | 部分消息丢失导致解析失败 |
7 | 文件操作失败 |
8 | 文件疑似被篡改,数据有问题 |
9 | 数据填充失败 |
255 | 其他所有未知错误 |
FlightRecord 由 DJI SDK 拥有和维护。
期望获得更多定制数据,请让我们知道您的数据需求和应用场景。 您可以通过以下方法获得 DJI 的支持:
DJIFlightRecord 可在 MIT 许可下使用。有关更多信息,请参见 LICENSE.txt 文件。