Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
b912322e
Commit
b912322e
authored
Sep 30, 2019
by
DonLakeFlyer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
parent
cd165451
Changes
16
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
757 additions
and
9 deletions
+757
-9
ChangeLog.md
ChangeLog.md
+1
-0
qgcimages.qrc
qgcimages.qrc
+8
-7
qgroundcontrol.pro
qgroundcontrol.pro
+4
-0
APMAutoPilotPlugin.cc
src/AutoPilotPlugins/APM/APMAutoPilotPlugin.cc
+9
-0
APMAutoPilotPlugin.h
src/AutoPilotPlugins/APM/APMAutoPilotPlugin.h
+2
-0
APMFollowComponent.FactMetaData.json
...AutoPilotPlugins/APM/APMFollowComponent.FactMetaData.json
+30
-0
APMFollowComponent.cc
src/AutoPilotPlugins/APM/APMFollowComponent.cc
+44
-0
APMFollowComponent.h
src/AutoPilotPlugins/APM/APMFollowComponent.h
+38
-0
APMFollowComponent.qml
src/AutoPilotPlugins/APM/APMFollowComponent.qml
+453
-0
APMFollowComponentController.cc
src/AutoPilotPlugins/APM/APMFollowComponentController.cc
+24
-0
APMFollowComponentController.h
src/AutoPilotPlugins/APM/APMFollowComponentController.h
+40
-0
APMFollowComponentSummary.qml
src/AutoPilotPlugins/APM/APMFollowComponentSummary.qml
+58
-0
FactPanelController.cc
src/FactSystem/FactControls/FactPanelController.cc
+30
-0
FactPanelController.h
src/FactSystem/FactControls/FactPanelController.h
+11
-0
APMParameterFactMetaData.Copter.3.6.xml
...irmwarePlugin/APM/APMParameterFactMetaData.Copter.3.6.xml
+1
-1
APMResources.qrc
src/FirmwarePlugin/APM/APMResources.qrc
+4
-1
No files found.
ChangeLog.md
View file @
b912322e
...
...
@@ -6,6 +6,7 @@ Note: This file only contains high level features or important fixes.
### 3.6.0 - Daily Build
*
ArduCopter/Rover: Follow Me setup page
*
More performant flight path display algorithm. Mobile builds no longer show limited path length.
*
ArduCopter/Rover: Add support for Follow Me
*
ArduPilot: Add Motor Test vehicle setup page
...
...
qgcimages.qrc
View file @
b912322e
...
...
@@ -61,7 +61,7 @@
<file alias="camera.svg">resources/camera.svg</file>
<file alias="camera_photo.svg">src/Camera/images/camera_photo.svg</file>
<file alias="camera_video.svg">src/Camera/images/camera_video.svg</file>
<file alias="CameraComponentIcon.png">src/AutoPilotPlugins/
PX4
/Images/CameraComponentIcon.png</file>
<file alias="CameraComponentIcon.png">src/AutoPilotPlugins/
Common
/Images/CameraComponentIcon.png</file>
<file alias="CameraIcon.svg">src/ui/toolbar/Images/CameraIcon.svg</file>
<file alias="CameraTrigger.svg">src/AutoPilotPlugins/PX4/Images/CameraTrigger.svg</file>
<file alias="check.svg">resources/check.svg</file>
...
...
@@ -78,7 +78,8 @@
<file alias="Disarmed.svg">src/ui/toolbar/Images/Disarmed.svg</file>
<file alias="Disconnect.svg">src/ui/toolbar/Images/Disconnect.svg</file>
<file alias="FirmwareUpgradeIcon.png">src/VehicleSetup/FirmwareUpgradeIcon.png</file>
<file alias="FlightModesComponentIcon.png">src/AutoPilotPlugins/PX4/Images/FlightModesComponentIcon.png</file>
<file alias="FollowComponentIcon.png">src/AutoPilotPlugins/Common/Images/FlightModesComponentIcon.png</file>
<file alias="FlightModesComponentIcon.png">src/AutoPilotPlugins/Common/Images/FlightModesComponentIcon.png</file>
<file alias="Frames/BlueROV1.png">src/AutoPilotPlugins/APM/Images/bluerov-frame.png</file>
<file alias="Frames/SimpleROV-3.png">src/AutoPilotPlugins/APM/Images/simple3-frame.png</file>
<file alias="Frames/SimpleROV-4.png">src/AutoPilotPlugins/APM/Images/simple4-frame.png</file>
...
...
@@ -132,10 +133,10 @@
<file alias="PowerComponentBattery_04cell.svg">src/AutoPilotPlugins/PX4/Images/PowerComponentBattery_04cell.svg</file>
<file alias="PowerComponentBattery_05cell.svg">src/AutoPilotPlugins/PX4/Images/PowerComponentBattery_05cell.svg</file>
<file alias="PowerComponentBattery_06cell.svg">src/AutoPilotPlugins/PX4/Images/PowerComponentBattery_06cell.svg</file>
<file alias="PowerComponentIcon.png">src/AutoPilotPlugins/
PX4
/Images/PowerComponentIcon.png</file>
<file alias="PowerComponentIcon.png">src/AutoPilotPlugins/
Common
/Images/PowerComponentIcon.png</file>
<file alias="PX4/BrandImage">src/FirmwarePlugin/PX4/PX4BrandImage.png</file>
<file alias="Quad.svg">src/ui/toolbar/Images/Quad.svg</file>
<file alias="RadioComponentIcon.png">src/AutoPilotPlugins/
PX4
/Images/RadioComponentIcon.png</file>
<file alias="RadioComponentIcon.png">src/AutoPilotPlugins/
Common
/Images/RadioComponentIcon.png</file>
<file alias="RC.svg">src/ui/toolbar/Images/RC.svg</file>
<file alias="RCLoss.svg">src/AutoPilotPlugins/PX4/Images/RCLoss.svg</file>
<file alias="RCLossLight.svg">src/AutoPilotPlugins/PX4/Images/RCLossLight.svg</file>
...
...
@@ -144,12 +145,12 @@
<file alias="rollDialWhite.svg">src/FlightMap/Images/rollDialWhite.svg</file>
<file alias="rollPointerWhite.svg">src/FlightMap/Images/rollPointerWhite.svg</file>
<file alias="RTK.svg">src/ui/toolbar/Images/RTK.svg</file>
<file alias="SafetyComponentIcon.png">src/AutoPilotPlugins/
PX4
/Images/SafetyComponentIcon.png</file>
<file alias="SafetyComponentIcon.png">src/AutoPilotPlugins/
Common
/Images/SafetyComponentIcon.png</file>
<file alias="scale.png">src/FlightMap/Images/scale.png</file>
<file alias="scale_end.png">src/FlightMap/Images/scale_end.png</file>
<file alias="scale_endLight.png">src/FlightMap/Images/scale_endLight.png</file>
<file alias="scaleLight.png">src/FlightMap/Images/scaleLight.png</file>
<file alias="SensorsComponentIcon.png">src/AutoPilotPlugins/
PX4
/Images/SensorsComponentIcon.png</file>
<file alias="SensorsComponentIcon.png">src/AutoPilotPlugins/
Common
/Images/SensorsComponentIcon.png</file>
<file alias="Signal0.svg">src/ui/toolbar/Images/Signal0.svg</file>
<file alias="Signal100.svg">src/ui/toolbar/Images/Signal100.svg</file>
<file alias="Signal20.svg">src/ui/toolbar/Images/Signal20.svg</file>
...
...
@@ -161,7 +162,7 @@
<file alias="subMenuButtonImage.png">resources/CogWheels.png</file>
<file alias="subVehicleArrowOpaque.png">src/FlightMap/Images/sub.png</file>
<file alias="TelemRSSI.svg">src/ui/toolbar/Images/TelemRSSI.svg</file>
<file alias="TuningComponentIcon.png">src/AutoPilotPlugins/
PX4
/Images/TuningComponentIcon.png</file>
<file alias="TuningComponentIcon.png">src/AutoPilotPlugins/
Common
/Images/TuningComponentIcon.png</file>
<file alias="vehicleArrowOpaque.svg">src/FlightMap/Images/vehicleArrowOpaque.svg</file>
<file alias="vehicleArrowOutline.svg">src/FlightMap/Images/vehicleArrowOutline.svg</file>
<file alias="VehicleDown.png">src/AutoPilotPlugins/PX4/Images/VehicleDown.png</file>
...
...
qgroundcontrol.pro
View file @
b912322e
...
...
@@ -1068,6 +1068,8 @@ APMFirmwarePlugin {
src
/
AutoPilotPlugins
/
APM
/
APMCompassCal
.
h
\
src
/
AutoPilotPlugins
/
APM
/
APMFlightModesComponent
.
h
\
src
/
AutoPilotPlugins
/
APM
/
APMFlightModesComponentController
.
h
\
src
/
AutoPilotPlugins
/
APM
/
APMFollowComponent
.
h
\
src
/
AutoPilotPlugins
/
APM
/
APMFollowComponentController
.
h
\
src
/
AutoPilotPlugins
/
APM
/
APMHeliComponent
.
h
\
src
/
AutoPilotPlugins
/
APM
/
APMLightsComponent
.
h
\
src
/
AutoPilotPlugins
/
APM
/
APMSubFrameComponent
.
h
\
...
...
@@ -1093,6 +1095,8 @@ APMFirmwarePlugin {
src
/
AutoPilotPlugins
/
APM
/
APMCompassCal
.
cc
\
src
/
AutoPilotPlugins
/
APM
/
APMFlightModesComponent
.
cc
\
src
/
AutoPilotPlugins
/
APM
/
APMFlightModesComponentController
.
cc
\
src
/
AutoPilotPlugins
/
APM
/
APMFollowComponent
.
cc
\
src
/
AutoPilotPlugins
/
APM
/
APMFollowComponentController
.
cc
\
src
/
AutoPilotPlugins
/
APM
/
APMHeliComponent
.
cc
\
src
/
AutoPilotPlugins
/
APM
/
APMLightsComponent
.
cc
\
src
/
AutoPilotPlugins
/
APM
/
APMSubFrameComponent
.
cc
\
...
...
src/AutoPilotPlugins/APM/APMAutoPilotPlugin.cc
View file @
b912322e
...
...
@@ -25,6 +25,7 @@
#include "APMCameraComponent.h"
#include "APMLightsComponent.h"
#include "APMSubFrameComponent.h"
#include "APMFollowComponent.h"
#include "ESP8266Component.h"
#include "APMHeliComponent.h"
#include "QGCApplication.h"
...
...
@@ -51,6 +52,7 @@ APMAutoPilotPlugin::APMAutoPilotPlugin(Vehicle* vehicle, QObject* parent)
,
_tuningComponent
(
nullptr
)
,
_esp8266Component
(
nullptr
)
,
_heliComponent
(
nullptr
)
,
_followComponent
(
nullptr
)
{
#if !defined(NO_SERIAL_LINK) && !defined(__android__)
connect
(
vehicle
->
parameterManager
(),
&
ParameterManager
::
parametersReadyChanged
,
this
,
&
APMAutoPilotPlugin
::
_checkForBadCubeBlack
);
...
...
@@ -101,6 +103,13 @@ const QVariantList& APMAutoPilotPlugin::vehicleComponents(void)
_safetyComponent
->
setupTriggerSignals
();
_components
.
append
(
QVariant
::
fromValue
((
VehicleComponent
*
)
_safetyComponent
));
if
((
qobject_cast
<
ArduCopterFirmwarePlugin
*>
(
_vehicle
->
firmwarePlugin
())
||
qobject_cast
<
ArduCopterFirmwarePlugin
*>
(
_vehicle
->
firmwarePlugin
()))
&&
_vehicle
->
parameterManager
()
->
parameterExists
(
-
1
,
QStringLiteral
(
"FOLL_ENABLE"
)))
{
_followComponent
=
new
APMFollowComponent
(
_vehicle
,
this
);
_followComponent
->
setupTriggerSignals
();
_components
.
append
(
QVariant
::
fromValue
((
VehicleComponent
*
)
_followComponent
));
}
if
(
_vehicle
->
vehicleType
()
==
MAV_TYPE_HELICOPTER
)
{
_heliComponent
=
new
APMHeliComponent
(
_vehicle
,
this
);
_heliComponent
->
setupTriggerSignals
();
...
...
src/AutoPilotPlugins/APM/APMAutoPilotPlugin.h
View file @
b912322e
...
...
@@ -27,6 +27,7 @@ class APMLightsComponent;
class
APMSubFrameComponent
;
class
ESP8266Component
;
class
APMHeliComponent
;
class
APMFollowComponent
;
/// This is the APM specific implementation of the AutoPilot class.
class
APMAutoPilotPlugin
:
public
AutoPilotPlugin
...
...
@@ -56,6 +57,7 @@ protected:
APMTuningComponent
*
_tuningComponent
;
ESP8266Component
*
_esp8266Component
;
APMHeliComponent
*
_heliComponent
;
APMFollowComponent
*
_followComponent
;
#if !defined(NO_SERIAL_LINK) && !defined(__android__)
private
slots
:
...
...
src/AutoPilotPlugins/APM/APMFollowComponent.FactMetaData.json
0 → 100644
View file @
b912322e
[
{
"name"
:
"angle"
,
"shortDescription"
:
"Angle from ground station to vehicle"
,
"type"
:
"double"
,
"min"
:
0
,
"max"
:
360
,
"decimalPlaces"
:
1
,
"units"
:
"deg"
,
"defaultValue"
:
45
},
{
"name"
:
"distance"
,
"shortDescription"
:
"Horizontal distance from ground station to vehicle"
,
"type"
:
"double"
,
"min"
:
0
,
"decimalPlaces"
:
1
,
"units"
:
"m"
,
"defaultValue"
:
5
},
{
"name"
:
"height"
,
"shortDescription"
:
"Vertical distance from ground station to vehicle"
,
"type"
:
"double"
,
"min"
:
0
,
"decimalPlaces"
:
1
,
"units"
:
"m"
,
"defaultValue"
:
5
}
]
src/AutoPilotPlugins/APM/APMFollowComponent.cc
0 → 100644
View file @
b912322e
/****************************************************************************
*
* (c) 2009-2016 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 "APMFollowComponent.h"
#include "APMAutoPilotPlugin.h"
#include "APMAirframeComponent.h"
#include "ParameterManager.h"
APMFollowComponent
::
APMFollowComponent
(
Vehicle
*
vehicle
,
AutoPilotPlugin
*
autopilot
,
QObject
*
parent
)
:
VehicleComponent
(
vehicle
,
autopilot
,
parent
),
_name
(
tr
(
"Follow Me"
))
{
}
QString
APMFollowComponent
::
name
(
void
)
const
{
return
_name
;
}
QString
APMFollowComponent
::
description
(
void
)
const
{
return
tr
(
"Follow Me Setup is used to configure support for the vehicle following the ground station location."
);
}
QString
APMFollowComponent
::
iconResource
(
void
)
const
{
return
QStringLiteral
(
"/qmlimages/FollowComponentIcon.png"
);
}
QUrl
APMFollowComponent
::
setupSource
(
void
)
const
{
return
QUrl
::
fromUserInput
(
QStringLiteral
(
"qrc:/qml/APMFollowComponent.qml"
));
}
QUrl
APMFollowComponent
::
summaryQmlSource
(
void
)
const
{
return
QUrl
::
fromUserInput
(
QStringLiteral
(
"qrc:/qml/APMFollowComponentSummary.qml"
));
}
src/AutoPilotPlugins/APM/APMFollowComponent.h
0 → 100644
View file @
b912322e
/****************************************************************************
*
* (c) 2009-2016 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 "VehicleComponent.h"
class
APMFollowComponent
:
public
VehicleComponent
{
Q_OBJECT
public:
APMFollowComponent
(
Vehicle
*
vehicle
,
AutoPilotPlugin
*
autopilot
,
QObject
*
parent
=
nullptr
);
// Overrides from VehicleComponent
QStringList
setupCompleteChangedTriggerList
(
void
)
const
override
{
return
QStringList
();
}
// Virtuals from VehicleComponent
QString
name
(
void
)
const
override
;
QString
description
(
void
)
const
override
;
QString
iconResource
(
void
)
const
override
;
bool
requiresSetup
(
void
)
const
override
{
return
false
;
}
bool
setupComplete
(
void
)
const
override
{
return
true
;
}
QUrl
setupSource
(
void
)
const
override
;
QUrl
summaryQmlSource
(
void
)
const
override
;
bool
allowSetupWhileArmed
(
void
)
const
override
{
return
true
;
}
bool
allowSetupWhileFlying
(
void
)
const
override
{
return
true
;
}
private:
const
QString
_name
;
QVariantList
_summaryItems
;
};
src/AutoPilotPlugins/APM/APMFollowComponent.qml
0 → 100644
View file @
b912322e
This diff is collapsed.
Click to expand it.
src/AutoPilotPlugins/APM/APMFollowComponentController.cc
0 → 100644
View file @
b912322e
/****************************************************************************
*
* (c) 2009-2016 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 "APMFollowComponentController.h"
const
char
*
APMFollowComponentController
::
settingsGroup
=
"APMFollow"
;
const
char
*
APMFollowComponentController
::
angleName
=
"angle"
;
const
char
*
APMFollowComponentController
::
distanceName
=
"distance"
;
const
char
*
APMFollowComponentController
::
heightName
=
"height"
;
APMFollowComponentController
::
APMFollowComponentController
(
void
)
:
_metaDataMap
(
FactMetaData
::
createMapFromJsonFile
(
QStringLiteral
(
":/json/APMFollowComponent.FactMetaData.json"
),
this
))
,
_angleFact
(
settingsGroup
,
_metaDataMap
[
angleName
])
,
_distanceFact
(
settingsGroup
,
_metaDataMap
[
distanceName
])
,
_heightFact
(
settingsGroup
,
_metaDataMap
[
heightName
])
{
}
src/AutoPilotPlugins/APM/APMFollowComponentController.h
0 → 100644
View file @
b912322e
/****************************************************************************
*
* (c) 2009-2016 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 "FactPanelController.h"
class
APMFollowComponentController
:
public
FactPanelController
{
Q_OBJECT
public:
APMFollowComponentController
(
void
);
Q_PROPERTY
(
Fact
*
angle
READ
angleFact
CONSTANT
)
Q_PROPERTY
(
Fact
*
distance
READ
distanceFact
CONSTANT
)
Q_PROPERTY
(
Fact
*
height
READ
heightFact
CONSTANT
)
Fact
*
angleFact
(
void
)
{
return
&
_angleFact
;
}
Fact
*
distanceFact
(
void
)
{
return
&
_distanceFact
;
}
Fact
*
heightFact
(
void
)
{
return
&
_heightFact
;
}
static
const
char
*
settingsGroup
;
static
const
char
*
angleName
;
static
const
char
*
distanceName
;
static
const
char
*
heightName
;
private:
QMap
<
QString
,
FactMetaData
*>
_metaDataMap
;
SettingsFact
_angleFact
;
SettingsFact
_distanceFact
;
SettingsFact
_heightFact
;
};
src/AutoPilotPlugins/APM/APMFollowComponentSummary.qml
0 → 100644
View file @
b912322e
/****************************************************************************
*
* (c) 2009-2016 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.
*
****************************************************************************/
import
QtQuick
2.3
import
QtQuick
.
Controls
1.2
import
QGroundControl
.
FactSystem
1.0
import
QGroundControl
.
FactControls
1.0
import
QGroundControl
.
Controls
1.0
import
QGroundControl
.
Palette
1.0
Item
{
anchors.fill
:
parent
FactPanelController
{
id
:
controller
;
}
property
Fact
_batt1Monitor
:
controller
.
getParameterFact
(
-
1
,
"
BATT_MONITOR
"
)
property
Fact
_batt2Monitor
:
controller
.
getParameterFact
(
-
1
,
"
BATT2_MONITOR
"
,
false
/* reportMissing */
)
property
bool
_batt2MonitorAvailable
:
controller
.
parameterExists
(
-
1
,
"
BATT2_MONITOR
"
)
property
bool
_batt1MonitorEnabled
:
_batt1Monitor
.
rawValue
!==
0
property
bool
_batt2MonitorEnabled
:
_batt2MonitorAvailable
&&
_batt2Monitor
.
rawValue
!==
0
property
Fact
_battCapacity
:
controller
.
getParameterFact
(
-
1
,
"
BATT_CAPACITY
"
,
false
/* reportMissing */
)
property
Fact
_batt2Capacity
:
controller
.
getParameterFact
(
-
1
,
"
BATT2_CAPACITY
"
,
false
/* reportMissing */
)
property
bool
_battCapacityAvailable
:
controller
.
parameterExists
(
-
1
,
"
BATT_CAPACITY
"
)
Column
{
anchors.fill
:
parent
VehicleSummaryRow
{
labelText
:
qsTr
(
"
Batt1 monitor
"
)
valueText
:
_batt1Monitor
.
enumStringValue
}
VehicleSummaryRow
{
labelText
:
qsTr
(
"
Batt1 capacity
"
)
valueText
:
_batt1MonitorEnabled
?
_battCapacity
.
valueString
+
"
"
+
_battCapacity
.
units
:
""
visible
:
_batt1MonitorEnabled
}
VehicleSummaryRow
{
labelText
:
qsTr
(
"
Batt2 monitor
"
)
valueText
:
_batt2MonitorAvailable
?
_batt2Monitor
.
enumStringValue
:
""
visible
:
_batt2MonitorAvailable
}
VehicleSummaryRow
{
labelText
:
qsTr
(
"
Batt2 capacity
"
)
valueText
:
_batt2MonitorEnabled
?
_batt2Capacity
.
valueString
+
"
"
+
_batt2Capacity
.
units
:
""
visible
:
_batt2MonitorEnabled
}
}
}
src/FactSystem/FactControls/FactPanelController.cc
View file @
b912322e
...
...
@@ -29,6 +29,10 @@ FactPanelController::FactPanelController()
}
else
{
_vehicle
=
qgcApp
()
->
toolbox
()
->
multiVehicleManager
()
->
offlineEditingVehicle
();
}
_missingParametersTimer
.
setInterval
(
500
);
_missingParametersTimer
.
setSingleShot
(
true
);
connect
(
&
_missingParametersTimer
,
&
QTimer
::
timeout
,
this
,
&
FactPanelController
::
_checkForMissingParameters
);
}
void
FactPanelController
::
_notifyPanelMissingParameter
(
const
QString
&
missingParam
)
...
...
@@ -114,3 +118,29 @@ void FactPanelController::_showInternalError(const QString& errorMsg)
qCWarning
(
FactPanelControllerLog
)
<<
"Internal Error"
<<
errorMsg
;
qgcApp
()
->
showMessage
(
errorMsg
);
}
void
FactPanelController
::
getMissingParameters
(
QStringList
rgNames
)
{
for
(
const
QString
&
name
:
rgNames
)
{
_missingParameterWaitList
.
append
(
name
);
_vehicle
->
parameterManager
()
->
refreshParameter
(
MAV_COMP_ID_AUTOPILOT1
,
name
);
}
_missingParametersTimer
.
start
();
}
void
FactPanelController
::
_checkForMissingParameters
(
void
)
{
QStringList
waitList
=
_missingParameterWaitList
;
for
(
const
QString
&
name
:
waitList
)
{
if
(
_vehicle
->
parameterManager
()
->
parameterExists
(
MAV_COMP_ID_AUTOPILOT1
,
name
))
{
_missingParameterWaitList
.
removeOne
(
name
);
}
}
if
(
_missingParameterWaitList
.
isEmpty
())
{
emit
missingParametersAvailable
();
}
else
{
_missingParametersTimer
.
start
();
}
}
src/FactSystem/FactControls/FactPanelController.h
View file @
b912322e
...
...
@@ -34,6 +34,12 @@ public:
Q_INVOKABLE
Fact
*
getParameterFact
(
int
componentId
,
const
QString
&
name
,
bool
reportMissing
=
true
);
Q_INVOKABLE
bool
parameterExists
(
int
componentId
,
const
QString
&
name
);
/// Queries the vehicle for parameters which were not available on initial download but should be available now.
/// Signals missingParametersAvailable when done. Only works for MAV_COMP_ID_AUTOPILOT1 parameters.
Q_INVOKABLE
void
getMissingParameters
(
QStringList
rgNames
);
signals:
void
missingParametersAvailable
(
void
);
protected:
/// Checks for existence of the specified parameters
...
...
@@ -47,10 +53,15 @@ protected:
UASInterface
*
_uas
=
nullptr
;
AutoPilotPlugin
*
_autopilot
=
nullptr
;
private
slots
:
void
_checkForMissingParameters
(
void
);
private:
void
_notifyPanelMissingParameter
(
const
QString
&
missingParam
);
void
_notifyPanelErrorMsg
(
const
QString
&
errorMsg
);
void
_showInternalError
(
const
QString
&
errorMsg
);
QStringList
_delayedMissingParams
;
QStringList
_missingParameterWaitList
;
QTimer
_missingParametersTimer
;
};
src/FirmwarePlugin/APM/APMParameterFactMetaData.Copter.3.6.xml
View file @
b912322e
...
...
@@ -3507,7 +3507,7 @@
<field
name=
"Units"
>
m
</field>
<field
name=
"UnitText"
>
meters
</field>
</param>
<param
humanName=
"Follow offset type"
name=
"FOLL_OFS_TYPE"
documentation=
"Follow offset type"
user=
"Standard"
>
<param
humanName=
"Follow offset type"
name=
"
ffol
FOLL_OFS_TYPE"
documentation=
"Follow offset type"
user=
"Standard"
>
<values>
<value
code=
"0"
>
North-East-Down
</value>
<value
code=
" 1"
>
Relative to lead vehicle heading
</value>
...
...
src/FirmwarePlugin/APM/APMResources.qrc
View file @
b912322e
...
...
@@ -7,10 +7,12 @@
<file alias="APMCameraComponentSummary.qml">../../AutoPilotPlugins/APM/APMCameraComponentSummary.qml</file>
<file alias="APMFlightModesComponent.qml">../../AutoPilotPlugins/APM/APMFlightModesComponent.qml</file>
<file alias="APMFlightModesComponentSummary.qml">../../AutoPilotPlugins/APM/APMFlightModesComponentSummary.qml</file>
<file alias="APMFollowComponent.qml">../../AutoPilotPlugins/APM/APMFollowComponent.qml</file>
<file alias="APMFollowComponentSummary.qml">../../AutoPilotPlugins/APM/APMFollowComponentSummary.qml</file>
<file alias="APMHeliComponent.qml">../../AutoPilotPlugins/APM/APMHeliComponent.qml</file>
<file alias="APMLightsComponent.qml">../../AutoPilotPlugins/APM/APMLightsComponent.qml</file>
<file alias="APMLightsComponentSummary.qml">../../AutoPilotPlugins/APM/APMLightsComponentSummary.qml</file>
<file alias="APMMotorComponent.qml">../../AutoPilotPlugins/APM/APMMotorComponent.qml</file>
<file alias="APMMotorComponent.qml">../../AutoPilotPlugins/APM/APMMotorComponent.qml</file>
<file alias="APMSubFrameComponent.qml">../../AutoPilotPlugins/APM/APMSubFrameComponent.qml</file>
<file alias="APMSubFrameComponentSummary.qml">../../AutoPilotPlugins/APM/APMSubFrameComponentSummary.qml</file>
<file alias="APMSubMotorComponent.qml">../../AutoPilotPlugins/APM/APMSubMotorComponent.qml</file>
...
...
@@ -37,6 +39,7 @@
<file alias="APM/MavCmdInfoRover.json">MavCmdInfoRover.json</file>
<file alias="APM/MavCmdInfoSub.json">MavCmdInfoSub.json</file>
<file alias="APM/MavCmdInfoVTOL.json">MavCmdInfoVTOL.json</file>
<file alias="APMFollowComponent.FactMetaData.json">../../AutoPilotPlugins/APM/APMFollowComponent.FactMetaData.json</file>
</qresource>
<qresource prefix="/FirmwarePlugin/APM">
<file alias="APMParameterFactMetaData.Plane.3.8.xml">APMParameterFactMetaData.Plane.3.8.xml</file>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment