aboutsummaryrefslogtreecommitdiff
path: root/src/modules/vtol_att_control
diff options
context:
space:
mode:
authorMatt Beall <matt.beall@greypointcorp.com>2015-02-24 16:43:49 -0700
committerThomas Gubler <thomasgubler@gmail.com>2015-02-28 15:19:16 +0100
commite2de72b882d7c74cdaafcfc74ab7176ef94a4455 (patch)
tree2799a1bc7974749a4a5a05278c0aa1674c06c21a /src/modules/vtol_att_control
parent5e199b3984e35e6a8078abbc36d9c9440e1cd7af (diff)
downloadpx4-firmware-e2de72b882d7c74cdaafcfc74ab7176ef94a4455.tar.gz
px4-firmware-e2de72b882d7c74cdaafcfc74ab7176ef94a4455.tar.bz2
px4-firmware-e2de72b882d7c74cdaafcfc74ab7176ef94a4455.zip
Added offboard actuator controls flags to offboard control mode and vehicle control mode to disable controls in att_control apps
Diffstat (limited to 'src/modules/vtol_att_control')
-rw-r--r--src/modules/vtol_att_control/vtol_att_control_main.cpp50
1 files changed, 29 insertions, 21 deletions
diff --git a/src/modules/vtol_att_control/vtol_att_control_main.cpp b/src/modules/vtol_att_control/vtol_att_control_main.cpp
index 288ba2ebe..53a08f97a 100644
--- a/src/modules/vtol_att_control/vtol_att_control_main.cpp
+++ b/src/modules/vtol_att_control/vtol_att_control_main.cpp
@@ -782,18 +782,22 @@ void VtolAttitudeControl::task_main()
fill_mc_att_control_output();
fill_mc_att_rates_sp();
- if (_actuators_0_pub > 0) {
- orb_publish(ORB_ID(actuator_controls_0), _actuators_0_pub, &_actuators_out_0);
-
- } else {
- _actuators_0_pub = orb_advertise(ORB_ID(actuator_controls_0), &_actuators_out_0);
- }
-
- if (_actuators_1_pub > 0) {
- orb_publish(ORB_ID(actuator_controls_1), _actuators_1_pub, &_actuators_out_1);
-
- } else {
- _actuators_1_pub = orb_advertise(ORB_ID(actuator_controls_1), &_actuators_out_1);
+ /* Only publish if actuator_control mode is not enabled */
+ if(!_v_control_mode.flag_control_offboard_actuator_control_enabled)
+ {
+ if (_actuators_0_pub > 0) {
+ orb_publish(ORB_ID(actuator_controls_0), _actuators_0_pub, &_actuators_out_0);
+
+ } else {
+ _actuators_0_pub = orb_advertise(ORB_ID(actuator_controls_0), &_actuators_out_0);
+ }
+
+ if (_actuators_1_pub > 0) {
+ orb_publish(ORB_ID(actuator_controls_1), _actuators_1_pub, &_actuators_out_1);
+
+ } else {
+ _actuators_1_pub = orb_advertise(ORB_ID(actuator_controls_1), &_actuators_out_1);
+ }
}
}
}
@@ -813,18 +817,22 @@ void VtolAttitudeControl::task_main()
fill_fw_att_control_output();
fill_fw_att_rates_sp();
- if (_actuators_0_pub > 0) {
- orb_publish(ORB_ID(actuator_controls_0), _actuators_0_pub, &_actuators_out_0);
+ /* Only publish if actuator_control mode is not enabled */
+ if(!_v_control_mode.flag_control_offboard_actuator_control_enabled)
+ {
+ if (_actuators_0_pub > 0) {
+ orb_publish(ORB_ID(actuator_controls_0), _actuators_0_pub, &_actuators_out_0);
- } else {
- _actuators_0_pub = orb_advertise(ORB_ID(actuator_controls_0), &_actuators_out_0);
- }
+ } else {
+ _actuators_0_pub = orb_advertise(ORB_ID(actuator_controls_0), &_actuators_out_0);
+ }
- if (_actuators_1_pub > 0) {
- orb_publish(ORB_ID(actuator_controls_1), _actuators_1_pub, &_actuators_out_1);
+ if (_actuators_1_pub > 0) {
+ orb_publish(ORB_ID(actuator_controls_1), _actuators_1_pub, &_actuators_out_1);
- } else {
- _actuators_1_pub = orb_advertise(ORB_ID(actuator_controls_1), &_actuators_out_1);
+ } else {
+ _actuators_1_pub = orb_advertise(ORB_ID(actuator_controls_1), &_actuators_out_1);
+ }
}
}
}