DJi Onboard SDK 相关文件位于SDK压缩包的根目录\osdk-core下,其中api文件夹中为主要的SDK接口,包括飞行器访问入口类:dji_vehicle.hpp。
要想在自己的程序中使用OSDK,需要将相关文件包含在项目中即可。
好了,下边我们开始编写第一个OSDK QT程序。
1:在QT Creater中选择“文件”->“新建文件或项目”,由于最近一直在做QML相关开发,所以选择创建的是QML项目,输入项目名称“helloWorld”,创建好该项目。

2:在文件夹中找到刚刚创建的项目文件夹,在于pro文件同级目录中新建文件夹“include”,将OSDK相关文件拷贝至include文件夹中。

3:在项目文件“pro”中,添加对OSDK的引用

4:在程序中增加对OSDK的简单调用,代码中使用了不存在的串口设备com3和串口波特率115200
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include "dji_vehicle.hpp"
using namespace DJI::OSDK;
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
Vehicle *v = new Vehicle("com3", 115200, true);
return app.exec();
}
5:点击“运行”按钮,我们的第一个OSDK QT程序成功运行了,在QT的应用程序输出窗口,我们可以看到如下信息:
QML debugging is enabled. Only use this in a safe environment.
QObject::connect: No such signal QHardDriver::finished() in ..\..\..\include\Dji_osdk\v37\osdk-core\hal\src\dji_platform_manager.cpp:151
ERRORLOG/1 @ init, L117: fail to open port com3
STATUS/1 @ init, L120: BaudRate: 115200
ERRORLOG/1 @ init, L117: fail to open port com3
STATUS/1 @ init, L120: BaudRate: 115200
6:输出信息中的打开com3端口失败,是正常的,因为我的电脑还没有链接DJi飞控,但是QHardDriver缺少finished信号的问题,应该是OSDK的遗留问题吧。
好的,我们的第一个OSDK QT程序成功运行了。
在编写第一个OSDK QT程序过程中,有一些事项需要注意:
1:pro文件中需要增加宏定义QT,用以告诉OSDK当前使用的是QT版本
DEFINES += QT

2:pro文件中需要增加对串口和Widget的引用。
QT += serialport widgets
3:如果运行导致宕机,可以尝试将运行目录删除后重新编译运行即可。


2167

被折叠的 条评论
为什么被折叠?



