class ugcs::vsm::Camera_series_by_time_action

Overview

Performs a series of consequent camera shots in a fixed time intervals. More…

#include <camera_series_by_time_action.h>

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

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

    // fields

    std::chrono::milliseconds interval;
    Optional<int> count;
    std::chrono::milliseconds initial_delay;

    // construction

    Camera_series_by_time_action(
        std::chrono::milliseconds interval,
        Optional<int> count,
        std::chrono::milliseconds initial_delay
        );

    Camera_series_by_time_action(const Property_list& p);

    // 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

Performs a series of consequent camera shots in a fixed time intervals.

Typedefs

typedef std::shared_ptr<Camera_series_by_time_action> Ptr

Pointer type.

typedef std::weak_ptr<Camera_series_by_time_action> Weak_ptr

Pointer type.

Fields

std::chrono::milliseconds interval

Time interval between two consequent shots.

Optional<int> count

Total number of shots to perform.

std::chrono::milliseconds initial_delay

Initial delay.

Time interval between the command has been accepted by the system and shooting the first picture.

Construction

Camera_series_by_time_action(const Property_list& p)

Construct action from protobuf command.

Methods

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

Create an instance.