Sub: accept NAV_LOITER_UNLIM and NAV_LAND as command_int too

This commit is contained in:
Peter Barker 2023-09-21 10:17:08 +10:00 committed by Andrew Tridgell
parent 0f6bf8994f
commit 30101c1e0f
2 changed files with 28 additions and 4 deletions

View File

@ -459,21 +459,40 @@ bool GCS_MAVLINK_Sub::set_home(const Location& loc, bool _lock) {
return sub.set_home(loc, _lock); return sub.set_home(loc, _lock);
} }
MAV_RESULT GCS_MAVLINK_Sub::handle_command_int_packet(const mavlink_command_int_t &packet, const mavlink_message_t &msg)
MAV_RESULT GCS_MAVLINK_Sub::handle_command_long_packet(const mavlink_command_long_t &packet, const mavlink_message_t &msg)
{ {
switch (packet.command) { switch(packet.command) {
case MAV_CMD_NAV_LOITER_UNLIM: case MAV_CMD_NAV_LOITER_UNLIM:
return handle_MAV_CMD_NAV_LOITER_UNLIM(packet);
case MAV_CMD_NAV_LAND:
return handle_MAV_CMD_NAV_LAND(packet);
}
return GCS_MAVLINK::handle_command_int_packet(packet, msg);
}
MAV_RESULT GCS_MAVLINK_Sub::handle_MAV_CMD_NAV_LOITER_UNLIM(const mavlink_command_int_t &packet)
{
if (!sub.set_mode(Mode::Number::POSHOLD, ModeReason::GCS_COMMAND)) { if (!sub.set_mode(Mode::Number::POSHOLD, ModeReason::GCS_COMMAND)) {
return MAV_RESULT_FAILED; return MAV_RESULT_FAILED;
} }
return MAV_RESULT_ACCEPTED; return MAV_RESULT_ACCEPTED;
}
case MAV_CMD_NAV_LAND: MAV_RESULT GCS_MAVLINK_Sub::handle_MAV_CMD_NAV_LAND(const mavlink_command_int_t &packet)
{
if (!sub.set_mode(Mode::Number::SURFACE, ModeReason::GCS_COMMAND)) { if (!sub.set_mode(Mode::Number::SURFACE, ModeReason::GCS_COMMAND)) {
return MAV_RESULT_FAILED; return MAV_RESULT_FAILED;
} }
return MAV_RESULT_ACCEPTED; return MAV_RESULT_ACCEPTED;
}
MAV_RESULT GCS_MAVLINK_Sub::handle_command_long_packet(const mavlink_command_long_t &packet, const mavlink_message_t &msg)
{
switch (packet.command) {
case MAV_CMD_CONDITION_YAW: case MAV_CMD_CONDITION_YAW:
// param1 : target angle [0-360] // param1 : target angle [0-360]

View File

@ -22,6 +22,8 @@ protected:
MAV_RESULT _handle_command_preflight_calibration(const mavlink_command_int_t &packet, const mavlink_message_t &msg) override; MAV_RESULT _handle_command_preflight_calibration(const mavlink_command_int_t &packet, const mavlink_message_t &msg) override;
MAV_RESULT handle_command_long_packet(const mavlink_command_long_t &packet, const mavlink_message_t &msg) override; MAV_RESULT handle_command_long_packet(const mavlink_command_long_t &packet, const mavlink_message_t &msg) override;
MAV_RESULT handle_command_int_packet(const mavlink_command_int_t &packet, const mavlink_message_t &msg) override;
// override sending of scaled_pressure3 to send on-board temperature: // override sending of scaled_pressure3 to send on-board temperature:
void send_scaled_pressure3() override; void send_scaled_pressure3() override;
@ -51,6 +53,9 @@ private:
int16_t vfr_hud_throttle() const override; int16_t vfr_hud_throttle() const override;
MAV_RESULT handle_MAV_CMD_NAV_LOITER_UNLIM(const mavlink_command_int_t &packet);
MAV_RESULT handle_MAV_CMD_NAV_LAND(const mavlink_command_int_t &packet);
#if HAL_HIGH_LATENCY2_ENABLED #if HAL_HIGH_LATENCY2_ENABLED
int16_t high_latency_target_altitude() const override; int16_t high_latency_target_altitude() const override;
uint8_t high_latency_tgt_heading() const override; uint8_t high_latency_tgt_heading() const override;