ardupilot/libraries/GCS_MAVLink/MissionItemProtocol_Waypoin...

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

69 lines
2.6 KiB
C
Raw Permalink Normal View History

#pragma once
#include "MissionItemProtocol.h"
class MissionItemProtocol_Waypoints : public MissionItemProtocol {
public:
MissionItemProtocol_Waypoints(class AP_Mission &_mission) :
mission(_mission) {}
// mission_type returns the MAV_MISSION mavlink enumeration value
// which this module is responsible for handling
MAV_MISSION_TYPE mission_type() const override {
return MAV_MISSION_TYPE_MISSION;
}
// complete() is called by the base class after all waypoints have
// been received. _link is the link which the last item was
// transfered on.
MAV_MISSION_RESULT complete(const GCS_MAVLINK &_link) override;
// timeout() is called by the base class in the case that the GCS
// does not transfer all waypoints to the vehicle.
void timeout() override;
// truncate() is called to set the absolute number of items. It
// must be less than or equal to the current number of items (you
// can't truncate-to a longer list)
void truncate(const mavlink_mission_count_t &packet) override;
protected:
// clear_all_items() is called to clear all items on the vehicle
bool clear_all_items() override WARN_IF_UNUSED;
// next_item_ap_message_id returns an item from the ap_message
// enumeration which (when acted upon by the GCS class) will send
// a mavlink message to the GCS requesting it upload the next
// required waypoint.
ap_message next_item_ap_message_id() const override {
return MSG_NEXT_MISSION_REQUEST_WAYPOINTS;
}
private:
AP_Mission &mission;
// append_item() is called by the base class to add the supplied
// item to the end of the list of stored items.
MAV_MISSION_RESULT append_item(const mavlink_mission_item_int_t &) override WARN_IF_UNUSED;
// get_item() fills in ret_packet based on packet; _link is the
// link the request was received on, and msg is the undecoded
// request. Note that msg may not actually decode to a
// request_int_t!
MAV_MISSION_RESULT get_item(const GCS_MAVLINK &_link,
const mavlink_message_t &msg,
const mavlink_mission_request_int_t &packet,
mavlink_mission_item_int_t &ret_packet) override WARN_IF_UNUSED;
// item_count() returns the number of stored items
uint16_t item_count() const override;
// item_count() returns the maximum number of items which could be
// stored on-board
uint16_t max_items() const override;
// replace_item() replaces an item in the stored list
MAV_MISSION_RESULT replace_item(const mavlink_mission_item_int_t &) override WARN_IF_UNUSED;
};