IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> QGC -- 配置相机参数数据流说明(1) -> 正文阅读

[系统运维]QGC -- 配置相机参数数据流说明(1)

一、相关配置文件及对应画面
1.界面GeneralSettings.qml
在这里插入图片描述
2.Video.SettingsGroup.json对应界面如下:

{
    "name":             "VideoSource",
    "shortDescription": "Video source",
    "longDescription":  "Source for video. UDP, TCP, RTSP and UVC Cameras may be supported depending on Vehicle and ground station version.",
    "type":             "string",
    "defaultValue":     ""
},
{
    "name":             "VideoUDPPort",
    "shortDescription": "Video UDP Port",
    "longDescription":  "UDP port to bind to for video stream.",
    "type":             "uint16",
    "min":              1025,
    "defaultValue":     5600
},

在这里插入图片描述
3.相机配置参数写到QGroundControl.ini配置文件

[General]
AudioMuted=true
BaseDeviceFontPointSize=13
DroneConnectionTimeout=5
MaxDiskCache=1024
MaxMemoryCache=128
SavePath=/home/xt/\x6587\x6863/QGroundControl
SettingsVersion=7
StreamEnabled=true
VideoRTSPUrl=rtsp://127.0.0.1:8554/
VideoSource=UDP Video Stream
VideoUDPPort=5600
VirtualTabletJoystick=false
VisibleWidgets=
_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x2\0\0\0\0\0\x41\0\0\0\x34\0\0\x4@\0\0\x2\x8b\0\0\0\x41\0\0\0P\0\0\x4@\0\0\x2\x8b\0\0\0\0\0\0\0\0\x6\x8e)

二、程序片段说明
GeneralSettings.qml

Row {
                            spacing:    ScreenTools.defaultFontPixelWidth
                            visible:    QGroundControl.settingsManager.videoSettings.videoSource.visible
                            QGCLabel {
                                text:               qsTr("Video Source:")
                                width:              _labelWidth
                                anchors.verticalCenter: parent.verticalCenter
                            }
                            FactComboBox {
                                id:         videoSource
                                width:      _editFieldWidth
                                indexModel: false
                                fact:       QGroundControl.settingsManager.videoSettings.videoSource
                                anchors.verticalCenter: parent.verticalCenter
                            }
                        }
                        Row {
                            spacing:    ScreenTools.defaultFontPixelWidth
                            visible:    QGroundControl.settingsManager.videoSettings.udpPort.visible && QGroundControl.videoManager.isGStreamer && videoSource.currentIndex === 1
                            QGCLabel {
                                text:               qsTr("UDP Port:")
                                width:              _labelWidth
                                anchors.verticalCenter: parent.verticalCenter
                            }
                            FactTextField {
                                width:              _editFieldWidth
                                fact:               QGroundControl.settingsManager.videoSettings.udpPort
                                anchors.verticalCenter: parent.verticalCenter
                            }
                        }

对QGroundControl.settingsManager.videoSettings.videoSource说明

Fact* VideoSettings::videoSource(void)
{
    if (!_videoSourceFact) {
        _videoSourceFact = _createSettingsFact(videoSourceName);
        connect(_videoSourceFact, &Fact::valueChanged, this, &VideoSettings::_configChanged);
    }
    return _videoSourceFact;
}
const char* VideoSettings::videoSourceName =        "VideoSource";

SettingsGroup::SettingsGroup(const QString& name, const QString& settingsGroup, QObject* parent)
    : QObject(parent)
    , _name(name)
    , _settingsGroup(settingsGroup)
    , _visible(qgcApp()->toolbox()->corePlugin()->overrideSettingsGroupVisibility(name))
{
    QString jsonNameFormat(":/json/%1.SettingsGroup.json");
     ///home/xt/GDU/protocol3/qgroundcontrol/src/Settings  根据传进来值创建json
    _nameToMetaDataMap = FactMetaData::createMapFromJsonFile(jsonNameFormat.arg(name), this);//读取json文件--》json对象---》createFromJsonObject
}

SettingsFact* SettingsGroup::_createSettingsFact(const QString& name)
{
    return new SettingsFact(_settingsGroup, _nameToMetaDataMap[name], this);
}
VideoSettings::VideoSettings(QObject* parent)
    : SettingsGroup(videoSettingsGroupName, QString() /* root settings group */, parent)
const char* VideoSettings::videoSettingsGroupName = "Video";
SettingsFact::SettingsFact(QString settingGroup, FactMetaData* metaData, QObject* parent)
    : Fact(0, metaData->name(), metaData->type(), parent)
    , _settingGroup(settingGroup)
    , _visible(true)
{
    QSettings settings;

    if (!_settingGroup.isEmpty()) {
        settings.beginGroup(_settingGroup);
    }

    // Allow core plugin a chance to override the default value
    _visible = qgcApp()->toolbox()->corePlugin()->adjustSettingMetaData(*metaData);
    setMetaData(metaData);

    QVariant rawDefaultValue = metaData->rawDefaultValue();
    if (_visible) {
        QVariant typedValue;
        QString errorString;
        metaData->convertAndValidateRaw(settings.value(_name, rawDefaultValue), true /* conertOnly */, typedValue, errorString);
        _rawValue = typedValue;
    } else {
        // Setting is not visible, force to default value always
        settings.setValue(_name, rawDefaultValue);
        _rawValue = rawDefaultValue;
    }

    connect(this, &Fact::rawValueChanged, this, &SettingsFact::_rawValueChanged);
}
const char* FactMetaData::_decimalPlacesJsonKey =       "decimalPlaces";
const char* FactMetaData::_nameJsonKey =                "name";
const char* FactMetaData::_typeJsonKey =                "type";
const char* FactMetaData::_shortDescriptionJsonKey =    "shortDescription";
const char* FactMetaData::_longDescriptionJsonKey =     "longDescription";
const char* FactMetaData::_unitsJsonKey =               "units";
const char* FactMetaData::_defaultValueJsonKey =        "defaultValue";
const char* FactMetaData::_mobileDefaultValueJsonKey =  "mobileDefaultValue";
const char* FactMetaData::_minJsonKey =                 "min";
const char* FactMetaData::_maxJsonKey =                 "max";
const char* FactMetaData::_hasControlJsonKey =          "control";

三、ParameterEditorDialog.qml对话框

 function accept() {
        if (bitmaskColumn.visible && !manualEntry.checked) {
            fact.value = bitmaskValue();
            fact.valueChanged(fact.value)
            hideDialog();
        } else if (factCombo.visible && !manualEntry.checked) {
            fact.enumIndex = factCombo.currentIndex
            hideDialog()
        } else {
            var errorString = fact.validate(valueField.text, forceSave.checked)
            if (errorString === "") {
                fact.value = valueField.text
                fact.valueChanged(fact.value)
                hideDialog()
            } else {
                validationError.text = errorString
                if (_allowForceSave) {
                    forceSave.visible = true
                }
            }
        }
    }

    function reject() {
        fact.valueChanged(fact.value)
        hideDialog();
    }

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 16:00:29  更:2022-03-04 16:02:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 4:40:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码