class ugcs::vsm::Heading_action

Overview

Change the heading of a vehicle. More…

#include <heading_action.h>

class Heading_action: public ugcs::vsm::Action
{
public:
    // typedefs

    typedef std::shared_ptr<Heading_action> Ptr;
    typedef std::weak_ptr<Heading_action> Weak_ptr;

    // fields

    double heading;

    // construction

    Heading_action(double heading);

    // methods

    template <typename... Args>
    static Ptr Create(Args&&... args);
};

Inherited Members

public:
    // typedefs

    typedef std::shared_ptr<Action> Ptr;
    typedef std::weak_ptr<Action> Weak_ptr;
    typedef ugcs::vsm::Param_exception<Format_exception_dummy_struct,> Format_exception;

    // enums

    enum Type;

    // structs

    struct Format_exception_dummy_struct;

    template <>
    struct Mapper<Action::Type::REPEAT_SERVO>;

    template <>
    struct Mapper<Action::Type::POI>;

    template <>
    struct Mapper<Action::Type::PAYLOAD_STEERING>;

    template <>
    struct Mapper<Action::Type::PANORAMA>;

    template <>
    struct Mapper<Action::Type::SET_HOME>;

    template <>
    struct Mapper<Action::Type::TAKEOFF>;

    template <>
    struct Mapper<Action::Type::SET_SERVO>;

    template <>
    struct Mapper<Action::Type::TASK_ATTRIBUTES>;

    template <>
    struct Mapper<Action::Type::VTOL_TRANSITION>;

    template <>
    struct Mapper<Action::Type::MOVE>;

    template <>
    struct Mapper<Action::Type::HEADING>;

    template <>
    struct Mapper<Action::Type::CAMERA_CONTROL>;

    template <Type type_val>
    struct Mapper;

    template <>
    struct Mapper<Action::Type::LANDING>;

    template <>
    struct Mapper<Action::Type::CAMERA_SERIES_BY_DISTANCE>;

    template <>
    struct Mapper<Action::Type::CAMERA_TRIGGER>;

    template <>
    struct Mapper<Action::Type::CAMERA_SERIES_BY_TIME>;

    template <>
    struct Mapper<Action::Type::CHANGE_SPEED>;

    template <>
    struct Mapper<Action::Type::WAIT>;

    // fields

    int command_id = -1;

    // methods

    template <typename... Args>
    static Ptr Create(Args&&... args);

    Type Get_type() const;
    void Set_id(int id);
    std::string Get_name();

    template <Type type_val>
    Mapper<type_val>::type::Ptr Get_action();

Detailed Documentation

Change the heading of a vehicle.

Heading is an angle between the North and head (nose) of the vehicle. If vehicle can’t change the heading without changing the movement vector, then payload heading should be changed instead.

Typedefs

typedef std::shared_ptr<Heading_action> Ptr

Pointer type.

typedef std::weak_ptr<Heading_action> Weak_ptr

Pointer type.

Fields

double heading

Heading in radians.

Construction

Heading_action(double heading)

Construct the heading action explicitly.

Methods

template <typename... Args>
static Ptr Create(Args&&... args)

Create an instance.