diff options
author | Anton Babushkin <anton.babushkin@me.com> | 2014-04-20 20:10:39 +0200 |
---|---|---|
committer | Anton Babushkin <anton.babushkin@me.com> | 2014-04-20 20:10:39 +0200 |
commit | 8634780e80f728ccbd4bc63860aeaa11727aeedb (patch) | |
tree | 3c29da11c2e9bb2b931821f73cd581281790f47b /src/modules/commander | |
parent | 88149311ea687b62ba28e036e7de09ed2763f2bc (diff) | |
parent | 0b85c41cd19486e829d48cf9e604fbc25b9e52a6 (diff) | |
download | px4-firmware-8634780e80f728ccbd4bc63860aeaa11727aeedb.tar.gz px4-firmware-8634780e80f728ccbd4bc63860aeaa11727aeedb.tar.bz2 px4-firmware-8634780e80f728ccbd4bc63860aeaa11727aeedb.zip |
Merge branch 'master' into mpc_rc
Diffstat (limited to 'src/modules/commander')
-rw-r--r-- | src/modules/commander/commander.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/modules/commander/commander.cpp b/src/modules/commander/commander.cpp index 37174d1b5..03baf47fe 100644 --- a/src/modules/commander/commander.cpp +++ b/src/modules/commander/commander.cpp @@ -396,6 +396,11 @@ bool handle_command(struct vehicle_status_s *status, const struct safety_s *safe enum VEHICLE_CMD_RESULT result = VEHICLE_CMD_RESULT_UNSUPPORTED; bool ret = false; + /* only handle commands that are meant to be handled by this system and component */ + if (cmd->target_system != status->system_id || ((cmd->target_component != status->component_id) && (cmd->target_component != 0))) { // component_id 0: valid for all components + return false; + } + /* only handle high-priority commands here */ /* request to set different system mode */ @@ -633,11 +638,11 @@ bool handle_command(struct vehicle_status_s *status, const struct safety_s *safe break; default: - /* warn about unsupported commands */ + /* Warn about unsupported commands, this makes sense because only commands + * to this component ID (or all) are passed by mavlink. */ answer_command(*cmd, VEHICLE_CMD_RESULT_UNSUPPORTED); break; } - if (result != VEHICLE_CMD_RESULT_UNSUPPORTED) { /* already warned about unsupported commands in "default" case */ answer_command(*cmd, result); |