diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2012-09-19 18:53:29 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2012-09-19 18:53:29 +0200 |
commit | 291f4f3a33e6428b23624b1ffe12fec1015816cd (patch) | |
tree | 0dc7b590081184d46ffa2ad88ba6fbe56a364891 /apps/commander/commander.c | |
parent | b0b72b11eb6c112d3fb58385f5681af55dd5605a (diff) | |
download | px4-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.c | 25 |
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: // { |