9 changed files with 309 additions and 0 deletions
@ -0,0 +1,49 @@
@@ -0,0 +1,49 @@
|
||||
{ |
||||
"version": 1, |
||||
"fileType": "FactMetaData", |
||||
"QGC.MetaData.Facts": |
||||
[ |
||||
{ |
||||
"name": "x", |
||||
"shortDesc": "X", |
||||
"type": "double", |
||||
"decimalPlaces": 1, |
||||
"units": "m" |
||||
}, |
||||
{ |
||||
"name": "y", |
||||
"shortDesc": "Y", |
||||
"type": "double", |
||||
"decimalPlaces": 1, |
||||
"units": "m" |
||||
}, |
||||
{ |
||||
"name": "z", |
||||
"shortDesc": "Z", |
||||
"type": "double", |
||||
"decimalPlaces": 1, |
||||
"units": "m" |
||||
}, |
||||
{ |
||||
"name": "vx", |
||||
"shortDesc": "VX", |
||||
"type": "double", |
||||
"decimalPlaces": 1, |
||||
"units": "m/s" |
||||
}, |
||||
{ |
||||
"name": "vy", |
||||
"shortDesc": "Vy", |
||||
"type": "double", |
||||
"decimalPlaces": 1, |
||||
"units": "m/s" |
||||
}, |
||||
{ |
||||
"name": "vz", |
||||
"shortDesc": "Vz", |
||||
"type": "double", |
||||
"decimalPlaces": 1, |
||||
"units": "m/s" |
||||
} |
||||
] |
||||
} |
@ -0,0 +1,65 @@
@@ -0,0 +1,65 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (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 "VehicleLocalPositionFactGroup.h" |
||||
#include "Vehicle.h" |
||||
|
||||
#include <QtMath> |
||||
|
||||
const char* VehicleLocalPositionFactGroup::_xFactName = "x"; |
||||
const char* VehicleLocalPositionFactGroup::_yFactName = "y"; |
||||
const char* VehicleLocalPositionFactGroup::_zFactName = "z"; |
||||
const char* VehicleLocalPositionFactGroup::_vxFactName = "vx"; |
||||
const char* VehicleLocalPositionFactGroup::_vyFactName = "vy"; |
||||
const char* VehicleLocalPositionFactGroup::_vzFactName = "vz"; |
||||
|
||||
VehicleLocalPositionFactGroup::VehicleLocalPositionFactGroup(QObject* parent) |
||||
: FactGroup (1000, ":/json/Vehicle/LocalPositionFact.json", parent) |
||||
, _xFact (0, _xFactName, FactMetaData::valueTypeDouble) |
||||
, _yFact (0, _yFactName, FactMetaData::valueTypeDouble) |
||||
, _zFact (0, _zFactName, FactMetaData::valueTypeDouble) |
||||
, _vxFact (0, _vxFactName, FactMetaData::valueTypeDouble) |
||||
, _vyFact (0, _vyFactName, FactMetaData::valueTypeDouble) |
||||
, _vzFact (0, _vzFactName, FactMetaData::valueTypeDouble) |
||||
{ |
||||
_addFact(&_xFact, _xFactName); |
||||
_addFact(&_yFact, _yFactName); |
||||
_addFact(&_zFact, _zFactName); |
||||
_addFact(&_vxFact, _vxFactName); |
||||
_addFact(&_vyFact, _vyFactName); |
||||
_addFact(&_vzFact, _vzFactName); |
||||
|
||||
// Start out as not available "--.--"
|
||||
_xFact.setRawValue(qQNaN()); |
||||
_yFact.setRawValue(qQNaN()); |
||||
_zFact.setRawValue(qQNaN()); |
||||
_vxFact.setRawValue(qQNaN()); |
||||
_vyFact.setRawValue(qQNaN()); |
||||
_vzFact.setRawValue(qQNaN()); |
||||
} |
||||
|
||||
void VehicleLocalPositionFactGroup::handleMessage(Vehicle* /* vehicle */, mavlink_message_t& message) |
||||
{ |
||||
if (message.msgid != MAVLINK_MSG_ID_LOCAL_POSITION_NED) { |
||||
return; |
||||
} |
||||
|
||||
mavlink_local_position_ned_t localPosition; |
||||
mavlink_msg_local_position_ned_decode(&message, &localPosition); |
||||
|
||||
x()->setRawValue(localPosition.x); |
||||
y()->setRawValue(localPosition.y); |
||||
z()->setRawValue(localPosition.z); |
||||
|
||||
vx()->setRawValue(localPosition.vx); |
||||
vy()->setRawValue(localPosition.vy); |
||||
vz()->setRawValue(localPosition.vz); |
||||
|
||||
_setTelemetryAvailable(true); |
||||
} |
@ -0,0 +1,53 @@
@@ -0,0 +1,53 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (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 "FactGroup.h" |
||||
#include "QGCMAVLink.h" |
||||
|
||||
class VehicleLocalPositionFactGroup : public FactGroup |
||||
{ |
||||
Q_OBJECT |
||||
|
||||
public: |
||||
VehicleLocalPositionFactGroup(QObject* parent = nullptr); |
||||
|
||||
Q_PROPERTY(Fact* x READ x CONSTANT) |
||||
Q_PROPERTY(Fact* y READ y CONSTANT) |
||||
Q_PROPERTY(Fact* z READ z CONSTANT) |
||||
Q_PROPERTY(Fact* vx READ vx CONSTANT) |
||||
Q_PROPERTY(Fact* vy READ vy CONSTANT) |
||||
Q_PROPERTY(Fact* vz READ vz CONSTANT) |
||||
|
||||
Fact* x () { return &_xFact; } |
||||
Fact* y () { return &_yFact; } |
||||
Fact* z () { return &_zFact; } |
||||
Fact* vx () { return &_vxFact; } |
||||
Fact* vy () { return &_vyFact; } |
||||
Fact* vz () { return &_vzFact; } |
||||
|
||||
// Overrides from FactGroup
|
||||
void handleMessage(Vehicle* vehicle, mavlink_message_t& message) override; |
||||
|
||||
static const char* _xFactName; |
||||
static const char* _yFactName; |
||||
static const char* _zFactName; |
||||
static const char* _vxFactName; |
||||
static const char* _vyFactName; |
||||
static const char* _vzFactName; |
||||
|
||||
private: |
||||
Fact _xFact; |
||||
Fact _yFact; |
||||
Fact _zFact; |
||||
Fact _vxFact; |
||||
Fact _vyFact; |
||||
Fact _vzFact; |
||||
}; |
@ -0,0 +1,65 @@
@@ -0,0 +1,65 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (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 "VehicleLocalPositionSetpointFactGroup.h" |
||||
#include "Vehicle.h" |
||||
|
||||
#include <QtMath> |
||||
|
||||
const char* VehicleLocalPositionSetpointFactGroup::_xFactName = "x"; |
||||
const char* VehicleLocalPositionSetpointFactGroup::_yFactName = "y"; |
||||
const char* VehicleLocalPositionSetpointFactGroup::_zFactName = "z"; |
||||
const char* VehicleLocalPositionSetpointFactGroup::_vxFactName = "vx"; |
||||
const char* VehicleLocalPositionSetpointFactGroup::_vyFactName = "vy"; |
||||
const char* VehicleLocalPositionSetpointFactGroup::_vzFactName = "vz"; |
||||
|
||||
VehicleLocalPositionSetpointFactGroup::VehicleLocalPositionSetpointFactGroup(QObject* parent) |
||||
: FactGroup (1000, ":/json/Vehicle/LocalPositionSetpointFact.json", parent) |
||||
, _xFact (0, _xFactName, FactMetaData::valueTypeDouble) |
||||
, _yFact (0, _yFactName, FactMetaData::valueTypeDouble) |
||||
, _zFact (0, _zFactName, FactMetaData::valueTypeDouble) |
||||
, _vxFact (0, _vxFactName, FactMetaData::valueTypeDouble) |
||||
, _vyFact (0, _vyFactName, FactMetaData::valueTypeDouble) |
||||
, _vzFact (0, _vzFactName, FactMetaData::valueTypeDouble) |
||||
{ |
||||
_addFact(&_xFact, _xFactName); |
||||
_addFact(&_yFact, _yFactName); |
||||
_addFact(&_zFact, _zFactName); |
||||
_addFact(&_vxFact, _vxFactName); |
||||
_addFact(&_vyFact, _vyFactName); |
||||
_addFact(&_vzFact, _vzFactName); |
||||
|
||||
// Start out as not available "--.--"
|
||||
_xFact.setRawValue(qQNaN()); |
||||
_yFact.setRawValue(qQNaN()); |
||||
_zFact.setRawValue(qQNaN()); |
||||
_vxFact.setRawValue(qQNaN()); |
||||
_vyFact.setRawValue(qQNaN()); |
||||
_vzFact.setRawValue(qQNaN()); |
||||
} |
||||
|
||||
void VehicleLocalPositionSetpointFactGroup::handleMessage(Vehicle* /* vehicle */, mavlink_message_t& message) |
||||
{ |
||||
if (message.msgid != MAVLINK_MSG_ID_POSITION_TARGET_LOCAL_NED) { |
||||
return; |
||||
} |
||||
|
||||
mavlink_position_target_local_ned_t localPosition; |
||||
mavlink_msg_position_target_local_ned_decode(&message, &localPosition); |
||||
|
||||
x()->setRawValue(localPosition.x); |
||||
y()->setRawValue(localPosition.y); |
||||
z()->setRawValue(localPosition.z); |
||||
|
||||
vx()->setRawValue(localPosition.vx); |
||||
vy()->setRawValue(localPosition.vy); |
||||
vz()->setRawValue(localPosition.vz); |
||||
|
||||
_setTelemetryAvailable(true); |
||||
} |
@ -0,0 +1,53 @@
@@ -0,0 +1,53 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (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 "FactGroup.h" |
||||
#include "QGCMAVLink.h" |
||||
|
||||
class VehicleLocalPositionSetpointFactGroup : public FactGroup |
||||
{ |
||||
Q_OBJECT |
||||
|
||||
public: |
||||
VehicleLocalPositionSetpointFactGroup(QObject* parent = nullptr); |
||||
|
||||
Q_PROPERTY(Fact* x READ x CONSTANT) |
||||
Q_PROPERTY(Fact* y READ y CONSTANT) |
||||
Q_PROPERTY(Fact* z READ z CONSTANT) |
||||
Q_PROPERTY(Fact* vx READ vx CONSTANT) |
||||
Q_PROPERTY(Fact* vy READ vy CONSTANT) |
||||
Q_PROPERTY(Fact* vz READ vz CONSTANT) |
||||
|
||||
Fact* x () { return &_xFact; } |
||||
Fact* y () { return &_yFact; } |
||||
Fact* z () { return &_zFact; } |
||||
Fact* vx () { return &_vxFact; } |
||||
Fact* vy () { return &_vyFact; } |
||||
Fact* vz () { return &_vzFact; } |
||||
|
||||
// Overrides from FactGroup
|
||||
void handleMessage(Vehicle* vehicle, mavlink_message_t& message) override; |
||||
|
||||
static const char* _xFactName; |
||||
static const char* _yFactName; |
||||
static const char* _zFactName; |
||||
static const char* _vxFactName; |
||||
static const char* _vyFactName; |
||||
static const char* _vzFactName; |
||||
|
||||
private: |
||||
Fact _xFact; |
||||
Fact _yFact; |
||||
Fact _zFact; |
||||
Fact _vxFact; |
||||
Fact _vyFact; |
||||
Fact _vzFact; |
||||
}; |
Loading…
Reference in new issue