2021-01-25
作者:互联网
这是用于二次开发的大疆SDK。官方开发者网站为https://developer.dji.com/cn/。
1. Mobile SDK
支持平台:IOS 9.0+ 安卓5.0.0+
具备功能如下所示:
- 上层以及底层的控制
- 飞行数据实时回传
- 自主避障(只适用于有此功能的无人机)
- 相机和云台的全方位实时控制
- 获得大疆图传系统传回的高清影像
- 照片和视频的实时回传下载
- 已有任务:Waypoint,Hotpoint,FollowMe
- 电池和遥控器的状态信息获取以及参数设置
支持的DJI产品:
- Spark 系列
- Mavic 系列
- Phantom系列
- Inspire系列
- Matrice系列
2. UX SDK
支持平台:IOS 9.0+ 安卓5.0.0+
具备功能如下所示:UX软件开发工具包通过为所有核心功能提供用户UI元素来加快开发时间。应用程序可以在几分钟内创建,无需额外的代码行。
支持的DJI产品:
- Spark 系列
- Mavic 系列
- Phantom系列
- Inspire系列
- Matrice系列
3. Onboard SDK
支持平台:Linux, ROS, Embedded systems
具备功能如下所示:
- 相机和云台控制
- 实时图传
- 双目视觉图传
- 实时视图差
- 自定义局部导航
- 预设任务
- 遥控器
- 与Mobile SDK 实时通信
- 多功能I/O控制
- 与DJI飞控同步
支持的DJI产品:
- Matrice 300 RTK
- Matrice 200 系列
- Matrice 600 系列
- A3
- N3
- Manifold
- D-RTK GNSS
4. Payload SDK
支持平台:Linux, RTOS, Embedded systems
具备功能如下所示:
- Mobile SDK 通信
- 下行网口数据传输
- 下行网口视频传输
- DJI Pilot支持相机云台类负载
- Mobile SDK支持相机云台类负载
- 定制widget
- 飞行状态数据
支持的DJI产品:
- 经纬M300RTK
- 经纬M210
- 经纬210RTK
说明
- API接口 通过全新的协议,可以让定制负载与无人机飞控,GPS模块,图传等内部系统通信
- 负载集成平台 提供两种负载集成端口,便于开发者将专属负载整合至大疆无人机,实现软硬件一体化控制,丰富飞行作业功能,将无人机应用扩展至更广阔的领域
- 外部负载 由开发者自行开发的专用负载,拓展无人机功能,完成特定任务
- 移动APP 通过DJI Pilot app或定制移动app查看负载实时数据,发送指令和调节设置
Windows sdk
支持平台:Windows 10
具备功能如下所示:
- 上层即底层飞行控制
- 飞行数据实时回传
- 自主避障
- 相机与云台的全方位实时控制
- 获得DJI图传系统传回的高清影像
支持的DJI产品:
- MAVIC 2行业双光版
- MAVIC 2行业版
- MAVIC 2系列
- MAVIC Air
相关链接
- 文档链接:https://developer.dji.com/cn/windows-sdk/
- GitHub链接:https://github.com/dji-sdk/Windows-SDK
Windows SDK文档介绍
Windows SDK文档的目标是为任何具有UWP应用经验的开发人员提供使用DJI技术开发特色APP所需的知识和理解。
开发工作流程
从注册为开发人员,到部署应用程序,这一部分将带领开发人员完成整个开发过程。
- 前提: 使用DJI windows软件开发工具包开发应用程序(sdk)需要几个通用的和特定于平台的先决条件。 需要掌握的知识:
- 对UWP开发有一定的了解;
- 与DJI视窗软件开发工具包兼容的DJI产品。目前兼容的产品有幻影4 Pro V2.0和Mavic Air WiFi模式;
- 用于DJI开发商注册验证的信用卡或电话号码(不收费)
- 具有win 10系统,VS2017,Windows 10 SDK (版本1803或者更高都没关系 )
- 注册为DJI开发者并且下载SDK
- 注册网址:https://account.dji.com/register?appId=dji_sdk&backUrl=https%3A%2F%2Fdeveloper.dji.com%2Fuser&locale=en_US
- SDK下载地址:GitHub链接:https://github.com/dji-sdk/Windows-SDK
- 把SDK融合进APP
-
创建一个新的UWP 应用程序
1.1 打开VS2017
1.2 选择File->New->Project 选择Blank APP (Universal Windows)模板
1.3 取名为DJIWSDKDemo 同时选择最低版本和目标版本
-
把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.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>
-
获得APP密钥
4.1 进入官网 https://developer.dji.com/cn/ 注册账号和设置密码
4.2 点击APPs 设置如下,关键是包名字应该为com.wsdk.sample
-
注册应用程式
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());
}
}
- 运行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