首页 > 其他分享 >QGC地面站软件配置保存功能

QGC地面站软件配置保存功能

时间:2024-11-06 11:15:37浏览次数:3  
标签:cc QGC 地面站 json qml test 软件 FlyViewSettings

文章目录

前言

一、涉及到的文件

二、调用步骤

三、成果展示


前言

QGC版本:4.1.1

开发平台:Win11 + QT5.15.2 + VS2019

原始代码:

链接:https://pan.baidu.com/s/1H68Rz-4tO70-qI33HNU_bA?pwd=FYTf
提取码:FYTf

内容:QGC软件配置保存功能实现方法。用于二次开发中新添设置选项,针对该功能讲解代码实现方式。下面我们以常规设置飞行视图中的“Show simple camera controls (DIGICAM_CONTROL)”该复选框为例子。


提示:以下是本篇文章正文内容,下面案例可供参考交流学习所用,如有错误谢谢指正

一、涉及到的文件

1、qml文件

        GeneralSettings.qml        该文件是“Application Settings”中常规设的界面代码。

2、c++文件

        QGCApplication.cc                        该类是QGC数据交互的主体,QGC将相关的类在其中构造并将App作为一个全局的静态变量通过qgcApp()来访问。

        QGroundControlQmlGlobal.h        起到了连接 C++ 和 QML 的作用,使得开发者可以在 QML 中方便地访问 C++ 中的全局对象、函数和常量。

        FlyViewSettings.cc                        常规设置,飞行视图设置保存功能接口。

        SettingsManager.h                        设置管理类 。

3、json文件        

        FlyView.SettingsGroup.json       用于保存常规设置飞行视图默认值的文件。

        

二、调用步骤

1、以常规设置飞行视图中的"Show simple camera controls (DIGICAM_CONTROL)"为例。

2、GeneralSettings.qml中对应的代码。采用QGC自定义复选框样式。通过“_showDumbCameraControl”的定义实现功能。

//GeneralSettings.qml

FactCheckBox {
              text:       qsTr("Show simple camera controls (DIGICAM_CONTROL)")
              visible:    _showDumbCameraControl.visible
              fact:       _showDumbCameraControl

              property Fact     _showDumbCameraControl:
QGroundControl.settingsManager.flyViewSettings.showSimpleCameraControl
              }

3、通过“_showDumbCameraControl”的调用路线可知,在 “QGCApplication.cc”中将“QGroundControlQmlGlobal”类注册。

//QGCApplication.cc

 qmlRegisterSingletonType<QGroundControlQmlGlobal>   ("QGroundControl", 1, 0, "QGroundControl", qgroundcontrolQmlGlobalSingletonFactory);

 4、在“QGroundControlQmlGlobal.h”中将类"SettingsManager“注册。

//QGroundControlQmlGlobal.h

Q_PROPERTY(SettingsManager* settingsManager READ settingsManager CONSTANT)

5、在“SettingsManager.h”中将类"FlyViewSettings“注册。

//SettingsManager.h

Q_PROPERTY(QObject* flyViewSettings READ flyViewSettings CONSTANT)

 6、在“FlyViewSettings.cc”中通过调用“DECLARE_SETTINGSFACT”宏来保存设置值。

//FlyViewSettings.cc

DECLARE_SETTINGSFACT(FlyViewSettings, showSimpleCameraControl)

7、在 “ FlyView.SettingsGroup.json”文件中设置默认值。

//FlyView.SettingsGroup.json

{
    "name":         "showSimpleCameraControl",
    "shortDesc":    "Show controls for camera triggering using MAV_CMD_DO_DIGICAM_CONTROL.",
    "type":         "bool",
    "default":      true
}

三、成果展示

        新增一个为“test”的复选框。

//FlyView.SettingsGroup.json

{
    "name":         "test",
    "shortDesc":    "test",
    "type":         "bool",
    "default":      true
},

//FlyViewSettings.h

DEFINE_SETTINGFACT(test)

//FlyViewSettings.cc

DECLARE_SETTINGSFACT(FlyViewSettings, test)

 //GeneralSettings.qml

FactCheckBox {
                   text:       qsTr("test")
                   visible:    _test.visible
                   fact:       _test

                   property Fact _test: QGroundControl.settingsManager.flyViewSettings.test
                   }

         添加完成后重新编译该项功能完成。

标签:cc,QGC,地面站,json,qml,test,软件,FlyViewSettings
From: https://blog.csdn.net/qq_45259133/article/details/143479716

相关文章

  • 【2024潇湘夜雨】WIN11_Pro-Workstation_24H2.26120.2213软件选装纯净特别版11.5
    【系统简介】=============================================================1.本次更新母盘来自WIN11_Pro-Workstation_24H2.26120.2213.进桌面后稍等片刻,等待后续部分优化完成。2.全程离线精简、无人值守调用优化处理制作。部分优化适配系统可能要重启几次,即使显示适配失败也不......
  • 软件测试(系统测试)的定位和专业:完善产品;专业;非助手;自动化
    软件测试(系统测试)的定位在研发流程的后端,测试并非无中生有的创举,而是从既有基础(即“1”)出发,致力于推动产品向更高层次(即从“1”到“100”)的跃升与完善。在这一阶段,测试的核心价值在于促进产品的精细打磨与持续优化。对于初创型或小型公司而言,由于产品尚处于原型或初级发展阶......
  • 2024年深受用户喜爱的桌面工作安排软件——6款工具精选
    一、引言在当今数字化办公时代,桌面工作安排软件已成为提升工作效率和组织管理能力的关键工具。该类软件通过集成日历、任务管理和项目管理功能,为用户提供了一个清晰、有序的工作规划平台,使得日常工作中的复杂性和不确定性得以有效转化和管理。它们的核心价值在于,能够协助用户......
  • 科普文:软件架构Linux系列之【图解存储 IO性能优化与瓶颈分析】
    概叙科普文:软件架构Linux系列之【Linux的文件预读readahead】-CSDN博客科普文:软件架构Linux系列之【并发问题的根源:CPU缓存模型详解】-CSDN博客从上面冯诺依曼结构下的cpu、内存、外存之间的延迟就可以看出,磁盘I/O性能的发展远远滞后于CPU和内存,因而成为现代计算机系统的......
  • 好的软件测试人员简历是什么样子的?
    ......
  • ONLYOFFICE办公软件的简介与体验
    官网链接ONLYOFFICE-企业在线办公应用软件|ONLYOFFICE引言在数字化时代,办公软件已成为我们日常工作和生活中不可或缺的一部分。随着技术的发展和工作方式的变化,传统的办公软件逐渐显露出其局限性,不再能满足我们对效率和便捷性的日益增长的需求。面对这一挑战,ONLYOFFICE......
  • 软件架构中对前后端分离的学习
    前后端分离架构目录前后端分离架构前端后端前端MVVM架构MVVM(Model-View-ViewModel)架构模式是一种广泛应用于软件开发中的设计模式,特别是在现代前端开发和移动应用开发中。它旨在通过将应用程序分为三个核心部分——模型(Model)、视图(View)和视图模型(ViewModel)——来简化用户界面......
  • 国内首位聋人 Android 软件工程师体验通义灵码,“这真是太棒了”
    Hi大家好!我就是人见人爱、Bug闪开的通义灵码!上个月,我上线了一项新能力:体验通义灵码@workspace:轻松分析项目结构,结合代码仓库理解工程、查询问答等补充说明:当你需要快速了解一个工程、查找工程内的实现逻辑,或有新的诉求需要进行代码变更时,可以在智能问答窗口中通过 @ 可......