11 changed files with 773 additions and 454 deletions
@ -0,0 +1,51 @@
@@ -0,0 +1,51 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#include "ComponentInformation.h" |
||||
#include "Vehicle.h" |
||||
|
||||
QGC_LOGGING_CATEGORY(ComponentInformation, "ComponentInformation") |
||||
|
||||
ComponentInformation::ComponentInformation(Vehicle* vehicle, QObject* parent) |
||||
: QObject (parent) |
||||
, _vehicle (vehicle) |
||||
{ |
||||
|
||||
} |
||||
|
||||
void ComponentInformation::requestVersionMetaData(Vehicle* vehicle) |
||||
{ |
||||
vehicle->sendMavCommand(MAV_COMP_ID_AUTOPILOT1, |
||||
MAV_CMD_REQUEST_MESSAGE, |
||||
false, // No error shown if fails
|
||||
MAVLINK_MSG_ID_COMPONENT_INFORMATION, |
||||
COMP_METADATA_TYPE_VERSION); |
||||
} |
||||
|
||||
bool ComponentInformation::requestParameterMetaData(Vehicle* vehicle) |
||||
{ |
||||
vehicle->sendMavCommand(MAV_COMP_ID_AUTOPILOT1, |
||||
MAV_CMD_REQUEST_MESSAGE, |
||||
false, // No error shown if fails
|
||||
MAVLINK_MSG_ID_COMPONENT_INFORMATION, |
||||
COMP_METADATA_TYPE_PARAMETER); |
||||
return true; |
||||
} |
||||
|
||||
void ComponentInformation::componentInformationReceived(const mavlink_message_t &message) |
||||
{ |
||||
mavlink_component_information_t componentInformation; |
||||
mavlink_msg_component_information_decode(&message, &componentInformation);
|
||||
qDebug() << componentInformation.metadata_type << componentInformation.metadata_uri; |
||||
} |
||||
|
||||
bool ComponentInformation::metaDataTypeSupported(COMP_METADATA_TYPE type) |
||||
{ |
||||
return _supportedMetaDataTypes.contains(type); |
||||
} |
@ -0,0 +1,38 @@
@@ -0,0 +1,38 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#pragma once |
||||
|
||||
#include "QGCLoggingCategory.h" |
||||
#include "QGCMAVLink.h" |
||||
|
||||
#include <QObject> |
||||
|
||||
Q_DECLARE_LOGGING_CATEGORY(ComponentInformationLog) |
||||
|
||||
class Vehicle; |
||||
|
||||
class ComponentInformation : public QObject |
||||
{ |
||||
Q_OBJECT |
||||
|
||||
public: |
||||
ComponentInformation(Vehicle* vehicle, QObject* parent = nullptr); |
||||
|
||||
void requestVersionMetaData (Vehicle* vehicle); |
||||
bool requestParameterMetaData (Vehicle* vehicle); |
||||
void componentInformationReceived (const mavlink_message_t& message); |
||||
bool metaDataTypeSupported (COMP_METADATA_TYPE type); |
||||
|
||||
private: |
||||
Vehicle* _vehicle = nullptr; |
||||
bool _versionMetaDataAvailable = false; |
||||
bool _paramMetaDataAvailable = false; |
||||
QList<COMP_METADATA_TYPE> _supportedMetaDataTypes; |
||||
}; |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
{ |
||||
"version": 1, |
||||
"vendorName": "QGC MockLink Vendor", |
||||
"modelName": "QGC MockLink Model", |
||||
"firmwareVersion": "1.0.0", |
||||
"hardwareVersion": "1.0.0", |
||||
"supportedCompMetadataTypes": [ 0, 1 ] |
||||
} |
Loading…
Reference in new issue