aboutsummaryrefslogtreecommitdiff
path: root/apps/commander/commander.c
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2012-09-19 18:53:29 +0200
committerLorenz Meier <lm@inf.ethz.ch>2012-09-19 18:53:29 +0200
commit291f4f3a33e6428b23624b1ffe12fec1015816cd (patch)
tree0dc7b590081184d46ffa2ad88ba6fbe56a364891 /apps/commander/commander.c
parentb0b72b11eb6c112d3fb58385f5681af55dd5605a (diff)
downloadpx4-firmware-291f4f3a33e6428b23624b1ffe12fec1015816cd.tar.gz
px4-firmware-291f4f3a33e6428b23624b1ffe12fec1015816cd.tar.bz2
px4-firmware-291f4f3a33e6428b23624b1ffe12fec1015816cd.zip
Reworked control interface, needs testing / validation
Diffstat (limited to 'apps/commander/commander.c')
-rw-r--r--apps/commander/commander.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/apps/commander/commander.c b/apps/commander/commander.c
index c8564792f..f5e143066 100644
--- a/apps/commander/commander.c
+++ b/apps/commander/commander.c
@@ -742,6 +742,31 @@ void handle_command(int status_pub, struct vehicle_status_s *current_vehicle_sta
}
break;
+ case PX4_CMD_CONTROLLER_SELECTION: {
+ bool changed = false;
+ if ((int)cmd->param1 != (int)current_vehicle_status->flag_control_rates_enabled) {
+ current_vehicle_status->flag_control_rates_enabled = cmd->param1;
+ changed = true;
+ }
+ if ((int)cmd->param2 != (int)current_vehicle_status->flag_control_attitude_enabled) {
+ current_vehicle_status->flag_control_attitude_enabled = cmd->param2;
+ changed = true;
+ }
+ if ((int)cmd->param3 != (int)current_vehicle_status->flag_control_velocity_enabled) {
+ current_vehicle_status->flag_control_velocity_enabled = cmd->param3;
+ changed = true;
+ }
+ if ((int)cmd->param4 != (int)current_vehicle_status->flag_control_position_enabled) {
+ current_vehicle_status->flag_control_position_enabled = cmd->param4;
+ changed = true;
+ }
+
+ if (changed) {
+ /* publish current state machine */
+ state_machine_publish(status_pub, current_vehicle_status, mavlink_fd);
+ }
+ }
+
// /* request to land */
// case MAV_CMD_NAV_LAND:
// {