From 9857c84ec7fd918a4cab4edc992643e60172a39c Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Fri, 1 Jul 2016 10:58:44 -0700 Subject: [PATCH] Adjust version query semantics --- src/Vehicle/MultiVehicleManager.cc | 3 +++ src/Vehicle/Vehicle.cc | 13 ++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Vehicle/MultiVehicleManager.cc b/src/Vehicle/MultiVehicleManager.cc index 0e9a3ad84..b6ec3b031 100644 --- a/src/Vehicle/MultiVehicleManager.cc +++ b/src/Vehicle/MultiVehicleManager.cc @@ -103,6 +103,9 @@ void MultiVehicleManager::_vehicleHeartbeatInfo(LinkInterface* link, int vehicle _vehicles.append(vehicle); + // Send QGC heartbeat ASAP, this allows PX4 to start accepting commands + _sendGCSHeartbeat(); + emit vehicleAdded(vehicle); setActiveVehicle(vehicle); diff --git a/src/Vehicle/Vehicle.cc b/src/Vehicle/Vehicle.cc index d4e9b9ea3..47cb97e84 100644 --- a/src/Vehicle/Vehicle.cc +++ b/src/Vehicle/Vehicle.cc @@ -198,7 +198,18 @@ Vehicle::Vehicle(LinkInterface* link, connect(_parameterLoader, &ParameterLoader::parameterListProgress, _autopilotPlugin, &AutoPilotPlugin::parameterListProgress); // Ask the vehicle for firmware version info. This must be MAV_COMP_ID_ALL since we don't know default component id yet. - doCommandLong(MAV_COMP_ID_ALL, MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES, 1 /* request firmware version */); + + mavlink_message_t versionMsg; + mavlink_command_long_t versionCmd; + + versionCmd.command = MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES; + versionCmd.confirmation = 0; + versionCmd.param1 = 1; // Request firmware version + versionCmd.param2 = versionCmd.param3 = versionCmd.param4 = versionCmd.param5 = versionCmd.param6 = versionCmd.param7 = 0; + versionCmd.target_system = id(); + versionCmd.target_component = MAV_COMP_ID_ALL; + mavlink_msg_command_long_encode(_mavlink->getSystemId(), _mavlink->getComponentId(), &versionMsg, &versionCmd); + sendMessageMultiple(versionMsg); _firmwarePlugin->initializeVehicle(this); -- 2.22.0