How to parse DJI Mini 2 and DJI Air 2S flight records with Node.js or JavaScript
CompletedI would love to be able to parse the binary flight record files for my Mini 2 and Air 2S using Node.js and/or JavaScript, but so far, I have hit multiple dead-ends.
Has anyone had any luck with this? I've tried a few things, including:
- Exploring `node-djiparsetxt`
- Exploring `dji-log-parser`
Both of those libraries were a swing and a miss. I'm excited to see sites like Airdata that can process and parse these files, but how might I go about getting started?
Is there a developer guide or file format guide somewhere? I've been Googling like mad, as well as drilling deep into the DJI Developer site but to no avail.
If anyone can help, please please please hit me up 🤓 I've got an example repo available at https://github.com/TheRobBrennan/dji-flight-record-review for people who want to follow along on my journey.
-
Hi there! No, I did not have any luck. It seems the logs for the Mini 2 and Air 2S are encrypted and unable to be parsed.
Is there an updated library where I could parse those TXT files? I can see them on my phone, and Airdata can parse them as an example, but copying and trying to parse one of those logs without some decryption seems like it isn't doable.
Is there a JavaScript library I could use to parse these files that you're aware of?
-
Dear Customer, I could provide the latest parsing lib which is C++ based, please read carefully about our “Flight Record Parsing API License Agreement”here: https://developer.dji.com/cn/policies/flight_record/ , if you fully agree with it please reply “I represent that I have the authority to bind XXX(Company name) to this Agreement, and I fully understand and agree with the Flight Record Parsing API License Agreement”, this is the first necessary step to access to our Parsing Lib, after this, our developer could start to send you the open sourced lib and “readme & manual” of APIs which will teach you how to implement it in your server. Feel free to reach out to me for any help, thanks! Thanks DJI SDK Group -
Hi!
I'd like to have support for Python and Rust as well, how I can use the C++ parsing library?
In case it's necessary:
I represent that I have the authority to bind Martin Collado (sole proprietorship) to this Agreement, and I fully understand and agree with the Flight Record Parsing API License Agreement.
Best regards,
Martin
-
DJI Developer Support I've got the file path and API key defined (thank you!), but this damn thing doesn't want to build and run on my Apple M1 Max (2021 14" MacBook Pro).
Any idea what I'm missing?
Showing Recent Messages
Prepare build
note: Building targets in dependency order
Building targets in dependency order
Computing target dependency graph and provisioning inputs
Create build description
Build description signature: 596777d2c4162e31ce91a9039b95178c
Build description path: /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/build/XCBuildData/596777d2c4162e31ce91a9039b95178c-desc.xcbuild
Build target ZERO_CHECK of project FRSample with configuration Debug
note: Run script build phase 'Generate CMakeFiles/ZERO_CHECK' will be run during every build because the option to run the script phase "Based on dependency analysis" is unchecked. (in target 'ZERO_CHECK' from project 'FRSample')
Run script build phase 'Generate CMakeFiles/ZERO_CHECK' will be run during every build because the option to run the script phase "Based on dependency analysis" is unchecked.
PhaseScriptExecution Generate\ CMakeFiles/ZERO_CHECK /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/FRSample.build/Debug/ZERO_CHECK.build/Script-056202E0A0FBE849F28E6122.sh (in target 'ZERO_CHECK' from project 'FRSample')
cd /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/source/FRSample
/bin/sh -c /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/FRSample.build/Debug/ZERO_CHECK.build/Script-056202E0A0FBE849F28E6122.sh
make: `/Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/CMakeFiles/cmake.check_cache' is up to date.
make: `/Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/CMakeFiles/cmake.check_cache' is up to date.
Build target FRSample of project FRSample with configuration Debug
Ld /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/FRSample.build/Debug/FRSample.build/Objects-normal/x86_64/Binary/FRSample normal x86_64 (in target 'FRSample' from project 'FRSample')
cd /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/source/FRSample
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -target x86_64-apple-macos13.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk -L/Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/EagerLinkingTBDs -L/Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/Debug -F/Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/EagerLinkingTBDs -F/Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/Debug -filelist /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/FRSample.build/Debug/FRSample.build/Objects-normal/x86_64/FRSample.LinkFileList -Xlinker -object_path_lto -Xlinker /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/FRSample.build/Debug/FRSample.build/Objects-normal/x86_64/FRSample_lto.o -Wl,-search_paths_first -Wl,-headerpad_max_install_names /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/StandardizationCppBuild/Debug/libFlightRecordStandardizationCpp.a /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/StandardizationCppBuild/StandardizationBuild/Debug/libFlightRecordStandardization.a /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/StandardizationCppBuild/StandardizationBuild/EngineBuild/Debug/libFlightRecordEngine.a /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/third-party/build/libtomcrypt/mac/libtomcrypt.a /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/third-party/build/libtomcrypt/mac/libtommath.a /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/third-party/build/libcurl/lib/mac/libcurl.a /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/third-party/build/libopenssl/lib/mac/libssl.a /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/third-party/build/libopenssl/lib/mac/libcrypto.a -ldl /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/StandardizationCppBuild/standardProtobufBuild/Debug/libDJIProtobuf.a -Xlinker -no_adhoc_codesign -Xlinker -dependency_info -Xlinker /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/FRSample.build/Debug/FRSample.build/Objects-normal/x86_64/FRSample_dependency_info.dat -o /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/dji-flightrecord-kit/build/Mac/FRSample/FRSample.build/Debug/FRSample.build/Objects-normal/x86_64/Binary/FRSample
ld: in /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/third-party/build/libopenssl/lib/mac/libssl.a(bio_ssl.o), building for macOS, but linking in object file built for iOS Simulator, file '/Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/third-party/build/libopenssl/lib/mac/libssl.a' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
In /Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/third-party/build/libopenssl/lib/mac/libssl.a(bio_ssl.o), building for macOS, but linking in object file built for iOS Simulator, file '/Users/rob/repos/dji-flight-record-review/dji/FR-1.0.2-V5/flightrecord-opensource/third-party/build/libopenssl/lib/mac/libssl.a' for architecture x86_64
Build failed 11/15/22, 8:13 PM 0.6 seconds
-
Hello
I'm developing a flight plan editing application for Windows that currently uses the SRT/OSD file to process flight information. This works well, but it's missing a lot of useful into that is included in the Flight Record files such as gimbal and drone orientation.
Would it be possible to gain access to the current Flight Record Parsing API (version 14 or 15)?
"I represent that I have the authority to bind VargrSoft Software to this Agreement, and I fully understand and agree with the Flight Record Parsing API License Agreement."
Please sign in to leave a comment.
Comments
14 comments