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
2b206c00
Commit
2b206c00
authored
Oct 05, 2015
by
Don Gagne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
New toolbar dropdown support
- select active vehicle - arm/disarm - select flight mode
parent
62d95365
Changes
19
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
322 additions
and
176 deletions
+322
-176
AutoPilotPlugin.cc
src/AutoPilotPlugins/AutoPilotPlugin.cc
+0
-6
AutoPilotPlugin.h
src/AutoPilotPlugins/AutoPilotPlugin.h
+0
-4
SensorsComponent.cc
src/AutoPilotPlugins/PX4/SensorsComponent.cc
+0
-1
PX4FirmwarePlugin.cc
src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc
+1
-1
Joystick.cc
src/Joystick/Joystick.cc
+27
-20
Joystick.h
src/Joystick/Joystick.h
+4
-3
QmlObjectListModel.cc
src/QmlControls/QmlObjectListModel.cc
+3
-0
MultiVehicleManager.h
src/Vehicle/MultiVehicleManager.h
+1
-1
Vehicle.cc
src/Vehicle/Vehicle.cc
+126
-42
Vehicle.h
src/Vehicle/Vehicle.h
+31
-11
JoystickConfig.qml
src/VehicleSetup/JoystickConfig.qml
+4
-4
SetupView.qml
src/VehicleSetup/SetupView.qml
+3
-3
MockLink.cc
src/comm/MockLink.cc
+0
-1
MavlinkLogTest.cc
src/qgcunittest/MavlinkLogTest.cc
+1
-4
MainWindow.cc
src/ui/MainWindow.cc
+2
-10
MainWindow.h
src/ui/MainWindow.h
+0
-2
WaypointEditableView.cc
src/ui/WaypointEditableView.cc
+1
-0
MainToolBar.qml
src/ui/toolbar/MainToolBar.qml
+118
-60
UASInfoWidget.h
src/ui/uas/UASInfoWidget.h
+0
-3
No files found.
src/AutoPilotPlugins/AutoPilotPlugin.cc
View file @
2b206c00
...
...
@@ -39,7 +39,6 @@ AutoPilotPlugin::AutoPilotPlugin(Vehicle* vehicle, QObject* parent) :
Q_ASSERT
(
vehicle
);
connect
(
_vehicle
->
uas
(),
&
UASInterface
::
disconnected
,
this
,
&
AutoPilotPlugin
::
_uasDisconnected
);
connect
(
_vehicle
->
uas
(),
&
UASInterface
::
armingChanged
,
this
,
&
AutoPilotPlugin
::
armedChanged
);
connect
(
this
,
&
AutoPilotPlugin
::
pluginReadyChanged
,
this
,
&
AutoPilotPlugin
::
_pluginReadyChanged
);
}
...
...
@@ -176,8 +175,3 @@ QString AutoPilotPlugin::readParametersFromStream(QTextStream &stream)
{
return
_getParameterLoader
()
->
readParametersFromStream
(
stream
);
}
bool
AutoPilotPlugin
::
armed
(
void
)
{
return
_vehicle
->
uas
()
->
isArmed
();
}
src/AutoPilotPlugins/AutoPilotPlugin.h
View file @
2b206c00
...
...
@@ -63,8 +63,6 @@ public:
/// false: One or more vehicle components require setup
Q_PROPERTY
(
bool
setupComplete
READ
setupComplete
NOTIFY
setupCompleteChanged
)
Q_PROPERTY
(
bool
armed
READ
armed
NOTIFY
armedChanged
)
/// Reset all parameters to their default values
Q_INVOKABLE
void
resetAllParametersToDefaults
(
void
);
...
...
@@ -117,7 +115,6 @@ public:
// Property accessors
bool
pluginReady
(
void
)
{
return
_pluginReady
;
}
bool
setupComplete
(
void
);
bool
armed
(
void
);
Vehicle
*
vehicle
(
void
)
{
return
_vehicle
;
}
...
...
@@ -125,7 +122,6 @@ signals:
void
pluginReadyChanged
(
bool
pluginReady
);
void
setupCompleteChanged
(
bool
setupComplete
);
void
parameterListProgress
(
float
value
);
void
armedChanged
(
bool
armed
);
protected:
/// All access to AutoPilotPugin objects is through getInstanceForAutoPilotPlugin
...
...
src/AutoPilotPlugins/PX4/SensorsComponent.cc
View file @
2b206c00
...
...
@@ -115,7 +115,6 @@ QUrl SensorsComponent::summaryQmlSource(void) const
{
QString
summaryQml
;
qDebug
()
<<
_uas
->
getSystemType
();
if
(
_uas
->
getSystemType
()
==
MAV_TYPE_FIXED_WING
||
_uas
->
getSystemType
()
==
MAV_TYPE_VTOL_DUOROTOR
||
_uas
->
getSystemType
()
==
MAV_TYPE_VTOL_QUADROTOR
||
...
...
src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc
View file @
2b206c00
...
...
@@ -191,5 +191,5 @@ void PX4FirmwarePlugin::adjustMavlinkMessage(mavlink_message_t* message)
bool
PX4FirmwarePlugin
::
isCapable
(
FirmwareCapabilities
capabilities
)
{
return
capabilities
==
MavCmdPreflightStorageCapability
;
return
capabilities
&&
(
MavCmdPreflightStorageCapability
|
SetFlightModeCapability
)
;
}
src/Joystick/Joystick.cc
View file @
2b206c00
...
...
@@ -42,7 +42,7 @@ QGC_LOGGING_CATEGORY(JoystickValuesLog, "JoystickValuesLog")
const
char
*
Joystick
::
_settingsGroup
=
"Joysticks"
;
const
char
*
Joystick
::
_calibratedSettingsKey
=
"Calibrated"
;
const
char
*
Joystick
::
_buttonActionSettingsKey
=
"ButtonAction%1"
;
const
char
*
Joystick
::
_buttonActionSettingsKey
=
"ButtonAction
Name
%1"
;
const
char
*
Joystick
::
_throttleModeSettingsKey
=
"ThrottleMode"
;
const
char
*
Joystick
::
_rgFunctionSettingsKey
[
Joystick
::
maxFunction
]
=
{
...
...
@@ -144,10 +144,8 @@ void Joystick::_loadSettings(void)
}
for
(
int
button
=
0
;
button
<
_cButtons
;
button
++
)
{
_rgButtonActions
[
button
]
=
settings
.
value
(
QString
(
_buttonActionSettingsKey
).
arg
(
button
),
-
1
).
toInt
(
&
convertOk
);
badSettings
|=
!
convertOk
;
qCDebug
(
JoystickLog
)
<<
"_loadSettings button:action:badsettings"
<<
button
<<
_rgButtonActions
[
button
]
<<
badSettings
;
_rgButtonActions
[
button
]
=
settings
.
value
(
QString
(
_buttonActionSettingsKey
).
arg
(
button
),
QString
()).
toString
();
qCDebug
(
JoystickLog
)
<<
"_loadSettings button:action"
<<
button
<<
_rgButtonActions
[
button
];
}
if
(
badSettings
)
{
...
...
@@ -322,10 +320,9 @@ void Joystick::run(void)
if
(
buttonIndex
>=
reservedButtonCount
)
{
// Button is above firmware reserved set
int
buttonAction
=
_rgButtonActions
[
buttonIndex
];
if
(
buttonAction
!=
-
1
)
{
qCDebug
(
JoystickLog
)
<<
"buttonActionTriggered"
<<
buttonAction
;
emit
buttonActionTriggered
(
buttonAction
);
QString
buttonAction
=
_rgButtonActions
[
buttonIndex
];
if
(
!
buttonAction
.
isEmpty
())
{
_buttonAction
(
buttonAction
);
}
}
}
...
...
@@ -369,7 +366,8 @@ void Joystick::startPolling(Vehicle* vehicle)
UAS
*
uas
=
_activeVehicle
->
uas
();
connect
(
this
,
&
Joystick
::
manualControl
,
uas
,
&
UAS
::
setExternalControlSetpoint
);
connect
(
this
,
&
Joystick
::
buttonActionTriggered
,
uas
,
&
UAS
::
triggerAction
);
// FIXME: ****
//connect(this, &Joystick::buttonActionTriggered, uas, &UAS::triggerAction);
_exitThread
=
false
;
start
();
...
...
@@ -382,7 +380,8 @@ void Joystick::stopPolling(void)
UAS
*
uas
=
_activeVehicle
->
uas
();
disconnect
(
this
,
&
Joystick
::
manualControl
,
uas
,
&
UAS
::
setExternalControlSetpoint
);
disconnect
(
this
,
&
Joystick
::
buttonActionTriggered
,
uas
,
&
UAS
::
triggerAction
);
// FIXME: ****
//disconnect(this, &Joystick::buttonActionTriggered, uas, &UAS::triggerAction);
_exitThread
=
true
;
}
...
...
@@ -435,27 +434,27 @@ int Joystick::getFunctionAxis(AxisFunction_t function)
QStringList
Joystick
::
actions
(
void
)
{
QStringList
list
;
foreach
(
QAction
*
action
,
MultiVehicleManager
::
instance
()
->
activeVehicle
()
->
uas
()
->
getActions
())
{
list
+=
action
->
text
();
}
list
<<
"Arm"
<<
"Disarm"
;
return
list
;
}
void
Joystick
::
setButtonAction
(
int
button
,
int
action
)
void
Joystick
::
setButtonAction
(
int
button
,
const
QString
&
action
)
{
if
(
button
<
0
||
button
>
_cButtons
)
{
qCWarning
(
JoystickLog
)
<<
"Invalid button index"
<<
button
;
return
;
}
qDebug
()
<<
"setButtonAction"
<<
action
;
_rgButtonActions
[
button
]
=
action
;
_saveSettings
();
emit
buttonActionsChanged
(
buttonActions
());
}
int
Joystick
::
getButtonAction
(
int
button
)
QString
Joystick
::
getButtonAction
(
int
button
)
{
if
(
button
<
0
||
button
>
_cButtons
)
{
qCWarning
(
JoystickLog
)
<<
"Invalid button index"
<<
button
;
...
...
@@ -512,9 +511,6 @@ void Joystick::stopCalibrationMode(CalibrationMode_t mode)
if
(
mode
==
CalibrationModeOff
)
{
qWarning
()
<<
"Incorrect mode: CalibrationModeOff"
;
return
;
}
else
if
(
mode
!=
_calibrationMode
)
{
qWarning
()
<<
"Incorrect mode sequence request:active"
<<
mode
<<
_calibrationMode
;
return
;
}
if
(
mode
==
CalibrationModeCalibrating
)
{
...
...
@@ -527,4 +523,15 @@ void Joystick::stopCalibrationMode(CalibrationMode_t mode)
}
}
void
Joystick
::
_buttonAction
(
const
QString
&
action
)
{
if
(
action
==
"Arm"
)
{
_activeVehicle
->
setArmed
(
true
);
}
else
if
(
action
==
"Disarm"
)
{
_activeVehicle
->
setArmed
(
false
);
}
else
{
qCDebug
(
JoystickLog
)
<<
"_buttonAction unknown action:"
<<
action
;
}
}
#endif // __mobile__
src/Joystick/Joystick.h
View file @
2b206c00
...
...
@@ -73,8 +73,8 @@ public:
Q_PROPERTY
(
QStringList
actions
READ
actions
CONSTANT
)
Q_PROPERTY
(
QVariantList
buttonActions
READ
buttonActions
NOTIFY
buttonActionsChanged
)
Q_INVOKABLE
void
setButtonAction
(
int
button
,
int
action
);
Q_INVOKABLE
int
getButtonAction
(
int
button
);
Q_INVOKABLE
void
setButtonAction
(
int
button
,
const
QString
&
action
);
Q_INVOKABLE
QString
getButtonAction
(
int
button
);
Q_PROPERTY
(
int
throttleMode
READ
throttleMode
WRITE
setThrottleMode
NOTIFY
throttleModeChanged
)
...
...
@@ -135,6 +135,7 @@ private:
void
_saveSettings
(
void
);
void
_loadSettings
(
void
);
float
_adjustRange
(
int
value
,
Calibration_t
calibration
);
void
_buttonAction
(
const
QString
&
action
);
// Override from QThread
virtual
void
run
(
void
);
...
...
@@ -158,7 +159,7 @@ private:
static
const
int
_cButtons
=
12
;
bool
_rgButtonValues
[
_cButtons
];
int
_rgButtonActions
[
_cButtons
];
QString
_rgButtonActions
[
_cButtons
];
quint16
_lastButtonBits
;
ThrottleMode_t
_throttleMode
;
...
...
src/QmlControls/QmlObjectListModel.cc
View file @
2b206c00
...
...
@@ -27,6 +27,7 @@
#include "QmlObjectListModel.h"
#include <QDebug>
#include <QQmlEngine>
const
int
QmlObjectListModel
::
ObjectRole
=
Qt
::
UserRole
;
const
int
QmlObjectListModel
::
TextRole
=
Qt
::
UserRole
+
1
;
...
...
@@ -156,6 +157,8 @@ void QmlObjectListModel::insert(int i, QObject* object)
qWarning
()
<<
"Invalid index index:count"
<<
i
<<
_objectList
.
count
();
}
QQmlEngine
::
setObjectOwnership
(
object
,
QQmlEngine
::
CppOwnership
);
_objectList
.
insert
(
i
,
object
);
insertRows
(
i
,
1
);
}
...
...
src/Vehicle/MultiVehicleManager.h
View file @
2b206c00
...
...
@@ -58,7 +58,7 @@ public:
/// @return true: continue further processing of this message, false: disregard this message
bool
notifyHeartbeatInfo
(
LinkInterface
*
link
,
int
vehicleId
,
mavlink_heartbeat_t
&
heartbeat
);
Vehicle
*
getVehicleById
(
int
vehicleId
);
Q_INVOKABLE
Vehicle
*
getVehicleById
(
int
vehicleId
);
void
setHomePositionForAllVehicles
(
double
lat
,
double
lon
,
double
alt
);
...
...
src/Vehicle/Vehicle.cc
View file @
2b206c00
This diff is collapsed.
Click to expand it.
src/Vehicle/Vehicle.h
View file @
2b206c00
...
...
@@ -35,6 +35,7 @@
#include "QGCMAVLink.h"
#include "MissionItem.h"
#include "QmlObjectListModel.h"
#include "MAVLinkProtocol.h"
class
UAS
;
class
UASInterface
;
...
...
@@ -62,6 +63,14 @@ public:
Q_PROPERTY
(
bool
homePositionAvailable
READ
homePositionAvailable
NOTIFY
homePositionAvailableChanged
)
Q_PROPERTY
(
QGeoCoordinate
homePosition
READ
homePosition
NOTIFY
homePositionChanged
)
Q_PROPERTY
(
bool
armed
READ
armed
WRITE
setArmed
NOTIFY
armedChanged
)
Q_PROPERTY
(
bool
flightModeSetAvailable
READ
flightModeSetAvailable
CONSTANT
)
Q_PROPERTY
(
QStringList
flightModes
READ
flightModes
CONSTANT
)
Q_PROPERTY
(
QString
flightMode
READ
flightMode
WRITE
setFlightMode
NOTIFY
flightModeChanged
)
Q_PROPERTY
(
bool
hilMode
READ
hilMode
WRITE
setHilMode
NOTIFY
hilModeChanged
)
Q_INVOKABLE
QString
getMavIconColor
();
//-- System Messages
...
...
@@ -87,8 +96,6 @@ public:
Q_PROPERTY
(
double
batteryVoltage
READ
batteryVoltage
NOTIFY
batteryVoltageChanged
)
Q_PROPERTY
(
double
batteryPercent
READ
batteryPercent
NOTIFY
batteryPercentChanged
)
Q_PROPERTY
(
double
batteryConsumed
READ
batteryConsumed
NOTIFY
batteryConsumedChanged
)
Q_PROPERTY
(
bool
systemArmed
READ
systemArmed
NOTIFY
systemArmedChanged
)
Q_PROPERTY
(
QString
currentMode
READ
currentMode
NOTIFY
currentModeChanged
)
Q_PROPERTY
(
QString
systemPixmap
READ
systemPixmap
NOTIFY
systemPixmapChanged
)
Q_PROPERTY
(
int
satelliteCount
READ
satelliteCount
NOTIFY
satelliteCountChanged
)
Q_PROPERTY
(
QString
currentState
READ
currentState
NOTIFY
currentStateChanged
)
...
...
@@ -160,6 +167,17 @@ public:
bool
homePositionAvailable
(
void
);
QGeoCoordinate
homePosition
(
void
);
bool
armed
(
void
)
{
return
_armed
;
}
void
setArmed
(
bool
armed
);
bool
flightModeSetAvailable
(
void
);
QStringList
flightModes
(
void
);
QString
flightMode
(
void
);
void
setFlightMode
(
const
QString
&
flightMode
);
bool
hilMode
(
void
);
void
setHilMode
(
bool
hilMode
);
typedef
enum
{
MessageNone
,
MessageNormal
,
...
...
@@ -206,8 +224,6 @@ public:
double
batteryVoltage
()
{
return
_batteryVoltage
;
}
double
batteryPercent
()
{
return
_batteryPercent
;
}
double
batteryConsumed
()
{
return
_batteryConsumed
;
}
bool
systemArmed
()
{
return
_systemArmed
;
}
QString
currentMode
()
{
return
_currentMode
;
}
QString
systemPixmap
()
{
return
_systemPixmap
;
}
QString
currentState
()
{
return
_currentState
;
}
QString
systemName
()
{
return
_systemName
;
}
...
...
@@ -229,6 +245,9 @@ signals:
void
mavlinkMessageReceived
(
const
mavlink_message_t
&
message
);
void
homePositionAvailableChanged
(
bool
homePositionAvailable
);
void
homePositionChanged
(
const
QGeoCoordinate
&
homePosition
);
void
armedChanged
(
bool
armed
);
void
flightModeChanged
(
const
QString
&
flightMode
);
void
hilModeChanged
(
bool
hilMode
);
/// Used internally to move sendMessage call to main thread
void
_sendMessageOnThread
(
mavlink_message_t
message
);
...
...
@@ -251,9 +270,7 @@ signals:
void
batteryVoltageChanged
();
void
batteryPercentChanged
();
void
batteryConsumedChanged
();
void
systemArmedChanged
();
void
heartbeatTimeoutChanged
();
void
currentModeChanged
();
void
currentConfigChanged
();
void
systemPixmapChanged
();
void
satelliteCountChanged
();
...
...
@@ -282,9 +299,7 @@ private slots:
void
_checkUpdate
();
void
_updateBatteryRemaining
(
UASInterface
*
,
double
voltage
,
double
,
double
percent
,
int
);
void
_updateBatteryConsumedChanged
(
UASInterface
*
,
double
current_consumed
);
void
_updateArmingState
(
bool
armed
);
void
_updateState
(
UASInterface
*
system
,
QString
name
,
QString
description
);
void
_updateMode
(
int
system
,
QString
name
,
QString
description
);
void
_updateName
(
const
QString
&
name
);
void
_setSystemType
(
UASInterface
*
uas
,
unsigned
int
systemType
);
void
_heartbeatTimeout
(
bool
timeout
,
unsigned
int
ms
);
...
...
@@ -301,7 +316,9 @@ private:
void
_loadSettings
(
void
);
void
_saveSettings
(
void
);
void
_startJoystick
(
bool
start
);
void
_handleHomePosition
(
mavlink_message_t
&
message
);
void
_handleHeartbeat
(
mavlink_message_t
&
message
);
bool
_isAirplane
();
void
_addChange
(
int
id
);
float
_oneDecimal
(
float
value
);
...
...
@@ -313,6 +330,7 @@ private:
MAV_AUTOPILOT
_firmwareType
;
FirmwarePlugin
*
_firmwarePlugin
;
AutoPilotPlugin
*
_autopilotPlugin
;
MAVLinkProtocol
*
_mavlink
;
/// List of all links associated with this vehicle. We keep SharedLinkInterface objects
/// which are QSharedPointer's in order to maintain reference counts across threads.
...
...
@@ -357,9 +375,7 @@ private:
double
_batteryVoltage
;
double
_batteryPercent
;
double
_batteryConsumed
;
bool
_systemArmed
;
QString
_currentState
;
QString
_currentMode
;
QString
_systemName
;
QString
_systemPixmap
;
unsigned
int
_currentHeartbeatTimeout
;
...
...
@@ -373,6 +389,10 @@ private:
MissionManager
*
_missionManager
;
QmlObjectListModel
_missionItems
;
bool
_armed
;
///< true: vehicle is armed
uint8_t
_base_mode
;
///< base_mode from HEARTBEAT
uint32_t
_custom_mode
;
///< custom_mode from HEARTBEAT
static
const
char
*
_settingsGroup
;
static
const
char
*
_joystickModeSettingsKey
;
static
const
char
*
_joystickEnabledSettingsKey
;
...
...
src/VehicleSetup/JoystickConfig.qml
View file @
2b206c00
...
...
@@ -482,9 +482,9 @@ QGCView {
QGCCheckBox
{
anchors.verticalCenter
:
parent
.
verticalCenter
checked
:
_activeJoystick
.
buttonActions
[
modelData
]
!=
-
1
checked
:
_activeJoystick
.
buttonActions
[
modelData
]
!=
""
onClicked
:
_activeJoystick
.
setButtonAction
(
modelData
,
checked
?
buttonActionCombo
.
currentIndex
:
-
1
)
onClicked
:
_activeJoystick
.
setButtonAction
(
modelData
,
checked
?
buttonActionCombo
.
textAt
(
buttonActionCombo
.
currentIndex
)
:
""
)
}
Rectangle
{
...
...
@@ -509,9 +509,9 @@ QGCView {
id
:
buttonActionCombo
width
:
ScreenTools
.
defaultFontPixelWidth
*
20
model
:
_activeJoystick
.
actions
currentIndex
:
_activeJoystick
.
buttonActions
[
modelData
]
onActivated
:
_activeJoystick
.
setButtonAction
(
modelData
,
index
)
onActivated
:
_activeJoystick
.
setButtonAction
(
modelData
,
textAt
(
index
))
Component.onCompleted
:
currentIndex
=
find
(
_activeJoystick
.
buttonActions
[
modelData
])
}
}
}
// Repeater
...
...
src/VehicleSetup/SetupView.qml
View file @
2b206c00
...
...
@@ -63,7 +63,7 @@ Rectangle {
function
showFirmwarePanel
()
{
if
(
!
ScreenTools
.
isMobile
)
{
if
(
multiVehicleManager
.
activeVehicleAvailable
&&
multiVehicleManager
.
activeVehicle
.
a
utopilot
.
a
rmed
)
{
if
(
multiVehicleManager
.
activeVehicleAvailable
&&
multiVehicleManager
.
activeVehicle
.
armed
)
{
messagePanelText
=
armedVehicleText
panelLoader
.
sourceComponent
=
messagePanelComponent
}
else
{
...
...
@@ -74,7 +74,7 @@ Rectangle {
function
showJoystickPanel
()
{
if
(
multiVehicleManager
.
activeVehicleAvailable
&&
multiVehicleManager
.
activeVehicle
.
a
utopilot
.
a
rmed
)
{
if
(
multiVehicleManager
.
activeVehicleAvailable
&&
multiVehicleManager
.
activeVehicle
.
armed
)
{
messagePanelText
=
armedVehicleText
panelLoader
.
sourceComponent
=
messagePanelComponent
}
else
{
...
...
@@ -89,7 +89,7 @@ Rectangle {
function
showVehicleComponentPanel
(
vehicleComponent
)
{
if
(
multiVehicleManager
.
activeVehicle
.
a
utopilot
.
a
rmed
)
{
if
(
multiVehicleManager
.
activeVehicle
.
armed
)
{
messagePanelText
=
armedVehicleText
panelLoader
.
sourceComponent
=
messagePanelComponent
}
else
{
...
...
src/comm/MockLink.cc
View file @
2b206c00
...
...
@@ -338,7 +338,6 @@ void MockLink::_handleIncomingMavlinkBytes(const uint8_t* bytes, int cBytes)
break
;
default:
qDebug
()
<<
"MockLink: Unhandled mavlink message, id:"
<<
msg
.
msgid
;
break
;
}
}
...
...
src/qgcunittest/MavlinkLogTest.cc
View file @
2b206c00
...
...
@@ -150,13 +150,10 @@ void MavlinkLogTest::_connectLogWorker(bool arm)
QSignalSpy
spyVehicle
(
MultiVehicleManager
::
instance
(),
SIGNAL
(
activeVehicleChanged
(
Vehicle
*
)));
QCOMPARE
(
spyVehicle
.
wait
(
5000
),
true
);
UAS
*
uas
=
MultiVehicleManager
::
instance
()
->
activeUas
();
QVERIFY
(
uas
);
QDir
logSaveDir
;
if
(
arm
)
{
uas
->
armSystem
(
);
MultiVehicleManager
::
instance
()
->
activeVehicle
()
->
setArmed
(
true
);
QTest
::
qWait
(
1500
);
// Wait long enough for heartbeat to come through
// On Disconnect: We should get a getSaveFileName dialog.
...
...
src/ui/MainWindow.cc
View file @
2b206c00
...
...
@@ -86,8 +86,6 @@ This file is part of the QGROUNDCONTROL project
/// The key under which the Main Window settings are saved
const
char
*
MAIN_SETTINGS_GROUP
=
"QGC_MAINWINDOW"
;
const
char
*
MainWindow
::
_uasControlDockWidgetName
=
"UNMANNED_SYSTEM_CONTROL_DOCKWIDGET"
;
const
char
*
MainWindow
::
_uasListDockWidgetName
=
"UNMANNED_SYSTEM_LIST_DOCKWIDGET"
;
const
char
*
MainWindow
::
_waypointsDockWidgetName
=
"WAYPOINT_LIST_DOCKWIDGET"
;
const
char
*
MainWindow
::
_mavlinkDockWidgetName
=
"MAVLINK_INSPECTOR_DOCKWIDGET"
;
const
char
*
MainWindow
::
_customCommandWidgetName
=
"CUSTOM_COMMAND_DOCKWIDGET"
;
...
...
@@ -388,8 +386,6 @@ void MainWindow::_buildCommonWidgets(void)
};
static
const
struct
DockWidgetInfo
rgDockWidgetInfo
[]
=
{
{
_uasControlDockWidgetName
,
"Control"
,
Qt
::
LeftDockWidgetArea
},
{
_uasListDockWidgetName
,
"Unmanned Systems"
,
Qt
::
RightDockWidgetArea
},
{
_waypointsDockWidgetName
,
"Mission Plan"
,
Qt
::
BottomDockWidgetArea
},
{
_mavlinkDockWidgetName
,
"MAVLink Inspector"
,
Qt
::
RightDockWidgetArea
},
{
_customCommandWidgetName
,
"Custom Command"
,
Qt
::
RightDockWidgetArea
},
...
...
@@ -487,11 +483,7 @@ void MainWindow::_createInnerDockWidget(const QString& widgetName)
QWidget
*
widget
=
NULL
;
if
(
widgetName
==
_uasControlDockWidgetName
)
{
widget
=
new
UASControlWidget
(
this
);
}
else
if
(
widgetName
==
_uasListDockWidgetName
)
{
widget
=
new
UASListWidget
(
this
);
}
else
if
(
widgetName
==
_waypointsDockWidgetName
)
{
if
(
widgetName
==
_waypointsDockWidgetName
)
{
widget
=
new
QGCWaypointListMulti
(
this
);
}
else
if
(
widgetName
==
_mavlinkDockWidgetName
)
{
widget
=
new
QGCMAVLinkInspector
(
MAVLinkProtocol
::
instance
(),
this
);
...
...
@@ -880,7 +872,7 @@ void MainWindow::_loadCurrentViewState(void)
case
VIEW_SIMULATION
:
_buildSimView
();
centerView
=
_simView
;
defaultWidgets
=
"
UNMANNED_SYSTEM_CONTROL_DOCKWIDGET,
WAYPOINT_LIST_DOCKWIDGET,PARAMETER_INTERFACE_DOCKWIDGET,PRIMARY_FLIGHT_DISPLAY_DOCKWIDGET"
;
defaultWidgets
=
"WAYPOINT_LIST_DOCKWIDGET,PARAMETER_INTERFACE_DOCKWIDGET,PRIMARY_FLIGHT_DISPLAY_DOCKWIDGET"
;
break
;
default:
...
...
src/ui/MainWindow.h
View file @
2b206c00
...
...
@@ -41,11 +41,9 @@ This file is part of the QGROUNDCONTROL project
#include "LinkManager.h"
#include "LinkInterface.h"
#include "UASInterface.h"
#include "UASControlWidget.h"
#include "UASInfoWidget.h"
#include "WaypointList.h"
#include "CameraView.h"
#include "UASListWidget.h"
#if (defined QGC_MOUSE_ENABLED_WIN) | (defined QGC_MOUSE_ENABLED_LINUX)
#include "Mouse6dofInput.h"
#endif // QGC_MOUSE_ENABLED_WIN
...
...
src/ui/WaypointEditableView.cc
View file @
2b206c00
...
...
@@ -13,6 +13,7 @@
#include <QDoubleSpinBox>
#include <QDebug>
#include <QGroupBox>
#include <cmath>
#include <qmath.h>
...
...
src/ui/toolbar/MainToolBar.qml
View file @
2b206c00
...
...
@@ -279,24 +279,59 @@ Rectangle {
}
Rectangle
{
id
:
mavIcon
width
:
cellHeight
height
:
cellHeight
visible
:
mainToolBar
.
showMav
QGCButton
{
width
:
ScreenTools
.
defaultFontPixelWidth
*
12
height
:
cellHeight
visible
:
mainToolBar
.
showMav
anchors.verticalCenter
:
parent
.
verticalCenter
color
:
colorBlue
border.color
:
"
#00000000
"
border.width
:
0
Image
{
source
:
activeVehicle
.
systemPixmap
height
:
cellHeight
*
0.75
fillMode
:
Image
.
PreserveAspectFit
anchors.verticalCenter
:
parent
.
verticalCenter
anchors.horizontalCenter
:
parent
.
horizontalCenter
text
:
"
Vehicle
"
+
activeVehicle
.
id
menu
:
vehicleMenu
Menu
{
id
:
vehicleMenu
}
Component
{
id
:
vehicleMenuItemComponent
MenuItem
{
checkable
:
true
checked
:
vehicle
.
active
onTriggered
:
multiVehicleManager
.
activeVehicle
=
vehicle
property
int
vehicleId
:
Number
(
text
.
split
(
"
"
)[
1
])
property
var
vehicle
:
multiVehicleManager
.
getVehicleById
(
vehicleId
)
}
}
property
var
vehicleMenuItems
:
[]
function
updateVehicleMenu
()
{
// Remove old menu items
for
(
var
i
=
0
;
i
<
vehicleMenuItems
.
length
;
i
++
)
{
vehicleMenu
.
removeItem
(
vehicleMenuItems
[
i
])
}
vehicleMenuItems
.
length
=
0
// Add new items
for
(
var
i
=
0
;
i
<
multiVehicleManager
.
vehicles
.
count
;
i
++
)
{
var
vehicle
=
multiVehicleManager
.
vehicles
.
get
(
i
)
var
menuItem
=
vehicleMenuItemComponent
.
createObject
(
null
,
{
"
text
"
:
"
Vehicle
"
+
vehicle
.
id
})
vehicleMenuItems
.
push
(
menuItem
)
vehicleMenu
.
insertItem
(
i
,
menuItem
)
}
}
Component.onCompleted
:
updateVehicleMenu
()
Connections
{
target
:
multiVehicleManager
.
vehicles
onCountChanged
:
parent
.
updateVehicleMenu
}
}
Rectangle
{
id
:
satelitte
width
:
getProportionalDimmension
(
55
)
...
...
@@ -478,69 +513,92 @@ Rectangle {
}
}
Colum
n
{
height
:
cellHeight
*
0.85
width
:
getProportionalDimmension
(
80
)
QGCButto
n
{
width
:
ScreenTools
.
defaultFontPixelWidth
*
11
height
:
cellHeight
anchors.verticalCenter
:
parent
.
verticalCenter
text
:
activeVehicle
.
armed
?
"
Armed
"
:
"
Disarmed
"
Rectangle
{
id
:
armedStatus
width
:
parent
.
width
height
:
parent
.
height
/
2
anchors.horizontalCenter
:
parent
.
horizontalCenter
color
:
"
#00000000
"
border.color
:
"
#00000000
"
border.width
:
0
menu
:
Menu
{
MenuItem
{
enabled
:
!
activeVehicle
.
armed
text
:
"
Arm
"
QGCLabel
{
id
:
armedStatusText
text
:
(
activeVehicle
.
systemArmed
)
?
qsTr
(
"
ARMED
"
)
:
qsTr
(
"
DISARMED
"
)
font.pixelSize
:
ScreenTools
.
smallFontPixelSize
font.weight
:
Font
.
DemiBold
anchors.centerIn
:
parent
color
:
(
activeVehicle
.
systemArmed
)
?
colorOrangeText
:
colorGreenText
onTriggered
:
activeVehicle
.
armed
=
true
}
MenuItem
{
enabled
:
activeVehicle
.
armed
text
:
"
Disarm
"
onTriggered
:
activeVehicle
.
armed
=
false
}
}
}
Rectangle
{
id
:
stateStatus
width
:
parent
.
width
height
:
parent
.
height
/
2
anchors.horizontalCenter
:
parent
.
horizontalCenter
color
:
"
#00000000
"
border.color
:
"
#00000000
"
border.width
:
0
QGCButton
{
width
:
ScreenTools
.
defaultFontPixelWidth
*
15
height
:
cellHeight
anchors.verticalCenter
:
parent
.
verticalCenter
text
:
activeVehicle
.
flightMode
QGCLabel
{
id
:
stateStatusText
text
:
activeVehicle
.
currentState
font.pixelSize
:
ScreenTools
.
smallFontPixelSize
font.weight
:
Font
.
DemiBold
anchors.centerIn
:
parent
color
:
(
activeVehicle
.
currentState
===
"
STANDBY
"
)
?
colorGreenText
:
colorRedText
menu
:
flightModesMenu
Menu
{
id
:
flightModesMenu
}
Component
{
id
:
flightModeMenuItemComponent
MenuItem
{
checkable
:
true
checked
:
activeVehicle
.
flightMode
==
text
onTriggered
:
activeVehicle
.
flightMode
=
text
}
}
property
var
flightModesMenuItems
:
[]
function
updateFlightModesMenu
()
{
// Remove old menu items
for
(
var
i
=
0
;
i
<
flightModesMenuItems
.
length
;
i
++
)
{
flightModesMenu
.
removeItem
(
flightModesMenuItems
[
i
])
}
flightModesMenuItems
.
length
=
0
// Add new items
for
(
var
i
=
0
;
i
<
activeVehicle
.
flightModes
.
length
;
i
++
)
{
var
menuItem
=
flightModeMenuItemComponent
.
createObject
(
null
,
{
"
text
"
:
activeVehicle
.
flightModes
[
i
]
})
flightModesMenuItems
.
push
(
menuItem
)
flightModesMenu
.
insertItem
(
i
,
menuItem
)
}
}
Component.onCompleted
:
updateFlightModesMenu
()
Connections
{
target
:
multiVehicleManager
onActiveVehicleChanged
:
parent
.
updateFlightModesMenu
}
}
Rectangle
{
id
:
modeStatus
width
:
getProportionalDimmension
(
90
)
height
:
cellHeight
color
:
"
#00000000
"
border.
color
:
"
#00000000
"
border.width
:
0
width
:
ScreenTools
.
defaultFontPixelWidth
*
4
height
:
cellHeight
anchors.verticalCenter
:
parent
.
verticalCenter
color
:
colorBlue
border.
width
:
0
visible
:
activeVehicle
.
hilMode
QGCLabel
{
id
:
modeStatusText
text
:
activeVehicle
.
currentMode
font.pixelSize
:
ScreenTools
.
smallFontPixelSize
font.weight
:
Font
.
DemiBold
anchors.horizontalCenter
:
parent
.
horizontalCenter
anchors.verticalCenter
:
parent
.
verticalCenter
color
:
colorWhiteText
anchors.fill
:
parent
horizontalAlignment
:
Text
.
AlignHCenter
verticalAlignment
:
Text
.
AlignVCenter
text
:
"
HIL
"
}
}
}
// Row
}
// Component - activeVehicleComponent
...
...
src/ui/uas/UASInfoWidget.h
View file @
2b206c00
...
...
@@ -74,10 +74,7 @@ public slots:
void
setVoltage
(
UASInterface
*
uas
,
double
voltage
);
void
setChargeLevel
(
UASInterface
*
uas
,
double
chargeLevel
);
void
setTimeRemaining
(
UASInterface
*
uas
,
double
seconds
);
// void setBattery(int uasid, BatteryType type, int cells);
// void valueChanged(int uasid, QString key, double value,quint64 time);
// void actuatorChanged(UASInterface* uas, int actId, double value);
void
refresh
();
protected:
...
...
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