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
b9863c56
Commit
b9863c56
authored
Mar 12, 2011
by
Mariano Lizarraga
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added support for HIL SIM state. Changed the labels that are show for certain modes that SLUGS uses
parent
040e413a
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
117 additions
and
29 deletions
+117
-29
UAS.cc
src/uas/UAS.cc
+57
-9
UAS.h
src/uas/UAS.h
+7
-0
SlugsHilSim.cc
src/ui/SlugsHilSim.cc
+3
-2
UASControlParameters.cpp
src/ui/uas/UASControlParameters.cpp
+37
-11
UASControlWidget.cc
src/ui/uas/UASControlWidget.cc
+13
-7
No files found.
src/uas/UAS.cc
View file @
b9863c56
...
...
@@ -286,30 +286,44 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message)
case
(
uint8_t
)
MAV_MODE_MANUAL
:
mode
=
"MANUAL MODE"
;
break
;
#ifdef MAVLINK_ENABLED_SLUGS
case
(
uint8_t
)
MAV_MODE_AUTO
:
mode
=
"WAYPOINT MODE"
;
break
;
case
(
uint8_t
)
MAV_MODE_GUIDED
:
mode
=
"MID-L CMDS MODE"
;
break
;
case
(
uint8_t
)
MAV_MODE_TEST1
:
mode
=
"PASST MODE"
;
break
;
case
(
uint8_t
)
MAV_MODE_TEST2
:
mode
=
"SEL PT MODE"
;
break
;
#else
case
(
uint8_t
)
MAV_MODE_AUTO
:
mode
=
"AUTO MODE"
;
break
;
case
(
uint8_t
)
MAV_MODE_GUIDED
:
mode
=
"GUIDED MODE"
;
break
;
case
(
uint8_t
)
MAV_MODE_READY
:
mode
=
"READY MODE"
;
break
;
case
(
uint8_t
)
MAV_MODE_TEST1
:
mode
=
"TEST1 MODE"
;
break
;
case
(
uint8_t
)
MAV_MODE_TEST2
:
mode
=
"TEST2 MODE"
;
break
;
#
ifdef MAVLINK_ENABLED_SLUGS
case
(
uint8_t
)
MAV_MODE_
TEST3
:
mode
=
"
HIL
MODE"
;
#
endif
case
(
uint8_t
)
MAV_MODE_
READY
:
mode
=
"
READY
MODE"
;
break
;
#else
case
(
uint8_t
)
MAV_MODE_TEST3
:
mode
=
"TEST3 MODE"
;
break
;
#endif
case
(
uint8_t
)
MAV_MODE_RC_TRAINING
:
mode
=
"RC TRAINING MODE"
;
break
;
...
...
@@ -1404,10 +1418,16 @@ void UAS::getStatusForCode(int statusCode, QString& uasState, QString& stateDesc
uasState
=
tr
(
"EMERGENCY"
);
stateDescription
=
tr
(
"EMERGENCY: Land Immediately!"
);
break
;
case
MAV_STATE_HILSIM
:
uasState
=
tr
(
"HIL SIM"
);
stateDescription
=
tr
(
"HIL Simulation, Sensors read from SIM"
);
break
;
case
MAV_STATE_POWEROFF
:
uasState
=
tr
(
"SHUTDOWN"
);
stateDescription
=
tr
(
"Powering off system."
);
break
;
default:
uasState
=
tr
(
"UNKNOWN"
);
stateDescription
=
tr
(
"Unknown system state"
);
...
...
@@ -2000,12 +2020,14 @@ void UAS::clearWaypointList()
void
UAS
::
halt
()
{
mavlink_message_t
msg
;
// TODO Replace MG System ID with static function call and allow to change ID in GUI
mavlink_msg_action_pack
(
MG
::
SYSTEM
::
ID
,
MG
::
SYSTEM
::
COMPID
,
&
msg
,
this
->
getUASID
(),
MAV_COMP_ID_IMU
,
(
int
)
MAV_ACTION_HALT
);
// Send message twice to increase chance of reception
sendMessage
(
msg
);
sendMessage
(
msg
);
}
void
UAS
::
go
()
...
...
@@ -2035,6 +2057,7 @@ void UAS::home()
*/
void
UAS
::
emergencySTOP
()
{
mavlink_message_t
msg
;
// TODO Replace MG System ID with static function call and allow to change ID in GUI
mavlink_msg_action_pack
(
MG
::
SYSTEM
::
ID
,
MG
::
SYSTEM
::
COMPID
,
&
msg
,
this
->
getUASID
(),
MAV_COMP_ID_IMU
,
(
int
)
MAV_ACTION_EMCY_LAND
);
...
...
@@ -2077,6 +2100,29 @@ bool UAS::emergencyKILL()
return
result
;
}
void
UAS
::
startHil
(){
mavlink_message_t
msg
;
// TODO Replace MG System ID with static function call and allow to change ID in GUI
mavlink_msg_action_pack
(
MG
::
SYSTEM
::
ID
,
MG
::
SYSTEM
::
COMPID
,
&
msg
,
this
->
getUASID
(),
MAV_COMP_ID_IMU
,(
int
)
MAV_ACTION_START_HILSIM
);
// Send message twice to increase chance of reception
sendMessage
(
msg
);
sendMessage
(
msg
);
}
void
UAS
::
stopHil
(){
mavlink_message_t
msg
;
// TODO Replace MG System ID with static function call and allow to change ID in GUI
mavlink_msg_action_pack
(
MG
::
SYSTEM
::
ID
,
MG
::
SYSTEM
::
COMPID
,
&
msg
,
this
->
getUASID
(),
MAV_COMP_ID_IMU
,(
int
)
MAV_ACTION_STOP_HILSIM
);
// Send message twice to increase chance of reception
sendMessage
(
msg
);
sendMessage
(
msg
);
}
void
UAS
::
shutdown
()
{
bool
result
=
false
;
...
...
@@ -2084,6 +2130,7 @@ void UAS::shutdown()
msgBox
.
setIcon
(
QMessageBox
::
Critical
);
msgBox
.
setText
(
"Shutting down the UAS"
);
msgBox
.
setInformativeText
(
"Do you want to shut down the onboard computer?"
);
msgBox
.
setStandardButtons
(
QMessageBox
::
Yes
|
QMessageBox
::
Cancel
);
msgBox
.
setDefaultButton
(
QMessageBox
::
Cancel
);
int
ret
=
msgBox
.
exec
();
...
...
@@ -2101,6 +2148,7 @@ void UAS::shutdown()
// Send message twice to increase chance of reception
sendMessage
(
msg
);
sendMessage
(
msg
);
result
=
true
;
}
}
...
...
src/uas/UAS.h
View file @
b9863c56
...
...
@@ -233,6 +233,13 @@ public slots:
void
home
();
void
halt
();
void
go
();
/** @brief Places the UAV in Hardware-in-the-Loop simulation status **/
void
startHil
();
/** @brief Stops the UAV's Hardware-in-the-Loop simulation status **/
void
stopHil
();
/** @brief Stops the robot system. If it is an MAV, the robot starts the emergency landing procedure **/
void
emergencySTOP
();
...
...
src/ui/SlugsHilSim.cc
View file @
b9863c56
...
...
@@ -108,6 +108,8 @@ void SlugsHilSim::putInHilMode(void){
ui
->
bt_startHil
->
setText
(
buttonCaption
);
activeUas
->
startHil
();
}
else
{
ui
->
bt_startHil
->
setChecked
(
false
);
}
...
...
@@ -120,6 +122,7 @@ void SlugsHilSim::putInHilMode(void){
ui
->
bt_startHil
->
setText
(
buttonCaption
);
rxSocket
->
disconnectFromHost
();
activeUas
->
stopHil
();
}
}
...
...
@@ -151,8 +154,6 @@ void SlugsHilSim::activeUasSet(UASInterface* uas){
if
(
uas
!=
NULL
)
{
activeUas
=
static_cast
<
UAS
*>
(
uas
);
//connect(uas, SIGNAL())
}
}
...
...
src/ui/uas/UASControlParameters.cpp
View file @
b9863c56
...
...
@@ -3,11 +3,19 @@
#define CONTROL_MODE_LOCKED "MODE LOCKED"
#define CONTROL_MODE_MANUAL "MODE MANUAL"
#define CONTROL_MODE_GUIDED "MODE GUIDED"
#define CONTROL_MODE_AUTO "MODE AUTO"
#define CONTROL_MODE_TEST1 "MODE TEST1"
#define CONTROL_MODE_TEST2 "MODE TEST2"
#define CONTROL_MODE_TEST3 "MODE TEST3"
#ifdef MAVLINK_ENABLED_SLUGS
#define CONTROL_MODE_GUIDED "MODE MID-L CMDS"
#define CONTROL_MODE_AUTO "MODE WAYPOINT"
#define CONTROL_MODE_TEST1 "MODE PASST"
#define CONTROL_MODE_TEST2 "MODE SEL PT"
#else
#define CONTROL_MODE_GUIDED "MODE GUIDED"
#define CONTROL_MODE_AUTO "MODE AUTO"
#define CONTROL_MODE_TEST1 "MODE TEST1"
#define CONTROL_MODE_TEST2 "MODE TEST2"
#endif
#define CONTROL_MODE_READY "MODE TEST3"
#define CONTROL_MODE_RC_TRAINING "RC SIMULATION"
...
...
@@ -51,20 +59,38 @@ void UASControlParameters::changedMode(int mode)
case
(
uint8_t
)
MAV_MODE_MANUAL
:
modeTemp
=
"MANUAL MODE"
;
break
;
#ifdef MAVLINK_ENABLED_SLUGS
case
(
uint8_t
)
MAV_MODE_AUTO
:
modeTemp
=
"
AUTO
MODE"
;
modeTemp
=
"
WAYPOINT
MODE"
;
break
;
case
(
uint8_t
)
MAV_MODE_GUIDED
:
modeTemp
=
"
GUIDED
MODE"
;
modeTemp
=
"
MID-L CMDS
MODE"
;
break
;
case
(
uint8_t
)
MAV_MODE_READY
:
modeTemp
=
"READY MODE"
;
case
(
uint8_t
)
MAV_MODE_TEST1
:
modeTemp
=
"PASST MODE"
;
break
;
case
(
uint8_t
)
MAV_MODE_TEST2
:
modeTemp
=
"SEL PT MODE"
;
break
;
#else
case
(
uint8_t
)
MAV_MODE_AUTO
:
mode
=
"AUTO MODE"
;
break
;
case
(
uint8_t
)
MAV_MODE_GUIDED
:
mode
=
"GUIDED MODE"
;
break
;
case
(
uint8_t
)
MAV_MODE_TEST1
:
mode
Temp
=
"TEST1 MODE"
;
mode
=
"TEST1 MODE"
;
break
;
case
(
uint8_t
)
MAV_MODE_TEST2
:
modeTemp
=
"TEST2 MODE"
;
mode
=
"TEST2 MODE"
;
break
;
#endif
case
(
uint8_t
)
MAV_MODE_READY
:
modeTemp
=
"READY MODE"
;
break
;
break
;
case
(
uint8_t
)
MAV_MODE_TEST3
:
modeTemp
=
"TEST3 MODE"
;
...
...
src/ui/uas/UASControlWidget.cc
View file @
b9863c56
...
...
@@ -45,16 +45,21 @@ This file is part of the PIXHAWK project
#define CONTROL_MODE_LOCKED "MODE LOCKED"
#define CONTROL_MODE_MANUAL "MODE MANUAL"
#define CONTROL_MODE_GUIDED "MODE GUIDED"
#define CONTROL_MODE_AUTO "MODE AUTO"
#define CONTROL_MODE_TEST1 "MODE TEST1"
#define CONTROL_MODE_TEST2 "MODE TEST2"
#ifdef MAVLINK_ENABLED_SLUGS
#define CONTROL_MODE_TEST3 "MODE HIL"
#define CONTROL_MODE_GUIDED "MODE MID-L CMDS"
#define CONTROL_MODE_AUTO "MODE WAYPOINT"
#define CONTROL_MODE_TEST1 "MODE PASST"
#define CONTROL_MODE_TEST2 "MODE SEL PT"
#else
#define CONTROL_MODE_TEST3 "MODE TEST3"
#define CONTROL_MODE_GUIDED "MODE GUIDED"
#define CONTROL_MODE_AUTO "MODE AUTO"
#define CONTROL_MODE_TEST1 "MODE TEST1"
#define CONTROL_MODE_TEST2 "MODE TEST2"
#endif
#define CONTROL_MODE_READY "MODE TEST3"
#define CONTROL_MODE_TEST3 "MODE TEST3"
#define CONTROL_MODE_READY "MODE READY"
#define CONTROL_MODE_RC_TRAINING "RC SIMULATION"
#define CONTROL_MODE_LOCKED_INDEX 1
...
...
@@ -91,6 +96,7 @@ engineOn(false)
ui
.
modeComboBox
->
setCurrentIndex
(
0
);
ui
.
gridLayout
->
setAlignment
(
Qt
::
AlignTop
);
}
void
UASControlWidget
::
setUAS
(
UASInterface
*
uas
)
...
...
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