From b4cbd93b7c773ed61df535992164d7032639ece7 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Thu, 28 May 2020 11:15:15 +0200 Subject: [PATCH] mavlink: new args to request message, omit param1 We can omit param1 because it is already used for the message_id, so it's basically duplicate information and won't get used anywhere. --- src/modules/mavlink/mavlink_receiver.cpp | 16 +++++++++------- src/modules/mavlink/mavlink_receiver.h | 4 +++- src/modules/mavlink/mavlink_stream.h | 2 +- src/modules/mavlink/streams/autopilot_version.h | 2 +- src/modules/mavlink/streams/flight_information.h | 2 +- src/modules/mavlink/streams/protocol_version.h | 2 +- .../mavlink/streams/storage_information.h | 2 +- 7 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/modules/mavlink/mavlink_receiver.cpp b/src/modules/mavlink/mavlink_receiver.cpp index 008beaeb52..54e6e3478b 100644 --- a/src/modules/mavlink/mavlink_receiver.cpp +++ b/src/modules/mavlink/mavlink_receiver.cpp @@ -430,7 +430,11 @@ void MavlinkReceiver::handle_message_command_both(mavlink_message_t *msg, const get_message_interval((int)roundf(cmd_mavlink.param1)); } else if (cmd_mavlink.command == MAV_CMD_REQUEST_MESSAGE) { - result = handle_request_message_command(vehicle_command); + + uint16_t message_id = (uint16_t)roundf(vehicle_command.param1); + result = handle_request_message_command(message_id, + vehicle_command.param2, vehicle_command.param3, vehicle_command.param4, + vehicle_command.param5, vehicle_command.param6, vehicle_command.param7); } else if (cmd_mavlink.command == MAV_CMD_SET_CAMERA_ZOOM) { struct actuator_controls_s actuator_controls = {}; @@ -494,17 +498,16 @@ void MavlinkReceiver::handle_message_command_both(mavlink_message_t *msg, const } } -uint8_t MavlinkReceiver::handle_request_message_command(const vehicle_command_s &vehicle_command) +uint8_t MavlinkReceiver::handle_request_message_command(uint16_t message_id, float param2, float param3, float param4, + float param5, float param6, float param7) { - uint16_t message_id = (uint16_t)roundf(vehicle_command.param1); bool stream_found = false; uint8_t result = vehicle_command_ack_s::VEHICLE_RESULT_ACCEPTED; for (const auto stream : _mavlink->get_streams()) { if (stream->get_id() == message_id) { - stream_found = stream->request_message(vehicle_command.param1, vehicle_command.param2, vehicle_command.param3, - vehicle_command.param4, vehicle_command.param5, vehicle_command.param6, vehicle_command.param7); + stream_found = stream->request_message(param2, param3, param4, param5, param6, param7); break; } } @@ -516,8 +519,7 @@ uint8_t MavlinkReceiver::handle_request_message_command(const vehicle_command_s result = vehicle_command_ack_s::VEHICLE_RESULT_DENIED; } else { - bool message_sent = stream->request_message(vehicle_command.param1, vehicle_command.param2, vehicle_command.param3, - vehicle_command.param4, vehicle_command.param5, vehicle_command.param6, vehicle_command.param7); + bool message_sent = stream->request_message(param2, param3, param4, param5, param6, param7); if (!message_sent) { result = vehicle_command_ack_s::VEHICLE_RESULT_DENIED; diff --git a/src/modules/mavlink/mavlink_receiver.h b/src/modules/mavlink/mavlink_receiver.h index d1f021d85d..d7abbcf043 100644 --- a/src/modules/mavlink/mavlink_receiver.h +++ b/src/modules/mavlink/mavlink_receiver.h @@ -129,7 +129,9 @@ private: void handle_message_command_both(mavlink_message_t *msg, const T &cmd_mavlink, const vehicle_command_s &vehicle_command); - uint8_t handle_request_message_command(const vehicle_command_s &vehicle_command); + uint8_t handle_request_message_command(uint16_t message_id, float param2 = 0.0f, float param3 = 0.0f, + float param4 = 0.0f, + float param5 = 0.0f, float param6 = 0.0f, float param7 = 0.0f); void handle_message(mavlink_message_t *msg); diff --git a/src/modules/mavlink/mavlink_stream.h b/src/modules/mavlink/mavlink_stream.h index 91708aa693..b117075c42 100644 --- a/src/modules/mavlink/mavlink_stream.h +++ b/src/modules/mavlink/mavlink_stream.h @@ -96,7 +96,7 @@ public: * This function is called in response to a MAV_CMD_REQUEST_MESSAGE command. The default implementation is to * just reset the counter to immediately send one message. */ - virtual bool request_message(float param1 = 0.0, float param2 = 0.0, float param3 = 0.0, float param4 = 0.0, + virtual bool request_message(float param2 = 0.0, float param3 = 0.0, float param4 = 0.0, float param5 = 0.0, float param6 = 0.0, float param7 = 0.0) { reset_last_sent(); diff --git a/src/modules/mavlink/streams/autopilot_version.h b/src/modules/mavlink/streams/autopilot_version.h index 5fbe7157e8..f5d0f4a060 100644 --- a/src/modules/mavlink/streams/autopilot_version.h +++ b/src/modules/mavlink/streams/autopilot_version.h @@ -36,7 +36,7 @@ public: return MAVLINK_MSG_ID_AUTOPILOT_VERSION_LEN + MAVLINK_NUM_NON_PAYLOAD_BYTES; } - bool request_message(float param1, float param2, float param3, float param4, + bool request_message(float param2, float param3, float param4, float param5, float param6, float param7) override { return send(hrt_absolute_time()); diff --git a/src/modules/mavlink/streams/flight_information.h b/src/modules/mavlink/streams/flight_information.h index 824db1c93a..f971ca844c 100644 --- a/src/modules/mavlink/streams/flight_information.h +++ b/src/modules/mavlink/streams/flight_information.h @@ -38,7 +38,7 @@ public: return MAVLINK_MSG_ID_FLIGHT_INFORMATION_LEN + MAVLINK_NUM_NON_PAYLOAD_BYTES; } - bool request_message(float param1, float param2, float param3, float param4, + bool request_message(float param2, float param3, float param4, float param5, float param6, float param7) override { return send(hrt_absolute_time()); diff --git a/src/modules/mavlink/streams/protocol_version.h b/src/modules/mavlink/streams/protocol_version.h index fe43c7e316..7c4fd4a155 100644 --- a/src/modules/mavlink/streams/protocol_version.h +++ b/src/modules/mavlink/streams/protocol_version.h @@ -36,7 +36,7 @@ public: return MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN + MAVLINK_NUM_NON_PAYLOAD_BYTES; } - bool request_message(float param1, float param2, float param3, float param4, + bool request_message(float param2, float param3, float param4, float param5, float param6, float param7) override { return send(hrt_absolute_time()); diff --git a/src/modules/mavlink/streams/storage_information.h b/src/modules/mavlink/streams/storage_information.h index c8fd06947d..f865214939 100644 --- a/src/modules/mavlink/streams/storage_information.h +++ b/src/modules/mavlink/streams/storage_information.h @@ -45,7 +45,7 @@ public: return MAVLINK_MSG_ID_STORAGE_INFORMATION_LEN + MAVLINK_NUM_NON_PAYLOAD_BYTES; } - bool request_message(float param1, float param2, float param3, float param4, + bool request_message(float param2, float param3, float param4, float param5, float param6, float param7) override { storage_id = (int)roundf(param2);