其他分享
首页 > 其他分享> > 2021-01-25

2021-01-25

作者:互联网

这是用于二次开发的大疆SDK。官方开发者网站为https://developer.dji.com/cn/。

1. Mobile SDK

支持平台:IOS 9.0+ 安卓5.0.0+

具备功能如下所示

支持的DJI产品:

2. UX SDK

支持平台:IOS 9.0+ 安卓5.0.0+

具备功能如下所示:UX软件开发工具包通过为所有核心功能提供用户UI元素来加快开发时间。应用程序可以在几分钟内创建,无需额外的代码行。

支持的DJI产品:

3. Onboard SDK

支持平台:Linux, ROS, Embedded systems

具备功能如下所示

支持的DJI产品:

4. Payload SDK

支持平台:Linux, RTOS, Embedded systems

具备功能如下所示

支持的DJI产品:

说明

Windows sdk

支持平台:Windows 10

具备功能如下所示

支持的DJI产品:

相关链接

Windows SDK文档介绍

Windows SDK文档的目标是为任何具有UWP应用经验的开发人员提供使用DJI技术开发特色APP所需的知识和理解。

开发工作流程

从注册为开发人员,到部署应用程序,这一部分将带领开发人员完成整个开发过程。

  1. 对UWP开发有一定的了解;
  2. 与DJI视窗软件开发工具包兼容的DJI产品。目前兼容的产品有幻影4 Pro V2.0和Mavic Air WiFi模式;
  3. 用于DJI开发商注册验证的信用卡或电话号码(不收费)
  4. 具有win 10系统,VS2017,Windows 10 SDK (版本1803或者更高都没关系 )
  1. 注册网址:https://account.dji.com/register?appId=dji_sdk&backUrl=https%3A%2F%2Fdeveloper.dji.com%2Fuser&locale=en_US
  2. SDK下载地址:GitHub链接:https://github.com/dji-sdk/Windows-SDK
  1. 创建一个新的UWP 应用程序
    1.1 打开VS2017
    1.2 选择File->New->Project 选择Blank APP (Universal Windows)模板
    1.3 取名为DJIWSDKDemo 同时选择最低版本和目标版本
    在这里插入图片描述在这里插入图片描述

  2. 把WSDK导入到工程中区
    2.1 在DJIWSDKDemo工程下,新建一个文件夹DJIWindowsSDK,然后把这个SDK Lib放在此文件夹中。
    2.2 在VS2017中,右键引用,添加DJIWindoesSDK.dll。
    2.3 在DJIWSDKDemo文件夹中加入SDK Lib中的pthread_dll.dll 和 libcrypto-1.1.dll, for x86。
    2.4 在VS2017中,右键工程,添加上述的SDK Lib中的dll。

  3. 属性配置
    3.1 在VS2017中,右键解决方案,选择属性,再到配置属性,选择平台为x86;
    3.2 双击Package.appxmanifest,再打包,把包名取为"com.dji.wsdkdemo";
    3.3 右键Package.appxmanifest, 选择查看代码, 把下列代码放到Capabilities 标签中;
    <DeviceCapability Name="serialcommunication"> <Device Id="vidpid:2ca3 001f"> <Function Type="name:serialPort" /> </Device> </DeviceCapability>

  4. 获得APP密钥
    4.1 进入官网 https://developer.dji.com/cn/ 注册账号和设置密码
    4.2 点击APPs 设置如下,关键是包名字应该为com.wsdk.sample
    在这里插入图片描述

  5. 注册应用程式
    5.1 双击MainPage.xaml.cs;
    5.2 在主页面导入DJI的命名空间 using DJI.WindowsSDK;
    5.3 创造一个新的方法Instance_SDKRegistrationEvent;
    5.4 添加SDKRegistrationStateChanged事件监听Instance_SDKRegistrationEvent方法;
    5.5 在MainPage()中调用RegisterApp()方法,如下所示:

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("Please enter your App Key here.");
}

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());
    }
}
  1. 运行WSDK Demo
    成功注册应用程序需要互联网连接。由于此应用程序仅演示DJI视窗软件开发工具包的注册过程,并不直接与DJI产品交互,因此无需连接到DJI产品来运行此应用程序。如果一切顺利,您应该能够在弹出窗口中看到以下日志:Register app successfully.

标签:25,01,Instance,Windows,dji,2021,DJI,com,SDK
来源: https://blog.csdn.net/weixin_45616529/article/details/113104571