DJI Winodws SDK导入及官方示例程序运行

前言

最近在学习使用DJI提供的windows sdk控制mavic
2,官方文档只有英文的且有一些小问题,所以我把我的操作过程及问题的解决方法写成这篇文章,供大家参考。
作者水平有限,有任何问题欢迎在文章下边留言交流!

DJI Windows sdk官方文档

// 官方文档地址
https://developer.dji.com/cn/document/dd692e73-3839-4a3d-8b57-e5e47f2515b3

开发环境准备

1、Windows10 64位 专业版 1803或更高版本

2、windows sdk 1803或更高版本

3、visual studio 2017/2019

本文所使用的环境如下:

系统:windows10 64位 专业版 20H2

Windows sdk:16299,17134,17763,19041

visual studio 2019

注册DJI开发者账户

// DJI开发者平台网址
https://developer.dji.com/cn/

右上角点击注册即可。
在这里插入图片描述

每个应用程序都需要一个唯一的 App Key 来初始化 SDK。

生成App Key

开发者账户注册完成以后登录进入到个人中心。点击CREATE APP
在这里插入图片描述

SDK选择Windows SDK,然后依次填写APP名称,包名,分类,描述,点击创建即可。

在这里插入图片描述

创建完成以后DJI会发送APP激活邮件到你的电子邮箱,激活完成后即可在个人中心即可看到我们创建的APP。
在这里插入图片描述

点击进去即可看到包括APP Key以及包名在内的信息。

在这里插入图片描述

下载DJI windows sdk

// DJI windows sdk下载地址
https://developer.dji.com/windows-sdk/downloads/

将DJI windows sdk集成到你的应用程序中

创建UWP项目

  • 打开vs2019
  • 点击创建新项目
  • 选择创建**空白应用(通用Windows)**模板

在这里插入图片描述

  • 设置项目名称和路径
  • 点击创建,选择Windows SDK的目标版本和最低版本,最后点击确定即可

在这里插入图片描述

将DJI Windows SDK导入你的项目

1、首先在你的项目根目录创建一个文件夹,命名为“DJIWindowsSDK”

在这里插入图片描述

2、然后将你下载的DJI windows SDK压缩包解压
在这里插入图片描述

3、进入到**”DJI_WindowsSDKBeta_0.3.2\SDK dll\x86“**目录下

(x86文件夹下是32位的sdk文件,你也可以选择”DJI_WindowsSDKBeta_0.3.2\SDK dll\x64“文件夹下的64位sdk文件。但是我比较推荐你使用32位的sdk文件,因为它的兼容性通常会更好一些。)

在这里插入图片描述

4、我们将这4个文件复制到我们上边创建的“DJIWindowsSDK”文件夹下。

在这里插入图片描述

5、将DJIWindowsSDK的引用添加到我们的项目中。

  • 打开你的项目,在右侧栏中右击你的项目,选择添加->引用

在这里插入图片描述

  • 在弹出来的窗口中,点击右下角的浏览。

在这里插入图片描述

  • 选择项目根目录下我们创建的DJIWindowsSDK文件夹下DJIWindowsSDK.dll这个文件,然后点击添加,再点击确定。

在这里插入图片描述

  • 添加完成以后,你可以在右侧栏中的引用下看见**DJIWindowsSDK**这个引用

在这里插入图片描述

将第三方的dll文件添加到项目中。

  • 首先打开**”DJI_WindowsSDKBeta_0.3.2\ThirdParties\x86“**目录找到第三方dll文件。

在这里插入图片描述

我们看到该文件夹内只有pthread_dll.dll这一个dll文件,但是官方文档却写着需要“pthread_dll.dll and libcrypto-1.1.dll”这两个dll文件。

在这里插入图片描述

我们是从官网下载的DJI windows sdk压缩包,所以应该是官方忘记把libcrypto-1.1.dll这个文件放进去了。

不过不要紧,这个文件我们直接百度搜索就可以下载到。

这是我找到的下载网址:https://www.jb51.net/dll/libcrypto-1_1.dll.html

在这里插入图片描述

  • 找到pthread_dll.dll 和 libcrypto-1.1.dll这两个dll文件之后,将它们复制到你的项目文件夹里。

在这里插入图片描述

  • 回到vs2019,在右侧栏右击我们的项目,选择添加->现有项

在这里插入图片描述

  • 在弹出来的窗口中选择pthread_dll.dll 和 libcrypto-1.1.dll这两个dll文件,点击添加。

在这里插入图片描述

  • 第三方dll文件添加成功
    在这里插入图片描述

项目属性配置

  • 在vs2019中,在右侧栏右击解决方案,选择属性。

在这里插入图片描述

  • 在弹出的窗口中,左侧栏选择配置属性->配置,确保你的项目配置是适用于x86平台的。
    在这里插入图片描述

  • 在vs右侧栏双击打开Package.appxmanifest,选择打包,包名填写你创建的App Key对应的包名。ctrl+s保存。

在这里插入图片描述

查看你的App Key对应的包名。

在这里插入图片描述

  • 配置串口权限。在vs右侧栏右击Package.appxmanifest,选择查看代码。
    在这里插入图片描述

Capabilities元素中添加以下代码。添加完后,ctrl+s保存。

<DeviceCapability Name="serialcommunication">
    <Device Id="vidpid:2ca3 001f">
        <Function Type="name:serialPort" />
    </Device>
</DeviceCapability>

在这里插入图片描述

注册申请

  • 在vs2019中,在右侧栏中双击打开MainPage.xaml.cs

在这里插入图片描述

  • MainPage.xaml.cs文件中导入 DJI Windows SDK 的命名空间。
using DJI.WindowsSDK;
  • 创建一个新方法Instance_SDKRegistrationEvent
  • SDKRegistrationStateChanged使用 method添加事件监听Instance_SDKRegistrationEvent
  • 调用RegisterApp()方法MainPage()
  • 记得将你的App Key添加到代码中。

具体代码如下所示:

public MainPage()
{
    this.InitializeComponent();
    DJISDKManager.Instance.SDKRegistrationStateChanged += Instance_SDKRegistrationEvent;

    //Replace with your registered App Key. Make sure your App Key matched your application's package name on DJI developer center.
    DJISDKManager.Instance.RegisterApp("请将你的App Key输入到此处");
}

private async void Instance_SDKRegistrationEvent(SDKRegistrationState state, SDKError resultCode)
{
    if (resultCode == SDKError.NO_ERROR)
    {
    	System.Diagnostics.Debug.WriteLine("Register app successfully.");

        //The product connection state will be updated when it changes here.
        DJISDKManager.Instance.ComponentManager.GetProductHandler(0).ProductTypeChanged += async delegate (object sender, ProductTypeMsg? value)
        {
            await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
            {
                if (value != null && value?.value != ProductType.UNRECOGNIZED)
                {
                    System.Diagnostics.Debug.WriteLine("The Aircraft is connected now.");
                    //You can load/display your pages according to the aircraft connection state here.
                }
                else
                {
                    System.Diagnostics.Debug.WriteLine("The Aircraft is disconnected now.");
                    //You can hide your pages according to the aircraft connection state here, or show the connection tips to the users.
                }
            });
        };

        //If you want to get the latest product connection state manually, you can use the following code
        var productType = (await DJISDKManager.Instance.ComponentManager.GetProductHandler(0).GetProductTypeAsync()).value;
        if (productType != null && productType?.value != ProductType.UNRECOGNIZED)
        {
            System.Diagnostics.Debug.WriteLine("The Aircraft is connected now.");
            //You can load/display your pages according to the aircraft connection state here.
        }
    }
    else
    {
        System.Diagnostics.Debug.WriteLine("Register SDK failed, the error is: ");
        System.Diagnostics.Debug.WriteLine(resultCode.ToString());
    }
}

运行你的windows sdk演示项目

成功注册应用程序需要 Internet 连接。

由于本应用仅演示DJI Windows SDK的注册过程,并未与DJI产品直接交互,因此无需连接DJI产品即可运行本应用。

点击这里运行你的项目。

在这里插入图片描述

如果一切顺利,您应该能够看到以下日志:Register app successfully.

在这里插入图片描述

运行示例应用程序

连接你的无人机遥控器

  • 先下载DJI Assistant 2 for Mavic

    // 官方下载网址
    https://www.dji.com/cn/downloads/softwares/assistant-dji-2-for-mavic
    

    安装完以后打开,出现如下界面,提示你连接你的遥控器
    在这里插入图片描述

  • 拿起你的遥控器,先将遥控器关闭

在这里插入图片描述

然后通过mirco-usb数据线连接你的电脑,最后开启遥控器,遥控器便会自动连上你的电脑。

如果连接成功,你会看到如下界面。

在这里插入图片描述

下载DJI官方windows sdk示例程序

// GitHub地址
https://github.com/dji-sdk/Windows-SDK/tree/master/Sample%20Code

运行示例程序

把官方示例项目下载到本地并在vs2019中打开,选择debug x86模式,直接运行DJIWindowsSDKSample_x86项目。

你应该会看到以下错误信息。

在这里插入图片描述

解决方法:

  • 在vs右侧栏双击打开Package.appxmanifest,选择打包,点击选择证书。

在这里插入图片描述

  • 点击创建

在这里插入图片描述

  • 填写发布者名称和密码,然后确定,确定。

在这里插入图片描述

再次点击运行项目,项目正常运行,出现以下界面

在这里插入图片描述

输入你的App Key,点击Activate激活应用。

应用激活成功,你将看到完整的功能列表。
在这里插入图片描述

  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值